为何我的 iptables 没有记录?

为何我的 iptables 没有记录?

我有一台运行在 Ubuntu 16.04 上的 Linux 服务器。今天我安装了入侵检测系统 PSAD。

PSAD 通过分析 iptables 的日志文件来工作。因此,使用 PSAD 之前要做的第一件事是启用 iptables 的日志记录。

sudo iptables -A INPUT -j LOG
sudo iptables -A FORWARD -j LOG

我运行了端口扫描,然后调用了 PSAD 状态。它应该显示发生了端口扫描,但没有显示任何内容。只是还没有进行端口扫描。

过了一段时间我才意识到,iptables 没有记录日志。没有日志文件包含 iptables 日志。我查看了

  • /var/log/messages,默认情况下它们应该位于其中,但文件是空的
  • /var/log/kern.log
  • /var/log/syslog

什么都没有。也许值得注意的是,我使用 UFW。我遵循了关于 PSAD 和 UFW 的教程,但仍然没有任何反应。在教程中创建的新文件中也没有日志。

原因可能是什么?我还没有自己设置服务器。最重要的安全措施已经在我之前完成了。也许他们删除了一些软件包。如果你能帮助我那就太好了,服务器必须是安全的。

答案1

IP 表中的规则从上到下应用。

任何时候规则适用于包,它都会按照规则定义进行处理,并且(如果没有配置不同)会导致离开规则链。

这意味着如果您的 LOG 规则放在其他规则之下,它将仅适用于之前未被规则处理的包。

如果您想要记录每个包,请将 LOG 规则放在相应的规则链的顶部。


顺便说一句:iptables 的默认日志文件位于/var/log/kern.log

答案2

可能是 (r)syslog 中的内核日志记录被禁用了。在 /etc/rsyslog.conf 文件中添加以下内容: kern.warn /var/log/firewall.log并重新加载 syslog。

之后,制定一些规则,例如,iptables -A -p tcp --dport 22 -j LOG --log-prefix " ALERT " --log-level=warning

并扫描您的 SSH 端口。

答案3

取消注释以下行/etc/rsyslog.conf

module(load="imklog") # provides kernel logging support

然后运行

service rsyslog restart

使用检查日志

tail -f /var/log/syslog

或者:

date; stat /var/log/syslog

相关内容