- 下载IP地址段文件 访问网址 http://www.ipdeny.com/ipblocks/data/countries/cn.zone ,另存为国内IP地址段,然后将文件上传到服务器; 也可以直接在服务器上执行如下命令直接下载文件到服务器:
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
- 使用以下脚本将cn.zone中的IP地址添加到iptables规则中:
#!/bin/bash
# 清空已有规则
iptables -F
iptables -X
# 设置默认策略为拒绝所有入站流量
iptables -P INPUT DROP
iptables -P FORWARD DROP
# 设置默认策略为允许所有出站流量
iptables -P OUTPUT ACCEPT
# 允许来自本地回环接口的数据包
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 允许已建立的连接和相关数据包通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 读取 cn.zone 文件,将其中的 IP 地址添加到防火墙规则中
while read ip; do
iptables -A INPUT -s $ip -j ACCEPT
done < cn.zone
# 保存 iptables 规则
iptables-save > /etc/iptables/rules.v4
- 运行脚本,将IP地址添加到iptables规则中:
chmod +x add_blocked_ips.sh
./add_blocked_ips.sh
- 重启iptables服务以应用新规则:
service iptables restart
-
要在每次重启服务器时自动运行上述规则,你可以将脚本添加到系统的启动脚本中。
-
创建一个名为
iptables_china.sh的文件,并将上述脚本内容复制到其中。 -
使用文本编辑器打开
/etc/sysconfig/network-scripts/ifcfg-eth0文件(假设你使用的是 eth0 网络接口,如果不是,请替换为正确的接口名称)。 -
在
ONBOOT参数后面添加以下行,以在网络接口启动之前运行脚本:pre-up /path/to/iptables_china.sh -
保存并关闭文件。
-
为脚本添加可执行权限:
chmod +x /path/to/iptables_china.sh -
重启网络服务或重启服务器以应用更改:
systemctl restart network # 或者 reboot
-