关于iptables封禁国外ip的方法

关于iptables封禁国外ip方法

  • 下载安装包
    • 添加集合
    • 编写脚本
    • 检查是否将国内ip网段添加进china集合当中
    • 最后一步!!!添加iptables规则

下载安装包

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

你可能感兴趣的:(linux,服务器,运维,centos,nginx)