温馨提示×

ubuntu中vsftp安全设置怎么做

小樊
31
2025-11-30 14:22:49
栏目: 智能运维

Ubuntu 下 vsftpd 安全设置清单

一 安装与最小加固

  • 安装与开机自启
    • 执行:sudo apt update && sudo apt install vsftpd -y
    • 启用:sudo systemctl enable --now vsftpd
  • 核心配置 /etc/vsftpd.conf(最小加固建议)
    • 禁用匿名:anonymous_enable=NO
    • 允许本地用户:local_enable=YES
    • 按需写权限:write_enable=YES
    • 限制用户在主目录:chroot_local_user=YES
    • 允许 chroot 可写:allow_writeable_chroot=YES
    • 文件掩码:local_umask=022
    • 日志:xferlog_enable=YESxferlog_file=/var/log/vsftpd.log
    • 说明:以上能显著降低匿名暴露与目录遍历风险,并保留必要的上传/下载能力。

二 身份与访问控制

  • 仅允许白名单用户登录
    • 配置:userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO
    • 操作:在 /etc/vsftpd.user_list 中逐行写入允许登录的用户名(如:alice、bob)。
  • 专用 FTP 用户与受限 Shell
    • 创建:sudo adduser ftpuser(设置强密码)
    • 限制 Shell:sudo usermod -s /usr/sbin/nologin ftpuser
    • 家目录权限:sudo chown ftpuser:ftpuser /home/ftpuser && sudo chmod 755 /home/ftpuser
  • 精细的 chroot 策略(可选)
    • 全局 chroot + 例外列表:chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_list
    • 含义:列表中的用户“不解 chroot”,其余用户被限制在主目录。

三 传输加密与被动模式

  • 启用 SSL/TLS(强烈建议)
    • 生成自签名证书(示例):
      • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
    • 配置:
      • ssl_enable=YES
      • force_local_data_ssl=YES
      • force_local_logins_ssl=YES
      • 协议与套件(示例):ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO
      • 证书路径:rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem
  • 被动模式端口范围(便于防火墙放行)
    • 配置:pasv_enable=YESpasv_min_port=50000pasv_max_port=50010
    • 说明:主动模式依赖客户端端口,穿越 NAT/云安全组时更易受阻,被动模式更通用。

四 防火墙与端口放行

  • UFW 示例
    • 控制通道:sudo ufw allow 21/tcp
    • 被动端口范围:sudo ufw allow 50000:50010/tcp
    • 重载:sudo ufw reload
  • 云厂商安全组
    • 入方向放行 TCP 2150000–50010(或你自定义的被动端口段)。
  • 说明:仅开放必要端口,避免使用大范围端口段。

五 服务生效与验证

  • 使配置生效
    • 检查语法:sudo vsftpd -t
    • 重启服务:sudo systemctl restart vsftpd
  • 客户端验证
    • 命令行:ftp localhost(测试本地回环)
    • 图形工具:FileZilla,选择 FTP over TLS(显式),验证能否登录、列目录与传输。
  • 日志与运维
    • 实时查看:sudo tail -f /var/log/vsftpd.log
    • 定期更新:sudo apt update && sudo apt upgrade -y
  • 安全提示
    • 避免使用明文 FTP;为所有 FTP 用户设置强密码并定期轮换。
    • 如非必要,不要开启匿名访问;必要时仅开放只读目录与最小权限。

0