温馨提示×

Ubuntu下vsftp的安全设置

小樊
42
2025-12-26 04:05:48
栏目: 智能运维

Ubuntu 下 VSFTPD 安全加固清单

一 基础加固

  • 安装与备份
    • 安装:sudo apt update && sudo apt install vsftpd
    • 备份:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
  • 核心配置 /etc/vsftpd.conf(建议值)
    • 禁用匿名:anonymous_enable=NO
    • 允许本地用户:local_enable=YES
    • 全局写权限:write_enable=YES
    • 文件掩码:local_umask=022
    • 目录提示:dirmessage_enable=YES
    • 本地时区:use_localtime=YES
    • 传输日志:xferlog_enable=YES
    • 主动模式数据端口:connect_from_port_20=YES
    • 日志文件:xferlog_file=/var/log/vsftpd.log
    • 说明:以上为常用安全基线,可按需微调。

二 身份与访问控制

  • 用户名单白名单模式
    • 启用名单:userlist_enable=YES
    • 名单文件:userlist_file=/etc/vsftpd.userlist
    • 白名单:userlist_deny=NO(仅名单内用户可登录)
  • 锁定用户到主目录(chroot)
    • 全局锁定:chroot_local_user=YES
    • 允许可写 chroot(vsftpd ≥ 3.0.2 推荐):allow_writeable_chroot=YES
    • 旧版本若无法使用上项,可创建可写子目录(如 /home/$USER/pub)并仅对该目录赋权,避免对主目录可写
  • 专用 FTP 用户
    • 创建仅用于 FTP 的系统用户:sudo adduser --shell /usr/sbin/nologin --home /home/ftpuser ftpuser
    • 家目录权限:sudo chown ftpuser:ftpuser /home/ftpuser && sudo chmod 755 /home/ftpuser
  • 说明:白名单与 chroot 组合能显著降低暴露面与横向移动风险。

三 加密传输与证书

  • 启用 SSL/TLS
    • 开启加密:ssl_enable=YES
    • 强制加密:force_local_data_ssl=YESforce_local_logins_ssl=YES
    • 协议与套件:禁用不安全协议(如 ssl_sslv2=NOssl_sslv3=NO),优先 TLSv1.2+
    • 证书与密钥:使用合规证书,常见路径示例
      • 自签名:/etc/ssl/private/vsftpd.pem(同时包含证书与私钥)
      • 或系统证书:/etc/ssl/certs/ssl-cert-snakeoil.pem/etc/ssl/private/ssl-cert-snakeoil.key
  • 生成自签名证书(示例)
    • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
  • 客户端要求:连接时选择 FTPS(显式 AUTH TLS),禁用明文 FTP。

四 防火墙与被动模式

  • 被动模式端口范围
    • 启用被动:pasv_enable=YES
    • 端口范围(示例):pasv_min_port=50000pasv_max_port=50010
  • UFW 放行
    • 放行控制与数据端口:sudo ufw allow 21/tcp
    • 放行被动端口段:sudo ufw allow 50000:50010/tcp
    • 重载:sudo ufw reload
  • 云厂商安全组:同样需放行 TCP 21 与配置的 被动端口段

五 服务上线与运维

  • 生效与自启
    • 检查语法:sudo vsftpd -t
    • 重启服务:sudo systemctl restart vsftpd
    • 开机自启:sudo systemctl enable vsftpd
    • 查看状态:sudo systemctl status vsftpd
  • 日志与监控
    • 传输日志:/var/log/vsftpd.log(由 xferlog_enable=YESxferlog_file 指定)
    • 实时排查:tail -f /var/log/vsftpd.log
  • 会话与超时(可选)
    • 空闲超时:idle_session_timeout=600
    • 数据连接超时:data_connection_timeout=120
  • 安全提示
    • 如非必须,优先使用 SFTP/SCP 替代 FTP;FTP 即使启用 TLS 仍暴露大量协议元数据
    • 定期更新系统与软件包:sudo apt update && sudo apt upgrade
    • 严格控制目录与文件权限,避免使用 root 登录 FTP。

0