Is it possible log all dropped connections by IPTables and set a iptables.log file for logging in /var/log/?
2 Answers
You can do this my configuring iptables to 'mark' the messages e.g.
iptables -A INPUT -s 192.0.2.0/24 -j LOG --log-prefix='[iptables] '
Which will cause a log message that is prefixed with the text [iptables]
Now you can configure your rsyslog to send these messages to a particular log file by adding a suitable entry to it's configuration e.g.
:msg,contains,"[iptables] " /var/log/iptables.log
-
1This will cause messages to go to both syslog and iptables.log. To prevent them from going to syslog, add another line :msg,contains "[iptables] " ~ (that's a tilde). I added these rules to /etc/rsyslog.d/10-iptables.conf. Also, /var/log/iptables.log must exist and be chown'd to syslog:adm.– CurtJul 13, 2023 at 2:22
there is a way to log packets in IPTables. first you need to create new chain to logging packets.
iptables -N LOGGING
then you need to append which packets you are gonna log using following commands.
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING
now you can log the packets to the syslogs using this.
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
finally this command.
iptables -A LOGGING -j DROP
please add this new lines to bottom of your IPTables files.
-
But where will it be logged? Where can I find the log file?– user333044Jan 29, 2016 at 16:44
-
They are logged in kern.log by default. but you can change this in your syslog server configuration.– DomJan 29, 2016 at 19:24
-