ipset常见操作及iptables屏蔽海外IP访问应用实例

作者: admin 分类: Linux,安全,服务器安全 发布时间: 2022-10-31 11:10 浏览:2,967 次    

环境:ipset v7.1

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
for i in $(cat china_ip_list.txt)
do
echo $i
ipset add cn_ip $i
done
iptables -A INPUT -m set --match-set cn_ip src -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m set --match-set cn_ip src -p tcp --dport 443 -j ACCEPT


温馨提示:如无特殊说明,本站文章均为作者原创,转载时请注明出处及相应链接!
一条评论

发表评论