如何在 systemd 中查看 iptables 日志

如何在 systemd 中查看 iptables 日志

我有一个带有 Debian Jessie 的系统。它与 systemd 一起提供。我想查看 iptables 的内核日志。

我有一堆 iptables,最后我想记录不允许的内容。我这样做:

iptables -A INPUT -j LOG

使用 syslog,我可以看到 iptables 日志执行此操作: tail -f /var/log/syslog | grep kernel 使用 systemd,我无法找到查看失败原因的方法。我一直在努力journalctl并且journalctl -f.单独的journalctl显示了很多,做了一个我不感兴趣的grep -v,我仍然看不到任何关于iptables的信息。

我还尝试了应该显示内核消息的内容,但除了开始记录之外我什么也没看到:

journalctl -k

我试图找出 iptables 是否是一项服务或什么,但我看不到它:

systemctl --full list-units --type=service

我尝试关注这篇关于 systemd 和日志的文章,但我仍然不知道如何查看 iptables 日志:https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

有什么提示吗?非常感谢。

答案1

iptables -j LOG被记录到内核。在任一(如果 systemd 记录到驱动器)或 in中查找IN=和,可能也会列出它们。例子:OUT=kernel.logjournalctl -kdmesg

journalctl -k | grep "IN=.*OUT=.*" | less

答案2

Debian Jessie 默认情况下不会删除 syslog 支持。旧的方法(通过日志进行 grep)应该仍然有效。

如果您不小心自己删除了 syslog,请重新安装它:

apt install rsyslog

答案3

尝试使用日志级别: journalctl -k --priority=[0-7]或添加到 iptables--log-level=[0-7]之后-j LOG,或两者都添加,您将明确知道在哪个级别搜索这些日志。

相关内容