ipset的学习与使用

作者: cnpim CNPIM 2023年06月09日

ipset的学习与使用


场景说明

虽然可以通过:firewall-cmd  --zone=trusted --add-source=$1 --permanent && firewall-cmd --reload或者是firewall-cmd --zone=public --add-port=$1/tcp --permanent && firewall-cmd --reload为ip地址和端口开放里面, 但是每次还需要进行一下reload.  如果条目数过多之后防火墙的reload和性能都不是特别好. 最近在看博客, 突然发现有一个ipset的方式. 更加简单. 也更利于实现单独的ip设置, 动态增删等. 

ChatGPT怎么说

ipset 是一个基于内核的数据结构,它可以用于管理 iptables 规则。ipset 可以通过自定义集合来代替直接写入 iptables 规则。这些集合可以包括 ip 地址、端口号、mac 地址等成员,并且可以在多个规则中重复使用,从而简化了管理和维护的工作。使用 ipset 命令创建、修改和删除集合,还可以将集合成员添加到集合中或从集合中移除成员。在 iptables 规则中使用集合时,只需要引用集合的名称即可,而不必列出集合中的每个成员。总之,ipset 是一个强大的工具,可以帮助用户管理 iptables 规则并加快网络流量过滤的速度。

安装

好像 centos 系列都会默认安装 ipsetubuntu的机器可以使用 apt-get install ipset -y 的方式进行安装centos的机器可以使用yum install ipset -y 方式进行安装.方式比较简单. 可以直接进进行使用. 

简介

帮助部分:create SETNAME TYPENAME [type-specific-options]        Create a new setadd SETNAME ENTRY        Add entry to the named setdel SETNAME ENTRY        Delete entry from the named settest SETNAME ENTRY        Test entry in the named setdestroy [SETNAME]        Destroy a named set or all setslist [SETNAME]        List the entries of a named set or all setssave [SETNAME]        Save the named set or all sets to stdoutrestore         Restore a saved stateflush [SETNAME]        Flush a named set or all setsrename FROM-SETNAME TO-SETNAME        Rename two setsswap FROM-SETNAME TO-SETNAME        Swap the contect of two existing setshelp [TYPENAME]        Print help, and settype specific helpversion         Print version informationquit         Quit interactive mode

部分命令的使用

ipset create whitelist hash:ipipset create blacklist hash:ip# 创建一个空的白名单. iptables -I INPUT -m set --match-set whitelist src -j ACCEPT# 白名单设置为接收iptables -I INPUT -m set --match-set blacklist src -j DROP# 黑名单设置为拒绝. 

firewall-cmd 设置 ipset 的方式

firewall-cmd --get-ipset-types获取支持的 ipset类型列表firewall-cmd --get-ipsets获取当前所有的ipsetfirewall-cmd  --zone=trusted  --permanent --add-source=ipset:ipsetname将某ipset 增加到特定区域中firewall-cmd --add-rich-rule='rule source ipset=blacklist drop'设置黑名单 dropfirewall-cmd --zone=public --add-rich-rule='rule source ipset=whitelist accept'设置白名单 接收firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source ipset=whitelist port port=22 protocol=tcp reject'将特定IP地址设置为不进行 22 端口的访问.

ipset命令详解

ipset add whitelist 10.110.80.0/21将部分内网段添加到白名单ipset list 查看ipset的列表ipset whitelist list 查看白名单的信息ipset flush whitelist清空列表里面的信息ipset destroy 销毁所有的列表, 如果加上列表名称就是清理对应的列表. ip save whitelist -f zhaobsh.txt 将白名单保存到具体文件ipset restore -f zhaobsh.txt

本文阅读量:

声明:本信息来源于网络,仅用于学习和技术交流,如有侵权或其他问题,请联系本站处理。

技术支持:CNPIM.COM