温馨提示×

linux ftpserver配置注意啥

小樊
48
2026-09-29 08:59:37
栏目: 智能运维

在 Linux 上配置 FTP 服务器(常见如 vsftpd、ProFTPD、Pure-FTPd)时,需要从安全、权限、网络、日志几个方面注意。下面以 vsftpd(最常用) 为主说明,也补充通用要点。


一、FTP 模式与端口(非常重要)

FTP 有两类模式:

  • 主动模式(PORT)
    • 服务端连客户端
    • 容易被客户端防火墙拦截
  • 被动模式(PASV)
    • 客户端连服务端
    • 更常用,但必须开放一段端口

✅ 建议:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

并在防火墙放行:

  • 21
  • 30000–31000

二、用户与权限控制

1. 禁止匿名登录(生产环境)

anonymous_enable=NO

2. 限制用户只能访问家目录(防越权)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠ 注意:

  • chroot 后目录不能有其他用户可写权限
  • 否则 vsftpd 会拒绝启动

3. 控制可登录用户

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

三、安全性建议(重点)

1. 不要明文传输(重要)

FTP 默认明文密码

✅ 推荐方案:

  • FTPS(FTP over SSL)
  • 或 SFTP(SSH 文件传输,不是 FTP)

FTPS 示例:

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ftp.pem
force_local_logins_ssl=YES
force_local_data_ssl=YES

四、系统层面注意

1. SELinux(CentOS / RHEL)

常见问题:

  • 能登录但无法上传

解决:

setsebool -P ftpd_full_access on

或:

getsebool -a | grep ftp

2. 防火墙

firewall-cmd --add-port=21/tcp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

五、日志与排错

开启日志:

xferlog_enable=YES
log_ftp_protocol=YES

查看:

tail -f /var/log/vsftpd.log
journalctl -u vsftpd

六、常见坑总结

❌ 匿名用户能看系统文件
❌ chroot 后目录权限不对
❌ PASV 端口没开
❌ SELinux 没配置
❌ 用 root 登录 FTP(应禁止)


七、简单推荐方案

  • 内网 / 测试:vsftpd + PASV
  • 公网 / 生产:SFTP 或 FTPS
  • 高安全:直接放弃 FTP,用 SFTP

如果你告诉我:

  • 使用的 Linux 发行版
  • FTP 软件(vsftpd / proftpd)
  • 使用场景(内网 / 公网 / 匿名 / 用户)

我可以给你一份可直接用的配置文件。

0 踩