我如何知道我的 Debian 服务器阻止了哪些连接?

我如何知道我的 Debian 服务器阻止了哪些连接?

简而言之,我实际上是在查找日志文件以查看 debian lenny 服务器中任何被阻止的传入连接。

或者有其他方法可以知道吗?我正在使用 iptables

答案1

您必须在链的末尾添加一条规则,以便将数据包发送到LOG目标,然后才让其运行默认DENY策略。

答案2

默认情况下,不会记录丢弃的数据包。如果启用此功能,则可能会产生大量流量,并且默认情况下 syslog 会以最“安全”的模式将消息写入磁盘,这会导致磁盘 I/O 负载过重。因此,请小心,不要让服务器最终陷入瘫痪。

为了启用丢弃或拒绝的数据包的日志记录,我建议在 DROP/REJECT 规则之前添加 LOG 规则,如下所示:

-A FORWARD -m limit --limit 4/sec --limit-burst 20 -j LOG --log-prefix "Dropping  (FORWARD): " 
-A FORWARD -j DROP 

它使用“限制”模块允许最多记录 20 个数据包,然后开始限制它们每秒不超过 4 个。一旦 4 个/秒的限制在一段时间内没有达到,它将允许再记录 20 个数据包。

您的系统上可能还有“hashlimit”模块,它允许您对每个远程或本地 IP 地址设置唯一限制。有关 hashlimit 的更多信息,请参阅“man iptables”。

最后,您可能希望将日志消息写入已禁用 fsync 的目标。在较旧的系统上,这是通过在 /etc/syslog.conf 中的文件名开头放置“-”来完成的。我没有看到 rsyslog 有类似的选项,所以请注意这一点,如果您在记录大量数据包时看到磁盘 I/O 急剧增加,则可能需要添加更严格的限制或考虑更改 rsyslog 的配置。

相关内容