Ubuntu 上安全部署 vsftpd 的实用清单
一 基础加固
- 安装与备份
- 安装:sudo apt update && sudo apt install vsftpd
- 备份:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
- 核心开关(/etc/vsftpd.conf)
- 禁用匿名:anonymous_enable=NO
- 仅本地用户:local_enable=YES
- 写权限按需:write_enable=YES
- 文件掩码:local_umask=022
- 日志:xferlog_enable=YES、xferlog_std_format=YES
- 数据端口:connect_from_port_20=YES
- 用户访问控制
- 启用用户列表:userlist_enable=YES
- 白名单模式:userlist_file=/etc/vsftpd.userlist、userlist_deny=NO(仅列表内用户可登录)
- 目录隔离
- 禁锢本地用户:chroot_local_user=YES
- 如确需可写:在确保安全前提下使用 allow_writeable_chroot=YES
- 服务就绪
- 启动与开机自启:sudo systemctl start vsftpd && sudo systemctl enable vsftpd
- 语法检查:sudo vsftpd -t;无误后重启:sudo systemctl restart vsftpd
以上做法覆盖匿名关闭、最小权限、日志与访问控制等关键加固点。
二 加密传输与证书
- 启用 TLS/SSL
- 配置:ssl_enable=YES、force_local_data_ssl=YES、force_local_logins_ssl=YES
- 协议限制:禁用不安全协议(如 ssl_sslv2=NO、ssl_sslv3=NO),优先 TLSv1.2+
- 证书与权限
- 生成自签名证书(示例):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
- 证书权限:sudo chmod 600 /etc/ssl/private/vsftpd.pem
- 配置证书路径:rsa_cert_file=/etc/ssl/private/vsftpd.pem、rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- 客户端要求
- 强制使用 FTPS(显式 SSL),禁用明文 FTP 连接
启用 TLS/SSL 可显著降低凭证与数据被窃听的风险,是 vsftpd 的推荐部署方式。
三 网络与端口策略
- 被动模式与端口范围
- 启用被动:pasv_enable=YES
- 固定端口段:pasv_min_port=50000、pasv_max_port=50010
- 防火墙放行
- UFW:sudo ufw allow 21/tcp、sudo ufw allow 20/tcp、sudo ufw allow 50000:50010/tcp
- 云厂商安全组同样需放行上述端口
- 监听与 IP 绑定
- 按需仅监听内网或指定地址,减少暴露面
固定被动端口便于在防火墙/NAT 环境中稳定工作。
四 用户与权限管理
- 专用 FTP 用户
- 创建:sudo adduser ftpuser
- 禁止 Shell 登录:sudo usermod -s /usr/sbin/nologin ftpuser
- 家目录权限:sudo chown ftpuser:ftpuser /home/ftpuser、sudo chmod 755 /home/ftpuser
- 白名单与登录控制
- 将允许登录的用户写入 /etc/vsftpd.userlist(每行一个用户名)
- 保持 userlist_deny=NO 的白名单策略
- 目录隔离与可写性
- 默认使用 chroot_local_user=YES 禁锢用户
- 若应用必须在 chroot 内写入,再考虑 allow_writeable_chroot=YES,并配合目录 ACL/最小权限降低风险
专用用户与白名单配合 chroot,能有效缩小攻击面。
五 运行监控与维护
- 日志与审计
- 传输日志:xferlog_enable=YES、xferlog_file=/var/log/vsftpd.log
- 系统日志:检查 journalctl -u vsftpd 的启动、认证与错误事件
- 持续加固
- 定期更新系统与软件包:sudo apt update && sudo apt upgrade
- 定期轮换证书与审查用户列表、目录权限与防火墙规则
- 安全提示
- FTP 协议在设计上以明文传输,务必启用 TLS/SSL;若业务允许,优先采用 SFTP/SCP 替代传统 FTP
完善的日志与持续维护策略,有助于快速发现异常并降低长期风险。