去评论
海欣资源

使用ipset 和iptables禁止国外IP访问

perll
2022/05/29 15:27:53
IPSET安装
  1. yum install ipset
  2. // 安装ipset
  3. ipset create china hash:net hashsize 10000 maxelem 1000000
  4. // 创建地址表  
  5. ipset add china 172.18.0.0/16
  6. ipset list china
获取国内IP地址段并导入
  1. vi ipset_china.sh
  1. #!/bin/bash
  2. rm -rf cn.zone
  3. wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
  4. for i in `cat cn.zone`
  5. do
  6. ipset add china $i
  7. done
  8. ~     
执行上面的脚本,将国内的ip段写进china
  1. chmod 777 ipset_china.sh
  2. ./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