Dans mes iptables, j'ai une règle qui enregistre les paquets perdus:
-A INPUT -i eth0 -j LOG --log-prefix "FW: " --log-level 7
-A INPUT -i eth0 -j DROP
Et dans /etc/rsyslog.conf
, j'ai une autre règle qui envoie ces journaux à un fichier dédié /var/log/firewall.log
.
:msg, contains, "FW: " -/var/log/firewall.log
& ~
Le & ~
supprime les journaux immédiatement, afin qu'ils ne soient pas inondés syslog
ou autres fichiers journaux.
Cela fonctionne bien, sauf qu'il inonde dmesg
avec ces journaux de pare-feu (pas /var/log/dmesg
mais la sortie de la commande dmesg
).
Existe-t-il un moyen d'empêcher l'affichage de ces journaux dmesg
?
dmesg
être inondé, pas sur les règles de pare-feu.ulogd2
. C'est ainsi que j'ai résolu le problème.Réponses:
Vous pouvez utiliser la
NFLOG
cible au lieu deLOG
:Tout ce dont vous avez besoin est un
nfnetlink_log
programme de journalisation performant. Les messages y iraient et le processus de l'espace utilisateur déciderait de consigner ou non le paquet.Une autre chose que vous pourriez essayer serait de limiter la
LOG
règle à un seuil spécifique:Cela représenterait en moyenne 10 paquets par minute. Vous pouvez bien sûr ajuster cela à vos besoins.
la source
rsyslog
de l'enregistrement desNFLOG
paquets. J'ai besoin d'une solution qui fonctionnera avecrsyslog
.Cela peut être lié au niveau de journalisation que vous utilisez dans iptables. Si je comprends bien, les niveaux du journal de documentation de rsyslog sont: "La priorité est l'un des mots-clés suivants, dans l'ordre croissant: débogage, info, avis, avertissement, avertissement (identique à l'avertissement), err, erreur (identique à l'erreur), critique, alerte, émergence, panique (comme émergence). " Qu'en est-il d'essayer de spécifier le niveau de journalisation dans iptables en utilisant son nom, c'est-à-dire «avis». Me sert bien pour poster sans vérifier car je pense maintenant que ce n'est pas du tout le problème. J'ai implémenté un schéma similaire à celui décrit ci-dessus et j'obtiens le même problème. Mon noyau centos 7 est la v3.10.0 et apparemment depuis la v3.5, il semble que la journalisation du noyau se fasse en utilisant / dev / kmsg et je suppose que dmesg obtient en quelque sorte son entrée à partir de là.
la source
Lorsque vous avez défini le niveau de journalisation sur 7 avec la commande:
Ensuite, vous pouvez simplement filtrer ces messages en passant le seuil de niveau au dmesg:
la source
Pourquoi est-ce que tu t'en préoccupes?
dmesg
est un outil de bas niveau pour imprimer les messages récents du noyau, et vous avez demandé au noyau de consigner les paquets perdus.Configurez le système syslog de votre système pour enregistrer les messages iptables dans un fichier journal distinct des autres messages du noyau et utilisez les fichiers journaux qu'il écrit à la place
dmesg
.la source