Linux中firewalld中引用 IPset 并配置IPset
Linux中firewalld中引用 IPset 并配置IPset
只是为了记录下自己的操作,方便后续用起来方便,也找了几个方法,最后发现这个可行:
ipset是ip地址的集合,firewalld使用ipset可以在一条规则中处理多个ip地址,后续对ip地址集合的管理也更方便,所以就采用了这方法来禁用,另外需要注意的是:iptables所用的ipset命令的不同,不要混合使用firewall-cmd的ipset参数与linux平台上的ipset命令,避免引起冲突,irewalld的ipset会记录到/etc/firewalld/ipsets/目录下
系统环境:Linux 8(Centos)
禁用的IP地址192.168.0.10
一、firewalld中ipset的操作例子:
1.新建一个set
#–new-ipset=blacklist: 指定新ipset的名字为:blacklist
#–type=hash:ip 指定类型为 hash:ip,这种形式不允许重复而且只有一个ip
[root@Centos ipsets]# firewall-cmd --permanent --new-ipset=blacklist --type=hash:ip success
查看ipset文件是否已生成:
说明:默认的目录是:/etc/firewalld/ipsets
[root@Centos ipsets]# more /etc/firewalld/ipsets/blacklist.xml <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:ip"> </ipset>
2.在set中添加ip
[root@blog ipsets]# firewall-cmd --permanent --ipset=blacklist --add-entry=192.168.0.10 success
查看添加ip的效果
[root@Centos ipsets]# more /etc/firewalld/ipsets/blacklist.xml <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:ip"> <entry>192.168.0.10</entry> </ipset>
3.从set中删除ip
[root@Centos ipsets]# firewall-cmd --permanent --ipset=blacklist --remove-entry=192.168.0.10 success
查看删除ip的效果
[root@Centos ipsets]# more /etc/firewalld/ipsets/blacklist.xml <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:ip"> </ipset>
4.删除一个set
[root@Centos ipsets]# firewall-cmd --permanent --delete-ipset=blacklist success
查看blacklist这个set的配置文件是否还存在?
[root@Centos ipsets]# more /etc/firewalld/ipsets/blacklist.xml more: stat of /etc/firewalld/ipsets/blacklist.xml failed: No such file or directory
5.打印一个set的文件路径:
[root@Centos ipsets]# firewall-cmd --permanent --path-ipset=blacklist /etc/firewalld/ipsets/blacklist.xml
6.打印一个set的内容:
[root@Centos ipsets]# firewall-cmd --permanent --info-ipset=blacklist blacklist type: hash:ip options: entries: 192.168.0.10
7.列出一个set下的所有entry
[root@Centos ipsets]# firewall-cmd --permanent --ipset=blacklist --get-entries 192.168.0.10
8.判断一个ip是否存在于set中?
[root@Centos ipsets]# firewall-cmd --permanent --ipset=blacklist --query-entry=1.1.1.1 no [root@Centos ipsets]# firewall-cmd --permanent --ipset=blacklist --query-entry=192.168.0.10 yes
9.列出所有的ipsets
[root@Centos ipsets]# firewall-cmd --permanent --get-ipsets blacklist
10.得到所有的默认ipset类型
[root@Centos ipsets]# firewall-cmd --get-ipset-types hash:ip hash:ip,mark hash:ip,port hash:ip,port,ip hash:ip,port,net hash:mac hash:net hash:net,iface hash:net,net hash:net,port hash:net,port,net
二、firewalld中使用ipset
1.把一个ipset加入到禁止的规则
[root@Centos ipsets]# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset="blacklist" drop' success
使生效
[root@Centos ipsets]# firewall-cmd --reload success
查看xml中的记录:
[root@Centos ipsets]# more /etc/firewalld/zones/public.xml ... <rule family="ipv4"> <source ipset="blacklist"/> <drop/> </rule> ...
2.把ip地址中ipset中删除
注意:没写入到磁盘
[root@Centos ipsets]# firewall-cmd --ipset=blacklist --remove-entry=192.168.0.10 success [root@Centos ipsets]# firewall-cmd --ipset=blacklist --query-entry=192.168.0.10 no [root@Centos ipsets]# firewall-cmd --ipset=blacklist --get-entries
可见已删除成功,
如果想永久性的记录下来:写入到磁盘后 reload一次
[root@Centos ipsets]# firewall-cmd --permanent --ipset=blacklist --remove-entry=192.168.0.10 success [root@Centos ipsets]# more /etc/firewalld/ipsets/blacklist.xml <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:ip"> </ipset> [root@Centos ipsets]# firewall-cmd --reload success
原文: https://blog.imgtouch.com/index.php/2023/05/22/centos8linuxfirewalld-yong-ipset-guan-li-ip-di-zhi-de-ji-he/
声明:本文由云召博客收集发布,如有侵权,请联系我们,我们将第一时间进行处理。