Comment puis-je configurer /etc/syslog.conf
fichier afin d'enregistrer les informations de journal sur iptables
dans un fichier spécifique.
Je souhaite enregistrer ces informations séparément, afin de pouvoir extraire facilement et rapidement ce que je veux.
Réponse acceptée :
syslog
Jetez un œil à la page de manuel de iptables
. Il montre une cible appelée LOG
qui peut faire ce que vous voulez.
Exemple
-
Définir le niveau de journalisation pour
LOG
à 4.# DROP everything and Log it iptables -A INPUT -j LOG --log-level 4 iptables -A INPUT -j DROP
-
Configurer
syslog.conf
pour écrire ces messages dans un fichier séparé.# /etc/syslog.conf kern.warning /var/log/iptables.log
-
Redémarrez syslogd.
Debian/Ubuntu
$ sudo /etc/init.d/sysklogd restart
Fedora/CentOS/RHEL
$ sudo /etc/init.d/syslog restart
REMARQUE : Cette méthode de journalisation est appelée priorités fixes. Ce sont soit des nombres, soit des noms (1,2,3,4,..) ou (DEBUG, WARN, INFO, etc.).
rsyslog
Si par hasard vous utilisez rsyslog
, vous pouvez créer un filtre basé sur les propriétés comme ceci :
# /etc/rsyslog.conf
:msg, contains, "NETFILTER" /var/log/iptables.log
:msg, contains, "NETFILTER" ~
Ajoutez ensuite ce commutateur à vos règles iptables que vous souhaitez enregistrer :
–log-prefix NETFILTER
Comme alternative, vous pouvez également consigner les messages à l'aide de ce type de filtre de propriété :
:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
:msg, regex, "^[ *[0-9]*.[0-9]*] iptables: " -/var/log/iptables.log
& ~
REMARQUE : Cette 2ème méthode ne nécessite aucune modification de iptables
.
Références
- Forcer iptables à consigner les messages dans un autre fichier journal
- Journaliser les messages iptables avec rsyslog