UFW没有记录日志,我该如何进行故障排除?

我已将日志设置为高级。
我没有看到任何日志消息。
我确实看到了空的ufw.log文件。
dmesg中没有任何消息。

在终端中输入以下命令进行检查:"Sudo Ufw status"。如果防火墙已启用,您可能会遇到登录事件的问题。 - Prasad RD
状态显示:日志记录高,所以ufw认为日志记录已正确设置。有关如何继续的任何线索吗? - sureshvv
1如果任何一个答案回答了您的问题,请接受其中之一 :) - blade19899
8年过去了...仍然没有日志记录。这个狗屎的维护者到底在干嘛?不,下面的任何内容都没有帮助我。没有/var/log/ufw*,syslog里也没有任何东西,改变日志级别也没有任何区别。 - Carlo Wood
7个回答

日志文件位于/var/log/。要获取与UFW相关的日志列表,请在命令行中运行以下命令:
ls /var/log/ufw*

您的结果应该像这样显示:
$ ls /var/log/ufw*
/var/log/ufw.log    /var/log/ufw.log.2.gz  /var/log/ufw.log.4.gz
/var/log/ufw.log.1  /var/log/ufw.log.3.gz

如果你在那里找不到日志,你可能需要再次检查UFW的状态和设置。
sudo ufw status verbose

你应该得到这样的结果:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip

如果日志记录关闭了,您需要通过运行以下命令来打开它:
sudo ufw logging low

如果您没有任何日志文件,那么您可以通过输入以下命令来检查rsyslogd是否正在运行:
sudo service rsyslog status

你应该得到以下结果:
$ sudo service rsyslog status
rsyslog start/running, process 991

如果它没有显示正在运行,你可以尝试启动服务。
sudo service rsyslog restart

rsyslog正在运行。我重新启动了它。日志级别已经设置为高。但仍然没有任何进展!ufw.log是空的。哪些事件被记录?如果访问被拒绝的端口,是否会被记录? - sureshvv

上次我检查 UFW 的日志文件时它在那里。
/var/log/ufw.log

文件夹,里面有很多其他文件。

/var/log/ufw.log 是一个空文件 - 对我来说不是一个文件夹。 - sureshvv
不,他所提到的是日志文件夹!任何人都知道,如果以扩展名结尾,那就不是一个文件夹 :-) - Prasad RD
2不适用于.d扩展名...而且提问者只有1个声望,所以可能不是“任何人”。 - RobotHumans
1抱歉,那就是我所知道的范围了。 - Prasad RD

只是为了补充@cprofitt的回答,我遇到了一个问题,UFW显示:
sudo ufw status verbose
Status: active
Logging: on (low)

但它并没有记录日志。我尝试了几种方法,包括禁用/重新启用ufw,检查rsyslog配置,重启rsyslog等,但都没有任何积极的结果。日志文件仍然没有任何内容。
然后我执行了sudo ufw logging low命令,日志开始再次增长。所以ufw显然处于某种状态,无法写入日志。

1抱歉打扰一下,但我也遇到了ufw不记录日志的问题,类似的解决方案对我也起到了作用。我不得不将ufw logging设置为medium,这样它才能生成ufw.log文件。之前,即使日志级别设置为低,文件也没有被创建。谢谢! - gcode

@Carlo Wood,这位绅士8年来仍未解决此问题。
touch /var/log/ufw.log

为了保险起见,启用或调整文件中的权限。另外,如上所述,执行“ufw status medium”(或其他命令)来确认它现在正在记录日志,然后根据需要进行调整。
请告诉我它是否有效。我曾经遇到相同的问题,但在阅读此线程并采取本帖中提到的措施后,能够在几分钟内解决问题。
开发者注意:(如果他们看到这个消息)。在Ubuntu 20.04的新安装中,/var/log/ufw.log文件不存在。这个问题很容易解决,并且如果在操作系统安装过程中简单地创建ufw.log作为一部分,就不会出现这样的问题。我认为这要么是被忽略了,要么是没有优先级高到足够注意...无论哪种方式,我以前也遇到过这个问题,总是通过“touch /var/log/ufw.log”来解决。
更新:我意识到我做了太多假设。在启用ufw时应该创建/var/log/ufw.log文件(而不是在操作系统安装时创建)。

1啊,我的错。评论是正确的。当我以为那是原帖时,我犯了个错误。以后会更加小心。虽然我还有点新手,但既然这被证明是一个很好的资源,我会确保准确地理解原帖和评论。 - Ronald Johnson
我在阅读完整个帖子后立即解决了这个问题。此外,/var/log/ufw.log在新的20.04安装中不存在,并且在启用ufw时也不会被创建,这可能会为将来的某些人节省时间,就像对我一样。 - Ronald Johnson

我删除了空的/var/log/ufw.log文件,重新启动后ufw开始记录日志。


如果你安装了Ubuntu服务器的最小版本,你会得到一个响应ufw命令的东西,但是在/etc/ufw中缺少所有的配置。直到我执行了apt install ufw命令之前,日志条目才被定向到/var/log/syslog。
我还按照这个帖子中的建议之一安装了rsyslog,但在正确安装ufw之后,它对我没有太大帮助。为什么呢?在/etc/rsyslog.d/目录下,你可能会看到一个ufw配置文件(我的名字是20-ufw.conf),它将UFW消息拆分成自己的文件。由于这个文件在最小安装中没有放在那里,所有的条目都会出现在syslog中。在安装ufw之后,重新启动rsyslog会导致它读取配置并开始将条目放入/var/log/ufw.log中。
一旦我做到了这一点,关于ufw的所有讨论都开始起作用了。非常令人沮丧,但我确实安装了最小版本!
以下是20.04 ufw手册的一些链接。你喜欢的搜索引擎可能不会在搜索结果中列出它们。阅读这些手册真的帮助我弄清楚了发生了什么。

https://manpages.ubuntu.com/manpages/focal/en/man8/ufw.8.html https://manpages.ubuntu.com/manpages/focal/en/man8/ufw-framework.8.html

希望这能有所帮助。