TUTOS.EU

Voir le journal des blocages d'un firewall IpTables

Visualiser les logs de blocage d'un pare-feu IpTables

Pour voir les logs d'IpTables, par défaut sous une distribution type Debian/Ubuntu, il faut regarder dans /var/log/syslog

Pour voir l'activité de ce fichier en temps réel utilisez la commande

tail -f /var/log/syslog
Lien vers le fichier : cliquez ici Copier le code

Sous Redhat ou Centos cela ce passe dans /var/log/messages

tail -f /var/log/messages
Lien vers le fichier : cliquez ici Copier le code

Et si jamais vous voulez filtrer le contenu des logs sur un mot clé que vous auriez préalablement paramétré dans votre règles, ce mot clé pouvant être iptables:

Tapez :

tail -f /var/log/syslog | grep -i -n 'iptables:'
Lien vers le fichier : cliquez ici Copier le code

Si vous voulez mettre de la couleurs sur plusieurs mots, vous pouvez adapter avec

tail -f /var/log/syslog | grep --color=always -i "DPT\|SRC\|DST"
tail -f /var/log/syslog | egrep  -wi --color "(iptables|DPT|SRC)"
Lien vers le fichier : cliquez ici Copier le code

Notez que de base iptables ne génère pas de log. Il faut explicitement le demander.
D'un autre côté logger tout le trafic va générer un log d'une taille conséquente et cela peut planter une petite machine exposée directement sur le web.

Maintenant, si votre IpTables est configuré par défaut pour bloquer les paquets entrant, pour voir tous ceux qui vont être supprimés, ajoutez cette règle qui se mettra en fin de liste. Les messages seront préfixés avec iptables:

iptables -A INPUT -j LOG --log-prefix "iptables:"
Lien vers le fichier : cliquez ici Copier le code

Pour savoir comment est réglée votre police par défaut, tapez :

iptables -L
Lien vers le fichier : cliquez ici Copier le code

Dans l'exemple ci-dessous, on accepte tout par défaut, ce qui n'est pas conseillé :

Notez que vous pouvez créer une chaîne personnalisée, ce qui vous permettra ET de logger ET d'autoriser votre traffic.
Vous pourrez également préfixer préfixer les messages dans le journal de log avec 'iptables:' avec ce type de commande :

iptables -N LOGACCEPT
iptables -A LOGACCEPT -j LOG --log-prefix 'iptables:'
iptables -A LOGACCEPT -j ACCEPT
Lien vers le fichier : cliquez ici Copier le code

Ensuite quand vous voudrez autoriser un flux comme celui de SSH (port 22), au lieu de mettre -j ACCEPT vous mettrez :

iptables -t filter -A INPUT -p tcp --dport 22 -j LOGACCEPT
Lien vers le fichier : cliquez ici Copier le code

Vous pourrez alors analyser en temps réel le journal de log (/var/log/syslog pour Ubuntu) en filtrant sur le préfixe 'iptables:'
Pour cela vous utiliserez la commande

tail -f /var/log/messages | grep -i 'iptables:'
Lien vers le fichier : cliquez ici Copier le code

Et quand une personne se connectera en SSH, vous verrez cela :

Pages Web

Site WebDescription
Ubuntuforums.orgPost de forum où j'ai vu l'astuce de la création de la chaîne personnalisée

2