使用ipset 和iptables禁止国外IP访问
IPSET安装获取国内IP地址段并导入
执行上面的脚本,将国内的ip段写进china
可通过下面命令查看写入结果
ipset list china
检查目标ip是否在ipset集合中
ipset test china 1.1.1.1
删除条目
ipset del china 1.1.1.1
清空ipset中所有集合的ip条目(删条目,不删集合)
ipset flush china
删除ipset中的某个集合或者所有集合:ipset destroy
ipset destroy china
需要保存配置,不然重启会失效
保存ipset规则
ipset save china -f /root/china.ipset
导入ipset规则
/sbin/ipset restore -f /root/china.ipset #写到/etc/rc.d/rc.local中给执行权限
iptables
-A INPUT -m set --match-set china src -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m set --match-set china src -p tcp -m tcp --dport 3306 -j ACCEPT
- yum install ipset
- // 安装ipset
- ipset create china hash:net hashsize 10000 maxelem 1000000
- // 创建地址表
- ipset add china 172.18.0.0/16
- ipset list china
- vi ipset_china.sh
- #!/bin/bash
- rm -rf cn.zone
- wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
- for i in `cat cn.zone`
- do
- ipset add china $i
- done
- ~
- chmod 777 ipset_china.sh
- ./ipset_china.sh
ipset list china
检查目标ip是否在ipset集合中
ipset test china 1.1.1.1
删除条目
ipset del china 1.1.1.1
清空ipset中所有集合的ip条目(删条目,不删集合)
ipset flush china
删除ipset中的某个集合或者所有集合:ipset destroy
ipset destroy china
需要保存配置,不然重启会失效
保存ipset规则
ipset save china -f /root/china.ipset
导入ipset规则
/sbin/ipset restore -f /root/china.ipset #写到/etc/rc.d/rc.local中给执行权限
iptables
-A INPUT -m set --match-set china src -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m set --match-set china src -p tcp -m tcp --dport 3306 -j ACCEPT