0
点赞
收藏
分享

微信扫一扫

ipset及iptables屏蔽海外IP访问应用实例

1、ipset相关操作

  • 安装(一般在centos6以上系统中默认已安装)

yum install ipset -y

  • 创建ipset集合

ipset create cn_ip hash:net hashsize 4096 maxelem 1000000

  • cn_ip: 集合名称
  • hash:net 集合类型名
  • hashsize:指定了创建集合时初始大小
  • maxelem:指定了集合最大存储记录的数量      
  • 添加IP

ipset add cn_ip 10.1.1.1               #添加ip
ipset add cn_ip 10.1.1.0/24            #添加ip段
ipset add cn_ip 10.1.1.10 nomatch      #排除ip
ipset add cn_ip 10.1.1.0/24 nomatch    #排除ip段
ipset add cn_ip 10.1.1.1:80            #添加端口
ipset add cn_ip 10.1.1.1,udp:53        #添加协议及端口
ipset add cn_ip 10.1.1.1,tcp:20-25     #添加协议及端口范围

  • 删除IP

ipset del cn_ip 10.1.1.1
ipset del cn_ip 10.1.1.1:80
ipset del cn_ip 10.1.1.1,udp:53
ipset del cn_ip 10.1.1.0/24

  • 清空ipset集合

ipset flush cn_ip         #清空cn_ip列表
ipset flush               #清空所有列表

  • 查看集合列表

ipset list                #查看所有列表
ipset list cn_ip          #查看cn_ip列表

  • 保存ipset/导入ipset规则

ipset save cn_ip -f cn_ip.ipset   #将规则导出为文件
ipset restore -f cn_ip.ipset      #将规则导入ipset

2、ipset与iptables结合应用

  • 黑名单

iptables -A INPUT -m set --match-set cn_ip src -p tcp --dport 80 -j DROP

  • 白名单

iptables -A INPUT -m set --match-set cn_ip src -p tcp --dport 443 -j ACCEPT

  • 屏蔽海外IP访问用例

wget https://www.isres.com/china_ip_list.txt
ipset create cn_ip hash:net hashsize 4096 maxelem 1000000

cat china_ip_list.txt

举报

相关推荐

0 条评论