64

I have an Ubuntu server where I am blocking some IPs with ufw. I enabled logging, but I don't know where to find the logs. Where might the logs be or why might ufw not be logging?

Wesley
  • 33,060
blockhead
  • 901

2 Answers2

75

Perform sudo ufw status verbose to see if you're even logging in the first place. If you're not, perform sudo ufw logging on if it isn't. If it is logging, check /var/log/ for files starting with ufw. For example, sudo ls /var/log/ufw*

If you are logging, but there are no /var/log/ufw* files, check to see if rsyslog is running: sudo service rsyslog status. If rsyslog is running, ufw is logging, and there are still no logs files, search through common log files for any mention of UFW. For example: grep -i ufw /var/log/syslog and grep -i ufw /var/log/messages as well as grep -i ufw /var/log/kern.log.

If you find a ton of ufw messages in the syslog, messages, and kern.log file, then rsyslog might need to be told to log all UFW messages to a separate file. Add a line to the top of /etc/rsyslog.d/50-default.conf that says the following two lines:

:msg, contains, “UFW” -/var/log/ufw.log
& ~

And you should then have a ufw.log file that contains all ufw messages!

NOTE:

Check the 50-default.conf file for pre-existing configurations.

Make sure to backup the file before saving edits!

UPDATE for Ubuntu Server 20.04 and later

As of Ubuntu 20.04 and later, the ~ is deprecated and should not be used, as reported in the ubuntu 20.04 system log:

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 ]

Rather, you should replace it with the word stop. So if you still want to log all ufw messages in rsyslog to a seperate ufw.log file then you should add the following to your /etc/rsyslog.d/50-default.conf file:

:msg, contains, “UFW” -/var/log/ufw.log
& stop

instead of

:msg, contains, “UFW” -/var/log/ufw.log
& ~
DanRan
  • 133
Wesley
  • 33,060
14

You can also find UFW's logs in the kernel buffer.

sudo dmesg | grep '\[UFW'
Mahmoud
  • 241