怎样防止Debian FTP被攻击
导读:Debian FTP 安全防护实操清单 一 基础加固与访问控制 保持系统与软件为最新:执行sudo apt update && sudo apt upgrade -y,及时修补漏洞。 禁用匿名访问,仅允许本地用户:在 /e...
Debian FTP 安全防护实操清单
一 基础加固与访问控制
- 保持系统与软件为最新:执行sudo apt update & & sudo apt upgrade -y,及时修补漏洞。
- 禁用匿名访问,仅允许本地用户:在 /etc/vsftpd.conf 中设置anonymous_enable=NO、local_enable=YES。
- 限制用户目录:启用chroot_local_user=YES,并按需设置allow_writeable_chroot=YES(注意某些 vsftpd 版本对可写 chroot 有要求)。
- 用户白名单:启用userlist_enable=YES、userlist_deny=NO,在**/etc/vsftpd.allowed_users**中列出允许登录的账号。
- 精细访问控制:结合 /etc/hosts.allow 与 /etc/hosts.deny 限制来源网段;必要时仅放行受信任 IP。
- 最小权限原则:为 FTP 用户设置受限的系统账户与目录权限,避免共享高权限账号。
二 加密传输与被动模式端口
- 启用 TLS/SSL 加密:安装 openssl,生成证书(示例:/etc/ssl/private/vsftpd.pem),在 vsftpd 配置中启用ssl_enable=YES、force_local_logins_ssl=YES、force_local_data_ssl=YES,并指定ssl_cert_file;禁用不安全协议(如 ssl_sslv2=NO、ssl_sslv3=NO),设置ssl_ciphers=HIGH。
- 被动模式端口范围:启用pasv_enable=YES,设置pasv_min_port=30000、pasv_max_port=31000,便于防火墙放行。
- 防火墙放行:使用 UFW 放行控制与数据端口(示例:sudo ufw allow 20/tcp、21/tcp、30000:31000/tcp)。
- 更安全的替代方案:若业务允许,优先采用 SFTP(基于 SSH) 替代明文 FTP,减少协议攻击面。
三 暴力破解与异常流量防护
- 部署 fail2ban:安装并启用 fail2ban,为 vsftpd 创建 jail(示例:/etc/fail2ban/jail.local 中添加 [vsftpd] 段,enabled=true、port=ftp、filter=vsftpd、logpath=/var/log/vsftpd.log、maxretry=5、bantime=3600),自动封禁恶意 IP。
- 资源与速率限制:在 vsftpd 中限制并发与速率(如max_clients=100、max_per_ip=2、local_max_rate=100KB/s、anon_max_rate=100KB/s),缓解滥用与 DoS 风险。
- 登录失败限制:通过 PAM 限制失败重试(如在 /etc/security/limits.conf 设置maxlogins),降低暴力破解成功率。
- 可选方案:也可使用 SSHGuard 对 FTP/SSH 暴力尝试进行自动封禁。
四 日志监控与审计
- 启用传输与访问日志:在 /etc/vsftpd.conf 中开启xferlog_enable=YES、xferlog_std_format=YES,必要时指定xferlog_file;实时查看可用tail -f /var/log/vsftpd.log,或用 journalctl -u vsftpd 检索服务日志。
- 日志轮转:配置 logrotate(如每日轮转、保留 7 天、压缩旧日志),防止日志过大并便于取证。
- 主动告警:结合 fail2ban 的邮件通知或集中日志平台,对频繁失败登录、异常时段传输等事件进行告警。
五 快速检查清单
| 项目 | 推荐值或做法 |
|---|---|
| 匿名访问 | anonymous_enable=NO |
| 本地用户 | local_enable=YES |
| 目录限制 | chroot_local_user=YES;必要时 allow_writeable_chroot=YES |
| 白名单 | userlist_enable=YES、userlist_deny=NO;维护 /etc/vsftpd.allowed_users |
| 加密 | ssl_enable=YES、force_ssl_login/data=YES、HIGH 加密套件 |
| 被动端口 | pasv_min_port=30000、pasv_max_port=31000 |
| 防火墙 | 放行 20/tcp、21/tcp、30000:31000/tcp |
| 并发与速率 | max_clients=100、max_per_ip=2、local_max_rate=100KB/s |
| 暴力破解防护 | fail2ban 监控 /var/log/vsftpd.log,如 maxretry=5、bantime=3600 |
| 日志与轮转 | 启用 xferlog;logrotate 每日轮转、保留 7 天 |
| 替代方案 | 条件允许时优先 SFTP |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样防止Debian FTP被攻击
本文地址: https://pptw.com/jishu/779604.html
