一聚教程网:一个值得你收藏的教程网站

热门教程

Ubuntu下vsftp如何防止恶意攻击

时间:2026-08-04 07:14:50 编辑:袖梨 来源:一聚教程网

Ubuntu下 vsftpd 防恶意攻击实用清单

一 基础加固配置

  1. 禁用匿名访问:设置 anonymous_enable=NO,仅允许本地系统用户登录(local_enable=YES)。
  2. 启用用户白名单:开启 userlist_enable=YES,配合 userlist_deny=NO 与 /etc/vsftpd.user_list 仅放行指定账号;同时将禁止登录的账号加入 /etc/vsftpd/ftpusers。
  3. 限制目录访问:开启 chroot_local_user=YES 将用户锁定在其主目录;为降低风险,优先使用 no_writeable_chroot=YES(若必须可写,再考虑 allow_writeable_chroot,并严格管控上传内容)。
  4. 精细写权限:按需开启 write_enable=YES,仅对确需上传的目录授予写权限,避免全局可写。
  5. 传输日志:开启 xferlog_enable=YES 与 xferlog_std_format=YES,便于审计与追踪异常行为。
  6. 连接加密:启用 ssl_enable=YES,并配置证书与强制加密(见下文示例)。

二 加密与被动模式端口

  1. 生成自签名证书(示例):sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
  2. 强制加密与证书路径(/etc/vsftpd.conf):ssl_enable=YESrsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pemforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO
  3. 被动模式端口范围(建议固定小段高位端口,便于防火墙放行):pasv_enable=YESpasv_min_port=10000pasv_max_port=10009
  4. 防火墙放行(UFW):sudo ufw allow 20/tcpsudo ufw allow 21/tcpsudo ufw allow 10000:10009/tcp

三 访问控制与网络防护

  1. 限制来源 IP(UFW):仅允许可信网段访问 FTP 控制端口与被动端口段,例如:sudo ufw allow from 203.0.113.0/24 to any port 21,10000:10009 proto tcp
  2. 端口与协议最小化:如非必要,避免对外暴露不必要端口;FTP 数据通道端口较多,使用被动模式并限定端口范围更易管控。
  3. 服务与内核防护:保持系统与 vsftpd 更新(sudo apt update && sudo apt upgrade);按需启用 fail2ban 对 /var/log/vsftpd.log 或 /var/log/auth.log 进行暴力破解封禁(示例 jail 针对 vsftpd 日志,maxretry 与 bantime 按业务调整)。

四 用户与权限管理

  1. 专用 FTP 账号:创建仅用于 FTP 的系统用户,并禁止 Shell 登录(例如使用 /usr/sbin/nologin 作为登录 Shell),减少被滥用的风险。
  2. 目录与所有权:为用户主目录设置合适的权限(如 755),上传目录可设为 775 并归属该用户与组,避免其他用户写入。
  3. 精细化访问控制:结合用户白名单、chroot 与目录权限,遵循“最小权限原则”。

五 监控与替代方案

  1. 日志与告警:持续监控 /var/log/vsftpd.log、/var/log/auth.log、/var/log/syslog,对频繁失败登录、异常 IP、异常时段与大量传输等迹象设置告警。
  2. 更安全的替代:若业务允许,优先采用 SFTP(基于 OpenSSH) 替代 FTP,天然加密、权限模型更完善;在 Ubuntu 上安装 openssh-server 即可提供 SFTP 服务。

热门栏目