Organiser et contrôler les règles
Objectif : Afficher les règles dans leur ordre d’application et repérer une règle incorrecte sans modifier le pare-feu.
Une règle peut sembler correcte et pourtant ne jamais s’appliquer : une règle précédente peut déjà accepter ou rejeter le paquet. Vous allez apprendre à lire la configuration réellement chargée, à vérifier l’ordre des règles et à utiliser les compteurs pour repérer celles qui correspondent au trafic.
Lire les règles dans leur ordre d’application
Vous avez déjà associé les chaînes INPUT, OUTPUT et FORWARD au trajet des paquets dans la leçon « Repérer les chaînes d’iptables ». Pour contrôler le filtrage du serveur web, commencez par examiner la table filter, utilisée pour les décisions d’autorisation ou de rejet, sans changer sa configuration.
sudo iptables -L -n -v --line-numbersL’option -L affiche les chaînes et leurs règles. -n conserve les adresses et les ports sous forme numérique, ce qui évite les résolutions de noms et rend la vérification plus directe. -v ajoute des détails, notamment les compteurs, et --line-numbers numérote les règles telles qu’elles sont actuellement ordonnées.
Une chaîne affiche d’abord sa politique par défaut, puis ses règles dans l’ordre. Pour chaque paquet, iptables examine les règles l’une après l’autre : une règle qui correspond et aboutit à une décision comme ACCEPT, DROP ou REJECT arrête le parcours de cette chaîne. Une autorisation placée après un rejet général correspondant au même trafic ne pourra donc pas le permettre.
Comparer l’affichage lisible et la forme des règles
Pour contrôler une chaîne précise, ciblez-la explicitement. L’exemple suivant ne fait qu’afficher INPUT ; il ne modifie pas les règles du serveur.
sudo iptables -L INPUT -n -v --line-numbersExemple de lecture : la colonne numérotée indique la position de chaque règle ; les colonnes pkts et bytes indiquent les compteurs observés depuis leur dernière remise à zéro.La commande -S restitue les règles sous une forme proche de leur écriture en ligne de commande. Elle facilite la comparaison des critères : chaîne, protocole, port de destination, interface et action. Consultez les deux formats pour vérifier à la fois l’ordre d’évaluation et le contenu précis d’une règle.
sudo iptables -S INPUTExemple de forme affichée : -P INPUT ACCEPT puis des lignes -A INPUT ... correspondant aux règles de la chaîne, dans leur ordre.Interpréter les compteurs et repérer les erreurs
Les compteurs pkts et bytes indiquent respectivement le nombre de paquets et le volume de données auxquels la règle a correspondu. Un compteur qui augmente confirme que du trafic rencontre cette règle ; un compteur nul ne prouve pas automatiquement qu’elle est incorrecte, car le trafic attendu n’a peut-être pas eu lieu pendant la période observée.
Pour auditer le serveur, vérifiez séparément INPUT et OUTPUT, puis examinez FORWARD seulement si la machine transfère effectivement du trafic. Comparez les règles affichées aux besoins déjà inventoriés : SSH sur le port confirmé, puis HTTP et HTTPS si l’application les expose. Une règle inattendue, un port erroné ou une autorisation placée trop bas constitue un point à examiner avant toute activation ou politique restrictive.
sudo iptables -L INPUT -n -v --line-numbers
sudo iptables -L OUTPUT -n -v --line-numbers
sudo iptables -S INPUT
sudo iptables -S OUTPUTNe remettez pas les compteurs à zéro pendant cet audit : leur historique aide à comprendre si les règles ont été sollicitées. Ne supprimez pas non plus une règle simplement parce que son compteur est nul. Si vous trouvez une anomalie, consignez la chaîne, la position et les critères concernés ; la prochaine étape consiste à définir les paramètres initiaux d’UFW, sans mélanger les outils dans une même modification non planifiée.
À retenir
- Utilisez `iptables -L -n -v --line-numbers` pour lire l’ordre, les critères et les compteurs.
- Utilisez `iptables -S` pour comparer la forme exacte des règles.
- Une décision terminale peut empêcher l’évaluation d’une règle placée plus bas.
- Un compteur nul ne suffit pas à conclure qu’une règle est incorrecte.
- Vérifiez l’autorisation SSH avant toute politique restrictive ; les commandes de cette leçon ne modifient pas le pare-feu.