在CentOS系统中,使用iptables来防止DDoS攻击是一种常见的方法。以下是一些基本的步骤和策略,可以帮助你配置iptables以增强你的服务器的安全性:
更新iptables: 确保你的iptables是最新版本,以便可以使用最新的安全特性。
默认策略: 设置默认的iptables策略为DROP,这样只有明确允许的流量才能通过。
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT 允许已建立的连接: 允许已经建立的连接和相关的数据包通过,这样可以确保正常的通信不会被中断。
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 限制连接速率: 使用limit模块来限制特定时间内可以接收的包的数量,这有助于防止简单的DDoS攻击,如SYN洪水攻击。
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT iptables -A INPUT -p udp -m limit --limit 5/s --limit-burst 5 -j ACCEPT 阻止可疑的IP地址: 如果你发现某些IP地址在进行恶意活动,可以将它们添加到黑名单中。
iptables -A INPUT -s 123.123.123.123 -j DROP 启用SYN Cookies: SYN cookies可以帮助防御SYN洪水攻击,它们通过在服务器端维护一个半开连接队列来工作。
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 限制ICMP请求: DDoS攻击有时会使用ICMP请求(如ping)来探测网络的存在。你可以限制或完全禁止ICMP请求。
iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT 日志记录: 记录所有被拒绝的连接尝试,这样你可以监控潜在的攻击并采取进一步的措施。
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4 保存iptables规则: 在CentOS 7及以上版本中,使用firewall-cmd来管理iptables规则,并使用firewall-cmd --runtime-to-permanent来保存更改。
systemctl stop firewalld systemctl disable firewalld systemctl enable iptables systemctl start iptables 请注意,这些只是一些基本的步骤,实际的DDoS防御可能需要更复杂的策略和工具,包括但不限于专业的DDoS防护服务。此外,配置iptables需要谨慎,错误的配置可能会导致合法流量被阻断。在生产环境中应用这些规则之前,建议在测试环境中进行充分的测试。