GNU/Linux >> Tutoriels Linux >  >> Linux

Comment consigner les paquets rejetés par le pare-feu Linux IPTables dans un fichier journal

Cet article fait partie de notre série d'articles Linux IPTables en cours. Lorsque les choses ne fonctionnent pas comme prévu avec vos règles IPTables, vous souhaiterez peut-être consigner les paquets IPTables abandonnés à des fins de dépannage. Cet article explique comment enregistrer les paquets de pare-feu entrants et sortants abandonnés.

Si vous êtes nouveau sur IPTables, familiarisez-vous d'abord avec les concepts fondamentaux d'IPTables.

Enregistrer tous les paquets d'entrée abandonnés

Nous devons d'abord comprendre comment enregistrer tous les paquets d'entrée abandonnés d'iptables dans syslog.

Si vous avez déjà tout un tas de règles de pare-feu iptables, ajoutez-les en bas, ce qui enregistrera tous les paquets d'entrée abandonnés (entrants) dans /var/log/messages

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

Dans l'exemple ci-dessus, il fait ce qui suit :

  • iptables -N LOGGING :Créer une nouvelle chaîne appelée LOGGING
  • iptables -A INPUT -j LOGGING :tous les paquets entrants restants passeront à la chaîne LOGGING
  • ligne #3 :enregistrez les paquets entrants dans syslog (/var/log/messages). Cette ligne est expliquée ci-dessous en détail.
  • iptables -A LOGGING -j DROP :Enfin, supprimez tous les paquets qui sont arrivés à la chaîne LOGGING. c'est-à-dire que maintenant, il supprime vraiment les paquets entrants.

Dans la ligne #3 ci-dessus, il dispose des options suivantes pour enregistrer les paquets abandonnés :

  • -m limit :Ceci utilise le module de correspondance de limite. En utilisant cela, vous pouvez limiter la journalisation à l'aide de l'option –limit.
  • –limit 2/min :indique le taux de correspondance moyen maximal pour la journalisation. Dans cet exemple, pour les paquets similaires, il limitera la journalisation à 2 par minute. Vous pouvez également spécifier 2/seconde, 2/minute, 2/heure, 2/jour. Ceci est utile lorsque vous ne voulez pas encombrer vos messages de journal avec des messages répétés des mêmes paquets abandonnés.
  • -j LOG :Cela indique que la cible de ce paquet est LOG. c'est-à-dire écrire dans le fichier journal.
  • –log-prefix "IPTables-Dropped : " Vous pouvez spécifier n'importe quel préfixe de journal, qui sera ajouté aux messages de journal qui seront écrits dans le fichier /var/log/messages
  • –log-level 4 Il s'agit des niveaux syslog standard. 4 est un avertissement. Vous pouvez utiliser un nombre compris entre 0 et 7. 0 correspond à une urgence et 7 à un débogage.

Enregistrer tous les paquets sortants abandonnés

C'est la même chose que ci-dessus, mais la 2ème ligne ci-dessous a OUTPUT au lieu d'INPUT.

iptables -N LOGGING
iptables -A OUTPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

Enregistrer tous les paquets abandonnés (entrants et sortants)

C'est la même chose qu'avant, mais nous allons prendre la ligne numéro 2 des deux exemples précédents et l'ajouter ici. c'est-à-dire que nous aurons une ligne distincte pour INPUT et OUTPUT qui passera à la chaîne LOGGING.

Pour consigner à la fois les paquets entrants et sortants abandonnés, ajoutez les lignes suivantes au bas de vos règles de pare-feu iptables existantes.

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

De plus, comme nous l'avons expliqué précédemment, par défaut, les iptables utiliseront /var/log/messages pour enregistrer tous les messages. Si vous souhaitez le remplacer par votre propre fichier journal personnalisé, ajoutez la ligne suivante à /etc/syslog.conf

kern.warning   /var/log/custom.log

Comment lire le journal IPTables

Voici un exemple des lignes qui ont été consignées dans /var/log/messages lorsqu'un paquet entrant et sortant a été abandonné.

Aug  4 13:22:40 centos kernel: IPTables-Dropped: IN= OUT=em1 SRC=192.168.1.23 DST=192.168.1.20 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=59228 SEQ=2
Aug  4 13:23:00 centos kernel: IPTables-Dropped: IN=em1 OUT= MAC=a2:be:d2:ab:11:af:e2:f2:00:00 SRC=192.168.2.115 DST=192.168.1.23 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=9434 DF PROTO=TCP SPT=58428 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0

Dans la sortie ci-dessus :

  • IPTables-Dropped :il s'agit du préfixe que nous avons utilisé dans notre journalisation en spécifiant l'option –log-prefix
  • IN=em1 Ceci indique l'interface qui a été utilisée pour ces paquets entrants. Ce sera vide pour les paquets sortants
  • OUT=em1 Ceci indique l'interface qui a été utilisée pour les paquets sortants. Ce sera vide pour les paquets entrants.
  • SRC=L'adresse IP source d'où provient le paquet
  • DST=L'adresse IP de destination où les paquets ont été envoyés
  • LEN=Longueur du paquet
  • PROTO=Indique le protocole (comme vous le voyez ci-dessus, la 1ère ligne est pour le protocole ICMP sortant, la 2ème ligne est pour le protocole TCP entrant)
  • SPT=Indique le port source
  • DPT=Indique le port de destination. Dans la 2ème ligne ci-dessus, le port de destination est 443. Cela indique que les paquets HTTPS entrants ont été abandonnés

Didacticiels IPTables supplémentaires

  • Didacticiel sur le pare-feu Linux :Tables IPTables, chaînes, principes de base des règles
  • Linux IPTables :comment ajouter des règles de pare-feu (avec l'exemple Autoriser SSH)
  • Linux IPTables :exemples de règles entrantes et sortantes (SSH et HTTP)
  • IPTables Flush :Supprimer / Supprimer toutes les règles sur RedHat et CentOS Linux
  • 25 exemples de règles Linux IPTables les plus fréquemment utilisés

Linux
  1. Pare-feu Linux

  2. Linux - Comment configurer le fichier Syslog.conf, pour consigner les messages Iptables dans un fichier séparé ?

  3. Comment vider un fichier journal sous Linux

  4. Linux IPTables :comment ajouter des règles de pare-feu (avec l'exemple Autoriser SSH)

  5. Comment configurer la journalisation à distance Rsyslog sous Linux (serveur de journal central)

Comment vérifier la somme de contrôle sur Linux

Comment configurer le pare-feu iptables sous Linux

Comment changer le fichier journal Sudo par défaut sous Linux

Comment créer un lien symbolique vers un fichier sous Linux

Comment sécuriser un pare-feu Linux avec les règles IPTables

Comment configurer un pare-feu sur votre serveur Linux