在CentOS上使用iptables防止DDoS攻击可以通过配置iptables规则来限制网络流量和连接速率。以下是一些基本的步骤和示例规则,可以帮助你开始配置iptables以防止DDoS攻击:
首先,确保你的iptables是最新的。你可以使用以下命令更新iptables:
sudo yum update iptables
设置默认策略为DROP,这样可以阻止所有未经明确允许的流量:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
允许必要的流量,例如SSH、HTTP/HTTPS等:
# 允许SSH连接
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# 允许HTTP连接
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# 允许HTTPS连接
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
使用limit模块来限制连接速率,防止DDoS攻击:
# 限制每秒最多5个新的SSH连接
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/s -j ACCEPT
# 限制每秒最多10个新的HTTP连接
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -m limit --limit 10/s -j ACCEPT
# 限制每秒最多10个新的HTTPS连接
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -m limit --limit 10/s -j ACCEPT
如果你知道某些IP地址是恶意的,可以阻止它们:
# 阻止特定IP地址
sudo iptables -A INPUT -s 1.2.3.4 -j DROP
保存iptables规则,以便在系统重启后仍然有效:
sudo service iptables save
确保iptables服务在系统启动时自动启动:
sudo systemctl start iptables
sudo systemctl enable iptables
定期监控网络流量和iptables日志,根据实际情况调整规则。你可以使用iptables -L -v -n命令查看当前的iptables规则和统计信息。
通过以上步骤,你可以在CentOS上使用iptables初步配置以防止DDoS攻击。不过,对于大规模的DDoS攻击,可能需要更专业的解决方案和服务。