利用ipset/iptables命令添加访问IP白名单

行云流水
2022-05-13 / 0 评论 / 1,016 阅读 / 正在检测是否收录...

前言

ipset是iptables的扩展,允许你创建匹配整个地址sets(地址集合)的规则。而不像普通的iptables链是线性的存储和过滤,ip集合存储在带索引的数据结构中,这种集合比较大也可以进行高效的查找。在许多的linux发布中ipset是一个简单的安装包,可以通过linux发行版提供的yum进行安装。

ipset基本使用

创建黑名单

ipset create blacklist hash:ip timeout 259200 hashsize 4096 maxelem 1000000

查看列表

ipset list blacklist

清空列表

ipset flush blacklist              //清空blacklist列表
ipset flush                        //清空所有列表

删除列表

ipset destroy blacklist            //删除blacklist列表
ipset destroy                         //删除所有列表

列表导入导出

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

向黑名单添加ip

ipset add blacklist 1.1.1.1

向黑名单添加IP段

ipset add blacklist 172.18.16.0/24
ipset add blacklist 172.18.16.55 nomatch      //排除单个IP
ipset add blacklist 172.18.16.0/30 nomatch        //排除一个范围

向黑名单添加带端口范围的IP

ipset add blacklist 10.10.10.10:80
ipset add blacklist 10.10.10.10,udp:53
ipset add blacklist 10.10.10.10,tcp:20-25

删除黑名单中的ip/ip段/端口

ipset del blacklist 1.1.1.1
ipset del blacklist 10.10.10.10:80
ipset del blacklist 10.10.10.10,udp:53

iptables设置

添加iptables规则

iptables -I INPUT -m set --match-set blacklist src -j DROP

黑名单用法

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

白名单用法

iptables -A INPUT -p tcp -m set --match-set whitelist src -m tcp --dport 3306 -j ACCEPT

其他

iptables不重启更新规则

#添加规则
iptables -I  INPUT  5 -p tcp -m tcp --dport 3001 -j ACCEPT

#重启生效,保存文件
vim /etc/sysconfig/iptables

#删除
iptables -D  INPUT  -p tcp -m tcp --dport 3001 -j ACCEPT

只限制22端口方法

iptables -A INPUT -p tcp  -s  1.117.7.126  -m tcp --dport 22  -j ACCEPT
iptables -A INPUT -p tcp  -m tcp --dport 22  -j REJECT --reject-with tcp-reset

评论 (0)

取消
只有登录/注册用户才可评论