关于iptables封禁国外ip方法
下载安装包
yum -y install iptables iptables-services
yum -y install ipset //iptables的扩展
添加集合
ipset create china hash:net maxelem 65536
//添加一个名叫china的Ip集合,老铁们可以按照自己的意念定义。
编写脚本
vim /root/shell/update_deny_IP.sh
#!/usr/bin/env bash
##下载国内Ip网段并输入到~/cn.zone文件里面,可自定义(如不能访问该网址可自行百度找资源,需自行确保cn.zone有网段数据)。
curl -LO http://www.ipdeny.com/ipblocks/data/countries/cn.zone && mv ./cn.zone ~
##清空china集合
ipset flush china
ip=$(cat ~/cn.zone)
for i in $ip
do
##批量将国内Ip网段添加进china集合。
ipset add china $i
done
##写完执行!!!
##计划任务要做好定时更新ip集合,即每天凌晨2点执行。
echo “0 2 * * * root /bin/bash /root/shell/update_deny_IP.sh” >> /etc/crontab
检查是否将国内ip网段添加进china集合当中
ipset list china
##有输出则有,无输出则无
最后一步!!!添加iptables规则
iptables -A INPUT -m set --match-set china src -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited