Shorewall:blrules 中的 IPSet 未应用

Shorewall:blrules 中的 IPSet 未应用

我们希望利用 IPSet 来管理来自源(CSF+LFD、fail2ban 等相关位置)的临时 IP 阻止。目的是让在边缘使用 Shorewall 的路由器利用这些来临时阻止来自恶意远程设备的流量。没有什么不寻常的。

我们的路由器运行的是 Shorewall 5.2.3.4 和 IPSet 7.10(协议版本 7)。

Shorewall 通过 Shorewall 的“blrules”引用 IPSet 列表“blocklist”和“blocklist6”,分别用于 IPv4 和 IPv6 列表:

#ACTION     SOURCE      DEST    PROTO   DPORT
DROP:info   all:+blocklist  all
DROP:info   net:+blocklist  $FW
#ACTION     SOURCE      DEST    PROTO   DPORT
DROP:info   all:+blocklist6 all
DROP:info   net:+blocklist6 $FW

IPSet 被创建为“hash:net”类型:

create blocklist hash:net comment family inet hashsize 1024 maxelem 65536
create blocklist6 hash:net comment family inet6 hashsize 1024 maxelem 65536

但是如果将 IP 地址添加到“blocklist”或“blocklist6”,例如“93.184.216.34”和“example.com”,路由器本身及其后面的节点仍然可以 ping 并且可以通过 HTTPS 访问:

$ ipset add blocklist $(dig +short example.com A) comment "Testing block for example.com."
$ ping $(dig +short example.com A)
PING 93.184.216.34 (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=55 time=79.2 ms
$ ipset add blocklist6 $(dig +short example.com AAAA) comment "Testing block for example.com."
$ ping $(dig +short example.com AAAA)
PING 2606:2800:220:1:248:1893:25c8:1946(2606:2800:220:1:248:1893:25c8:1946) 56 data bytes
64 bytes from 2606:2800:220:1:248:1893:25c8:1946: icmp_seq=1 ttl=55 time=83.1 ms

为了进一步测试这一点,我在 Shorewall 的“规则”中添加了以下内容:

#ACTION     SOURCE  DEST                PROTO   DPORT

# Block listed
DROP        all:+blocklist  all
DROP        net:+blocklist  $FW
#ACTION     SOURCE  DEST                        PROTO   DPORT

# Block listed
DROP        all:+blocklist6 all
DROP        net:+blocklist6 $FW

清除、更新并重新启动 Shorewall IPv4 和 IPv6,仍然可联系。

Shorewall 的配置具有以下看似相关的选项设置:

BLACKLIST="NEW,INVALID,UNTRACKED"
BLACKLIST_DEFAULT="Broadcast(DROP),Multicast(DROP),dropNotSyn:$LOG_LEVEL,dropInvalid:$LOG_LEVEL,DropDNSrep:$LOG_LEVEL"
BLACKLIST_DISPOSITION=DROP
DYNAMIC_BLACKLIST=Yes
IPSET_WARNINGS=Yes
SAVE_IPSETS=Yes

我们错过了什么才能实现这个功能?预期是所有来自/发往所列 IP 地址 (或 CIDR) 的流量都会被丢弃。

谢谢,亚当

答案1

您的配置片段仅包含“来自”规则,因此 IPSets 目前仅对传入连接有效。如果您还想阻止传出数据包,则需要在配置中包含一行,其中 IPSet 是目标,如下所示:

DROP  all  all:+blocklist

相关内容