ipset常见操作及iptables屏蔽海外IP访问应用实例
环境: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
温馨提示:如无特殊说明,本站文章均为作者原创,转载请注明出处!
一条评论
发表新评论
- Pingback: firewalld防火墙禁止海外IP访问实例 - 群鸟部落