温馨提示×

Ubuntu vsftpd如何防止暴力破解

小樊
41
2025-12-12 10:17:01
栏目: 智能运维

Ubuntu 上 vsftpd 防止暴力破解的实用方案

一 核心思路

  • 使用 Fail2Ban 自动封禁反复失败的源 IP,叠加 PAM 失败计数 做账户级锁定,形成双层防护。
  • 关闭匿名登录、启用 chroot 隔离、限制可登录用户,降低被爆破的攻击面与影响范围。
  • 启用 SSL/TLS(FTPS) 加密凭据与数据,避免明文口令被嗅探再利用。
  • 配置防火墙仅放通必要端口与来源网段,减少暴露面与扫描命中率。

二 快速落地步骤

  • 安装并启用 Fail2Ban

    • 安装:sudo apt-get update && sudo apt-get install fail2ban -y
    • 新建配置:sudo nano /etc/fail2ban/jail.local
    • 示例内容:
      [DEFAULT]
      bantime = 600
      maxretry = 3
      
      [vsftpd]
      enabled  = true
      port     = ftp
      filter   = vsftpd
      logpath  = /var/log/vsftpd.log
      maxretry = 3
      bantime  = 600
      
    • 启动:sudo systemctl restart fail2ban && sudo systemctl enable fail2ban
    • 说明:以上规则会在 10 分钟 内失败 3 次 的 IP 封禁 10 分钟;可按需调整为更严格(如 bantime=3600、findtime=600)。
  • 加固 vsftpd 基础配置

    • 编辑:sudo nano /etc/vsftpd.conf
    • 建议关键项:
      anonymous_enable=NO
      local_enable=YES
      write_enable=YES
      chroot_local_user=YES
      allow_writeable_chroot=YES
      userlist_enable=YES
      userlist_deny=NO
      userlist_file=/etc/vsftpd/user_list
      xferlog_enable=YES
      xferlog_file=/var/log/vsftpd.log
      
    • 说明:禁用匿名、启用本地用户与写入(按业务定)、将用户 chroot 到主目录、仅允许 user_list 中的用户登录,并开启日志便于审计与 Fail2Ban 匹配。
  • 启用 SSL/TLS 加密

    • 生成证书:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt
    • 配置 vsftpd:
      ssl_enable=YES
      rsa_cert_file=/etc/ssl/certs/vsftpd.crt
      rsa_private_key_file=/etc/ssl/private/vsftpd.key
      force_local_logins_ssl=YES
      force_local_data_ssl=YES
      
    • 说明:强制登录与数据传输加密,防止明文口令被窃听与重放。
  • 防火墙与被动端口

    • 放通控制与数据端口(示例被动端口范围 40000–50000):
      sudo ufw allow 21/tcp
      sudo ufw allow 40000:50000/tcp
      sudo ufw enable
      
    • 说明:被动模式需固定端口范围并在防火墙放行,否则数据通道会被阻断。

三 进阶防护与可选措施

  • PAM 账户锁定(可选,叠加 Fail2Ban 更稳妥)

    • 编辑:sudo nano /etc/pam.d/vsftpd
    • 追加(失败 3 次锁定 300 秒示例):
      auth required pam_tally2.so deny=3 unlock_time=300
      account required pam_tally2.so
      
    • 说明:PAM 锁定为“账户级”策略,Fail2Ban 为“源 IP 级”策略,二者配合可显著降低暴力破解成功率。
  • 访问控制与端口隐蔽

    • 仅允许可信网段访问 FTP 端口(UFW 示例):
      sudo ufw deny 21/tcp
      sudo ufw allow from <可信IP或网段> to any port 21
      
    • 修改默认端口(示例改为 2123):
      listen_port=2123
      
    • 说明:减少自动化扫描命中率;注意同步调整防火墙与客户端配置。

四 验证与运维

  • 检查 Fail2Ban 状态与封禁情况:sudo fail2ban-client status vsftpd
  • 实时查看日志:sudo tail -f /var/log/vsftpd.log,确认失败登录是否出现并被 Fail2Ban 处理
  • 定期更新:sudo apt-get update && sudo apt-get upgrade -y,及时修补安全漏洞。

0