我有一个带有 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.log
journalctl -k
dmesg
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
,或两者都添加,您将明确知道在哪个级别搜索这些日志。