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
标签:iptables,10.1,cn,ipset,ip,add,IP,1.1
From: https://blog.51cto.com/itceo/9003700