我有一台 Ubuntu 服务器,我用 阻止了一些 IP ufw
。我启用了日志记录,但我不知道在哪里可以找到日志。日志可能在哪里,或者为什么ufw
不记录?
答案1
首先执行sudo ufw status verbose
以查看您是否正在登录。如果没有,则执行sudo ufw logging on
。如果正在登录,请检查/var/log/
以 开头的文件ufw
。例如,sudo ls /var/log/ufw*
如果您正在记录,但没有/var/log/ufw*
文件,请检查是否rsyslog
正在运行:sudo service rsyslog status
。如果 rsyslog 正在运行,ufw 正在记录,但仍然没有日志文件,请在常用日志文件中搜索任何提及的内容。UFW
例如:grep -i ufw /var/log/syslog
以及。grep -i ufw /var/log/messages
grep -i ufw /var/log/kern.log
如果您在 syslog、messages 和 kern.log 文件中发现大量ufw
消息,则可能需要指示 rsyslog 将所有 UFW 消息记录到单独的文件中。在顶部添加一行,/etc/rsyslog.d/50-default.conf
内容为以下两行:
:msg, contains, “UFW” -/var/log/ufw.log
& ~
然后您应该有一个包含所有ufw
消息的 ufw.log 文件!
笔记:
检查50-default.conf
文件中是否存在预先存在的配置。
确保在保存编辑之前备份文件!
Ubuntu Server 20.04 及更高版本的更新
从 Ubuntu 20.04 及更高版本开始,~
已被弃用并且不应使用,如 ubuntu 20.04 系统日志中所报告的:
rsyslogd: error during parsing file /etc/rsyslog.d/50-default.conf, on or before line 6: invalid character '�' - is there an invalid escape sequence somewhere? [v8.2001.0 try https://www.rsyslog.com/e/2207 ]
Jan 26 12:10:27 ubuntu rsyslogd: warning: ~ action is deprecated, consider using the 'stop' statement instead [v8.2001.0 try https://www.rsyslog.com/e/2307 ]
相反,你应该用单词 来替换它stop
。因此,如果你仍然想将 rsyslog 中的所有 ufw 消息记录到单独的 ufw.log 文件中,那么你应该将以下内容添加到你的/etc/rsyslog.d/50-default.conf
文件中:
:msg, contains, “UFW” -/var/log/ufw.log
& stop
代替
:msg, contains, “UFW” -/var/log/ufw.log
& ~
答案2
您还可以在内核缓冲区中找到 UFW 的日志。
sudo dmesg | grep '\[UFW'