在CentOS或RedHat系列操作系统中,对抗DDoS攻击的一种常见方法是使用iptables防火墙规则来阻止恶意IP地址,为了实现这一点,你可以创建一个名为banip.txt
的文件,其中包含需要被阻止的IP地址列表,你可以编写一个脚本来自动将这些IP地址添加到iptables规则中。
以下是一个简单的步骤指南:
创建 `banip.txt` 文件
创建一个包含要阻止的IP地址的文件。
nano /path/to/banip.txt
在文件中添加你要阻止的IP地址,每行一个:
192、168.1.100 203、0.113.5 198、51.100.10
保存并关闭文件。
2. 编写脚本来读取banip.txt
并更新iptables规则
编写一个脚本来读取这个文件并将IP地址添加到iptables规则中。
nano /path/to/ban_ips.sh
在脚本中添加以下内容:
#!/bin/bash 定义banip.txt文件路径 BANIPS_FILE="/path/to/banip.txt" 检查banip.txt文件是否存在 if [ ! f "$BANIPS_FILE" ]; then echo "File $BANIPS_FILE does not exist." exit 1 fi 读取banip.txt文件中的IP地址并添加到iptables规则中 while IFS= read r IP; do # 检查IP是否为空 if [ z "$IP" ]; then continue fi # 添加iptables规则以阻止该IP地址 iptables A INPUT s "$IP" j DROP echo "Blocked IP: $IP" done < "$BANIPS_FILE"
保存并关闭文件,然后给脚本赋予执行权限:
chmod +x /path/to/ban_ips.sh
运行脚本
你可以运行这个脚本来将banip.txt
中的IP地址添加到iptables规则中:
sudo /path/to/ban_ips.sh
定期更新和清理规则(可选)
如果你希望定期更新和清理这些规则,可以设置一个cron作业,每天凌晨2点运行一次脚本:
crontab e
添加以下行:
0 2 * * * /path/to/ban_ips.sh
这样,你的系统就会每天自动更新iptables规则,以阻止新的恶意IP地址。
注意事项
确保你有足够的权限来修改iptables规则,通常需要root权限。
在生产环境中操作前,建议在测试环境中进行充分测试。
考虑使用更高级的工具如Fail2Ban,它可以根据日志动态地阻止恶意IP地址。