我一直在尝试找出如何更新 ipset 条目的超时,但到目前为止还没有运气,当使用本机 ipset 时,我只需使用:
$ ipset add foo 192.168.0.5 timout N -exist
但是firewalld似乎没有根据手册(man)实现这个功能,这是一个非常有用和常见的功能。 ip2ban 似乎绕过了firewalld ipset 实现并只是在本机使用它,所以我尝试过但没有成功:
IP 集创建:
$ ipset create foo hash:ip timeout 300
直接规则:
$ firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p TCP -m multiport --dports 22,443 -m set --match-set foo src -j ACCEPT
$ ipset add foo 192.120.11.1
https 请求和 ssh 连接尝试被丢弃,没有到主机的路由。一旦我禁用firewalld,我就可以成功发送请求并连接到ssh。
- 我正在使用默认区域:
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
firewall-cmd --direct --get-all-rules: ipv4 过滤器输入 0 -p TCP -m 多端口 --dports 22,443 -m set --match-set foo src -j ACCEPT
我做错了什么,这可以用firewalld吗?
提前致谢