- 首页 >
- 问答 >
-
云计算 >
- Ubuntu FTP如何防止DDoS攻击
Ubuntu FTP如何防止DDoS攻击
小樊
41
2025-11-29 12:35:56
Ubuntu FTP 防 DDoS 实用方案
一 架构与协议选择
- 优先采用 SFTP/FTPS 替代明文 FTP,减少凭证与数据被窃听、篡改的风险,同时便于配合防火墙与密钥体系做精细化控制。
- FTP 工作模式会影响暴露面与攻击面:控制通道为 21/TCP,主动模式数据通道由服务器从 20/TCP 主动连客户端,容易被滥用形成反射/放大;被动模式(PASV)由客户端连服务器高位端口,更可控,生产环境一般推荐 PASV 并限制端口范围。
- 若必须使用 FTP,建议仅开放必要端口(如 20/TCP、21/TCP 及 PASV 端口段),并尽量将服务置于内网或受保护网段,前端使用反向代理/负载均衡或云防护。
二 系统内核与连接限制
- 调整 TCP 栈以缓解 SYN Flood 等连接耗尽型攻击:提高 SYN 队列、启用 SYN Cookie、降低重试次数,并适度优化 SACK 与 R/W 内存 参数。示例(请结合业务压测微调):
- sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096
- sudo sysctl -w net.ipv4.tcp_syncookies=1
- sudo sysctl -w net.ipv4.tcp_synack_retries=2
- sudo sysctl -w net.ipv4.tcp_syn_retries=2
- sudo sysctl -w net.ipv4.tcp_sack=1
- sudo sysctl -w net.ipv4.tcp_rmem=“32768 32768 87380”
- sudo sysctl -w net.ipv4.tcp_wmem=“32768 32768 65536”
- 使用 iptables 对异常流量做速率限制与黑白名单处置(示例为“漏桶”限流,阈值需按业务调整):
- 限制每秒新连接尝试:sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
- 限制异常 RST 洪泛:sudo iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
- 限制 ICMP 洪泛:sudo iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
- 封禁恶意来源:sudo iptables -A INPUT -s 攻击来源IP -p tcp -j DROP
- 使用 UFW 做基础策略编排(仅放行业务必需端口,如 22/TCP、20-21/TCP、PASV 端口段):
- sudo ufw allow 22/tcp
- sudo ufw allow 20/tcp
- sudo ufw allow 21/tcp
- sudo ufw allow 30000:31000/tcp(示例 PASV 端口段,需与 FTP 服务配置一致)
三 vsftpd 安全加固要点
- 基本安全:禁用匿名、限制用户在主目录、开启日志与必要写权限:
- anonymous_enable=NO
- local_enable=YES
- chroot_local_user=YES
- write_enable=YES
- xferlog_enable=YES
- 加密传输:启用 TLS/SSL,配置证书与强制加密,避免明文凭证与数据外泄:
- 端口与访问控制:可修改默认端口、限制 PASV 端口范围,并仅允许受控来源访问:
- listen_port=2123(示例)
- ftp_data_port=2020(示例)
- 在防火墙/UFW 中仅放行 21/TCP、20/TCP 与配置的 PASV 端口段
四 监控与替代方案
- 持续监控与快速处置:
- 实时查看连接与端口:sudo netstat -tuln
- 审计关键日志:/var/log/auth.log、/var/log/syslog、vsftpd 传输日志(xferlog)
- 结合 DDoS deflate 等工具对异常连接来源做自动封禁(基于连接数/速率阈值)
- 架构替代与减负:
- 能用 SFTP 的场景尽量用 SFTP(基于 SSH,便于密钥登录、禁用密码、集中化堡垒机与防火墙策略)
- 大规模或复杂攻击场景建议叠加 云WAF/高防 或 硬件防火墙,在边界进行清洗与速率限制
五 快速检查清单
- 已禁用匿名登录(anonymous_enable=NO),已开启 chroot 与必要日志(xferlog_enable=YES)。
- 已启用 TLS/SSL(ssl_enable=YES),禁用明文传输。
- 已限制 PASV 端口段 并在防火墙仅放行 20/21 与该端口段。
- 已配置 iptables/UFW 的速率限制与黑白名单策略,异常来源可自动封禁。
- 已调整 sysctl 抗 SYN Flood 参数并完成压测验证。
- 已部署 监控/日志审计 与告警,必要时启用 DDoS deflate。
- 条件允许时优先采用 SFTP 或前置 高防/CDN/防火墙 做边界防护。