Les fichiers de journalisation d'un pare-feu sont essentiels pour reconnaître les attaques, les problèmes dans vos règles de filtrage, et ils vous permettent de déceler les activités inhabituelles sur un réseau. Vous devez cependant inclure des règles de journalisation dans votre pare-feu pour qu'ils soient générés. Ces règles doivent se placer avant toute règle de filtrage de terminaison (une règle avec une cible qui décide si un paquet doit être transmis ou non, comme ACCEPT, DROP ou REJECT). Par exemple:
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "
Une requête sur le port 80 d'une machine locale va alors générer une journalisation dans dmesg qui ressemble à ça :
[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0
Cette journalisation apparaîtra également dans les fichiers /var/log/messages
, /var/log/syslog
et /var/log/kern.log
. Ce comportement peut être modifié en éditant le fichier /etc/syslog.conf
d'une façon appropriée, ou en installant et configurant ulogd et en utilisant la cible ULOG au lieu de LOG. Le service ulogd est un démon qui audite les instructions de journalisation du noyau spécifiques au pare-feu et peut les enregistrer dans n'importe quel fichier ou même vers une base de données PostgreSQL ou MySQL. Vous pouvez simplifier et rendre compréhensibles vos fichiers de journalisation du pare-feu en utilisant un analyseur de journalisation comme fwanalog, fwlogwatch ou encore lire.