5

在我的新 CentOS7 机器上,我尝试使用“新”防火墙,但我无法记录断开的连接尝试。有人知道诀窍吗?

我试过了:

firewall-cmd --zone=public --remove-service=ssh
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.1.2.0/24" port port="22" protocol="tcp" log prefix="SSH-ALLOW_" accept'
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.3.4.0/24" port port="22" protocol="tcp" log prefix="SSH-ALLOW_" accept'
[here comes a VERY VERY long list of similar entries]

现在的问题是:如何为来自不允许 IP 的连接尝试指定日志条目?像非工作的东西:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="NOT-ONE-OF-THE-ABOVE" port port="22" protocol="tcp" log prefix="SSH-DENY_" drop'

有任何想法吗?

4

2 回答 2

0

几乎。在这两种情况下,反转地址参数。

对于您的示例,包括两个显示的子网,请更改您的原始:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="NOT-ONE-OF-THE-ABOVE" port port="22" protocol="tcp" log prefix="SSH-DENY_" drop'

对这些:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.1.2.0/24" invert=true port port="22" protocol="tcp" log prefix="SSH-DENY_" drop'
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.3.4.0/24" invert=true port port="22" protocol="tcp" log prefix="SSH-DENY_" drop'

这将导致 firewalld 创建以下 IP 表规则:

# iptables -S | grep _public_log
-A IN_public -j IN_public_log
-A IN_public_log ! -s 10.1.2.0/24 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j LOG --log-prefix SSH-DENY_
-A IN_public_log ! -s 10.3.4.0/24 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j LOG --log-prefix SSH-DENY_

iptables speak 中两条规则之间的区别是 '!' 表示逻辑运算符“Not”。您对 iptables 的原始规则:

-A IN_public_deny -s 10.1.2.0/24 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j DROP
-A IN_public_log -s 10.1.2.0/24 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j LOG --log-prefix SSH-DENY_

HTH。

于 2015-09-01T22:30:38.540 回答
0

我知道这是一篇过时的帖子,我的解决方案没有直接解决特定端口的日志记录,但我一直在使用 firewalld 搜索日志记录。有许多旧帖子和博客试图解决这个问题。

对于公众来说,Red Hat 的这个更新应该比订阅者更容易获得:

从勘误 RHSA-2016:2597 升级到 firewalld-0.4.3.2-8.el7

指定应记录哪些数据包

firewall-cmd --set-log-denied= 值可以是以下之一:all、unicast、broadcast、multicast 或 off

来源:https ://access.redhat.com/solutions/1191593

于 2018-01-30T16:06:58.823 回答