La cible LOG est
spécialement destinée à journaliser des informations détaillées sur
les paquets. Ceci peut, par exemple, être considéré comme illégal.
Mais la journalisation peut servir à la recherche de bogues et
d'erreurs. La cible LOG renverra une information
spécifique sur les paquets, comme les en-têtes IP et autre détails
considérés comme intéressants. Ceci se réalise par les
fonctionnalités de journalisation du noyau, normalement
syslogd. Cette
information peut alors être lue directement avec la commande
dmesg, ou depuis les
journaux syslogd, ou
avec d'autres programmes ou applications. C'est une excellente
cible utilisée comme débogage des tables de règles, ainsi vous
pouvez voir où vont les paquets et comment les règles sont
appliquées et sur quels paquets. Notez que ce peut être une très
bonne idée d'utiliser la cible LOG au lieu de la cible
DROP lorsque vous
testez une règle dont vous n'êtes pas sûrs à 100% de son efficacité
dans un pare-feu en production, car une erreur de syntaxe dans la
table de règles pourrait causer de sévères problèmes de
connectivité entre vos utilisateurs. Notez aussi que la cible
ULOG peut être
intéressante si vous utilisez réellement une journalisation
extensive, car ULOG
supporte directement la journalisation dans les bases de données
MySQL
et d'autres.
Note | |
---|---|
Notez que si vous obtenez une sortie de journalisation
directement vers les consoles, ce n'est pas un problème de
iptables ou
Netfilter, mais plutôt un problème causé par votre configuration de
syslogd - probablement Vous pourriez aussi désirer revoir les paramétrages de dmesg. dmesg est la commande qui permet de voir sur une console les erreurs envoyées par le noyau. dmesg -n 1 enverra tous les messages sur la console, sauf les messages de panique. Les niveaux de message de dmesg s'apparient exactement aux niveaux de syslogd, et fonctionnent seulement sur les messages de journalisation depuis les fonctionnalités du noyau. Pour plus d'information voir man dmesg. |
La cible LOG prend actuellement cinq options qui peuvent être intéressantes si vous recherchez une information précise, ou désirez placer différentes options pour certaines valeurs. Elles sont présentées ci-dessous.
Tableau 11.8. Options de la cible LOG
Option | --log-level |
Exemple | iptables -A FORWARD -p tcp -j LOG --log-level debug |
Explication | C'est l'option qui indique à
iptables et
syslog quel niveau de
journalisation utiliser. Pour une liste complète des niveaux de
journalisation lisez le manuel syslog.conf . Normalement il y a les niveaux de
journalisation suivants, ou les priorités qui s'y réfèrent :
debug , info , notice ,
warning , warn , err ,
error , crit , alert ,
emerg et panic . le mot-clé error est le même que err , warn est
le même que warning et panic le même que emerg . Notez que tous les trois sont obsolètes,
en d'autres termes n'utilisez pas error , warn et
panic . La priorité définit le
niveau de rigueur des messages journalisés. Tous les messages sont
journalisés par les fonctionnalités du noyau. En d'autres termes,
placer kern.=info
/var/log/iptables dans votre fichier syslog.conf et ensuite laisser tous vos messages
de LOG dans
iptables utilise le
niveau info, ce qui fera que tous vos messages apparaîtront dans le
fichier /var/log/iptables . Notez
qu'il peut y avoir d'autres messages provenant d'autres parties du
noyau qui utilisent la priorité info. Pour plus d'information sur
la journalisation, je vous recommande de lire les pages de manuel
de syslog et
syslog.conf comme les autres HOWTO,
etc. |
Option | --log-prefix |
Exemple | iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets" |
Explication | Cette option indique à iptables de préfixer tous les messages de journalisation avec un préfixe spécifique, qui peut être facilement combiné avec grep ou d'autres outils qui permettent de tracer ces problèmes et les sorties des différentes règles. Le préfixe peut avoir jusqu'à 29 lettres de long, incluant les espaces et autres symboles spéciaux. |
Option | --log-tcp-sequence |
Exemple | iptables -A INPUT -p tcp -j LOG --log-tcp-sequence |
Explication | Cette option journalisera les numéros
des Séquences TCP , avec le message
de journalisation. Les numéros de Séquences TCP sont des nombres
spéciaux qui identifient chaque paquet et qu'ils ajustent dans une
séquence TCP, et permettent de savoir comment le flux sera
réassemblé. Notez que cette option constitue un risque de sécurité
si les journaux sont lisibles par des utilisateurs non autorisés,
ou par tout le monde. |
Option | --log-tcp-options |
Exemple | iptables -A FORWARD -p tcp -j LOG --log-tcp-options |
Explication | L'option --log-tcp-options journalise les différentes options des en-têtes des paquets TCP et peuvent être utiles lors du débogage. Cette option ne prend aucun champ de variable, comme beaucoup d'options LOG. |
Option | --log-ip-options |
Exemple | iptables -A FORWARD -p tcp -j LOG --log-ip-options |
Explication | L'option --log-ip-options journalisera la plupart des options des en-têtes de paquets IP. Elle fonctionne exactement comme l'option --log-tcp-options, mais sur les options IP. Ces messages de journalisation peuvent être utiles pour le débogage ou le traçage, comme dans l'option précédente. |
Note | |
---|---|
Fonctionne avec les noyaux Linux 2.3, 2.4, 2.5 et 2.6. |