ipset的学习与使用

ipset,学习,使用 · 浏览次数 : 245

小编点评

**ipset 简介** ipset 是一个基于内核的数据结构,用于管理 iptables 规则。ipset 可以通过自定义集合来代替直接写入 iptables 规则,简化了管理和维护的工作。 **ipset 创建、修改和删除集合** 可以使用 ipset 命令创建、修改和删除集合,并将集合成员添加到集合中或从集合中移除成员。 **使用 ipset 命令创建、修改和删除集合** ```bash ipset create whitelist hash:ipipset create blacklist hash:ip# 创建一个空的白名单。 ipset -I INPUT -m set --match-set whitelist src -j ACCEPT# 白名单设置为接收iptables -I INPUT -m set --match-set blacklist src -j DROP# 黑名单设置为拒绝. ``` **示例** 假设我们创建一个名为 `whitelist` 的集合,并将其包含 10.110.80.0/21 的 IP 地址。 ```bash ipset create whitelist hash:ipipset add whitelist 10.110.80.0/21 ``` **ipset 使用** 在 iptables 规则中使用集合时,只需引用集合的名称即可,而不必列出集合中的每个成员。例如,以下规则允许所有来自白名单中的 IP 地址的 TCP 连接: ```bash firewall-cmd --zone=public --add-rich-rule='rule source ipset=whitelist accept' ``` **ipset 帮助** * `ipset create`: 创建新的集合。 * `ipset -I INPUT -m set --match-set `: 向集合中添加元素。 * `ipset -I INPUT -m set --match-set `: 将元素从集合中删除。 * `ipset show`: 显示集合中的所有元素。 * `ipset destroy`: 销毁集合。 * `ipset save`: 保存集合到文件。 * `ipset restore`: 从文件加载集合。

正文

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 系列都会默认安装 ipset
ubuntu的机器可以使用 apt-get install ipset -y 的方式进行安装
centos的机器可以使用
yum install ipset -y 方式进行安装.
方式比较简单. 可以直接进进行使用. 

简介

帮助部分:
create SETNAME TYPENAME [type-specific-options]
        Create a new set
add SETNAME ENTRY
        Add entry to the named set
del SETNAME ENTRY
        Delete entry from the named set
test SETNAME ENTRY
        Test entry in the named set
destroy [SETNAME]
        Destroy a named set or all sets
list [SETNAME]
        List the entries of a named set or all sets
save [SETNAME]
        Save the named set or all sets to stdout
restore 
        Restore a saved state
flush [SETNAME]
        Flush a named set or all sets
rename FROM-SETNAME TO-SETNAME
        Rename two sets
swap FROM-SETNAME TO-SETNAME
        Swap the contect of two existing sets
help [TYPENAME]
        Print help, and settype specific help
version 
        Print version information
quit 
        Quit interactive mode

部分命令的使用

ipset create whitelist hash:ip
ipset 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
获取当前所有的ipset
firewall-cmd  --zone=trusted  --permanent --add-source=ipset:ipsetname
将某ipset 增加到特定区域中
firewall-cmd --add-rich-rule='rule source ipset=blacklist drop'
设置黑名单 drop
firewall-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

与ipset的学习与使用相似的内容:

ipset的学习与使用

ipset的学习与使用 场景说明 虽然可以通过: firewall-cmd --zone=trusted --add-source=$1 --permanent && firewall-cmd --reload 或者是 firewall-cmd --zone=public --add-port=$1

[转帖]ipset详解

https://zhuanlan.zhihu.com/p/489103374 ipset创建:create 创建一个新的ipset集合:ipset create SETNAME TYPENAME SETNAME是创建的ipset的名称,TYPENAME是ipset的类型:TYPENAME := me

[转帖]ipset命令介绍与基本使用

一. 介绍 ipset命令是用于管理内核中IP sets模块的,如iptables之于netfilter。ipset字面意思是一些IP地址组成一个集合(set)。但是ipset用于用于存储IP地址,整个子网,端口号(TCP/UDP),MAC地址,网络接口名或者上述这些的组合。ipset主要是由ipt

[转帖]Linux下使用 ipset 封大量IP及ipset参数说明

https://www.cnblogs.com/xiaofeng666/p/10952627.html Linux使用iptables封IP,是常用的应对网络攻击的方法,但要封禁成千上万个IP,如果添加成千上万条规则,对机器性能影响较大,使用ipset能解决这个问题。 iptables 包含几个表,

[转帖]IPSec VPN 与 SSL VPN 区别

https://www.cndba.cn/dave/article/3239 SSL VPN,与传统的IPSec VPN技术各具特色,各有千秋。SSL VPN比较适合用于移动用户的远程接入(Client-Site),而IPSec VPN则在网对网(Site-Site)的VPN连接中具备先天优势。这两

一次MTU问题导致的RDS访问故障

导语 VPN是一种通过公网连接两个或多个私网站点的专用网络,使得这些站点仿佛是通过专线连接在一起。IPSec是一套协议框架,用于保证数据传输的私密性,完整性,真实性。但是VPN网络经常会带来一些连通性上的问题,通常与MTU设置的不合理有关。本文通过一个实际案例,来具体分析解决这个问题。 作者:陆信宇

DVWA XSS

XSS Store hign level

[攻防世界][江苏工匠杯]file_include

打开靶机url,上来就是代码审计

[攻防世界][江苏工匠杯]easyphp

打开靶机url,上来就代码审计 6000000 && strlen