×


Enable FirewallD logging for denied packets on Linux

Are you trying to enable FirewallD logging for denied packets on Linux? 

This guide is for you.


FirewallD logs are located at /var/log/firewalld. To get debug messages, you need to run it with --debug or --debug=2.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform FirewallD related queries.

In this context, we shall look into how to enable FirewallD logging for denied packets on Linux.


How to enable FirewallD logging for denied packets on Linux ?

Here, you will learn the process to enable the FirewallD logging.

In the /etc/firewalld/firewalld.conf file, we can set LogDenied options. 

Another option is to use the firewall-cmd command. After enabling it, the Linux system will log all the packets that are rejected or dropped by FirewallD. 

There are multiple methods to enable FirewallD logging. 

They are:

i. firewalld.conf method

ii. firewall-cmd method

iii. firewall-config method


1. Configuring logging for denied packets {firewalld.conf method}

First, we edit the /etc/firewalld/firewalld.conf:

sudo vi /etc/firewalld/firewalld.conf

In this file, we find the below code:

LogDenied=off

Then we replace it with below:

LogDenied=all

After that, we save and close the file. 

Then we restart the FirewallD service by running the below command:

sudo systemctl restart firewalld.service

The LogDenied option is turned off by default. 

The LogDenied option turns on logging rules right before reject and drop rules in the INPUT, FORWARD, and OUTPUT chains for the default rules and also final reject and drop rules in zones. 

The possible values are all, unicast, broadcast, multicast, and off.


For shell scripts we can use the combination of the grep command and sed command as below:

grep '^LogDenied' /etc/firewalld/firewalld.conf
grep -q -i '^LogDenied=off' /etc/firewalld/firewalld.conf && echo "Change it" || echo "No need to change"
grep -q -i '^LogDenied=off' /etc/firewalld/firewalld.conf | sed -i'Backup' 's/LogDenied=off/LogDenied=all/' /etc/firewalld/firewalld.conf

 

2. Firewalld enable logging {firewall-cmd method} on Linux

First, we find and list the actual LogDenied settings:

sudo firewall-cmd --get-log-denied

Next, we change the actual LogDenied settings:

sudo firewall-cmd --set-log-denied=all

After that, we verify it by running the below command:

sudo firewall-cmd --get-log-denied

 

3. Enable FirewallD log using a GUI configuration tool {firewall-config method}

Fedora or CentOS or OpenSUSE desktop users can try the GUI method.

First, we open the terminal window and then open the FirewallD GUI configuration tool. In other words, start firewall-config as follows:

firewall-config

Now, we find and click the “Options” menu and select the “Change Log Denied” option. Here, we choose the new LogDenied setting from the menu and click OK.


How to view denied packets?

In order to view the denied packets, we run the below command:

journalctl -x -e

Or else, we use the combination of dmesg and grep as follows:

dmesg
dmesg | grep -i REJECT

 

How to log all dropped packets to /var/log/firewalld-droppd.log file ?

First, we create a new config file called /etc/rsyslog.d/firewalld-droppd.conf on the CentOS/RHEL v7/8 server:

$ sudo vim /etc/rsyslog.d/firewalld-droppd.conf

Then we append the following configuration:

:msg,contains,"_DROP" /var/log/firewalld-droppd.log
:msg,contains,"_REJECT" /var/log/firewalld-droppd.log
& stop
$ sudo systemctl restart rsyslog.service

Finally, we can watch the log using the cat command/grep,  command/egrep command or tail command:

$ sudo tail -f /var/log/firewalld-droppd.log


[Need urgent assistance with FirewallD related queries? – We are here to help you. ]


Conclusion

This article will guide you on how to enable #FirewallD logging for denied packets on #Linux. It is an important task to keep an eye on the rejected and dropped packets using FirewallD for #Linux system administrators. 

To enable logging option you need to use #LOG iptables/kernel module. It turn on kernel logging of matching packets. When this option is set for a rule, the Linux kernel will print some information on all matching packets (like most IP header fields) via the kernel log.

To log a dropped packet in iptables:

1. iptables -N LOGGING: Create a new chain called LOGGING.

2. iptables -A INPUT -j LOGGING: All the remaining incoming packets will jump to the LOGGING chain.

3. line#3: Log the incoming packets to syslog (/var/log/messages).

To  restart iptables:

i. To start firewall from a shell enter: # chkconfig iptables on. # service iptables start.

ii. To stop firewall, enter: # service iptables stop.

iii. To restart #firewall, enter: # service iptables restart.