Présentation
Cet article traite de la configuration d'iptables via le fichier /etc/sysconfig/iptables, ce qui peut être utile si vous avez un ensemble complexe de règles à suivre ou si vous préférez ne pas avoir à gérer tous les indicateurs et options impliqués. avec la configuration d'iptables via la ligne de commande.
Prérequis
Un serveur exécutant CentOS 6.5 ou une version antérieure (ou toute distribution similaire)
IPTables doit être installé
Configuration de base des fichiers IPTables
L'un des principaux avantages de la configuration manuelle du fichier iptables est les commentaires. Bien que vous puissiez utiliser les commentaires via le module de correspondance ("-m comment -comment"), vous pouvez utiliser plus largement les commentaires dans le fichier iptables lui-même en utilisant le "# ‘ caractère en début de ligne :
# This is a comment and will be ignored when iptables is loaded
Nous avons donc un point de comparaison, jetons un œil à ce à quoi un fichier iptables pourrait ressembler si nous enregistrons via le sudo service iptables save commande.
sudo service iptables save
Exemple :Enregistrer le service iptables
Cela pourrait convenir quand nous avons ce petit nombre de règles, mais imaginez si nous avions des centaines de règles à suivre. Il pourrait être difficile pour nous d'analyser ces règles sans un petit commentaire pour nous aider à nous rappeler quelle était l'intention de créer ces règles en premier lieu. Alors, ajoutons un petit commentaire. Utilisez l'éditeur de texte de votre choix pour ouvrir une copie modifiable du fichier iptables (les captures d'écran suivantes ont été tirées de vim, mais nous inclurons nano dans l'entrée de commande pour faciliter les choses pour les nouveaux apprenants) :
sudo nano /etc/sysconfig/iptables
Fichier Iptables avec commentaires
Il s'agit (à une exception près) du même fichier que celui sans commentaires ci-dessus. Si vous n'êtes pas habitué à lire un tas de règles iptables, ce fichier peut être beaucoup moins intimidant (et si vos commentaires sont suffisamment clairs, ils peuvent même vous rappeler comment une règle particulièrement complexe est censée fonctionner !) .
Les yeux perçants ont peut-être remarqué que les règles ssh dans ce fichier iptables sont un peu fragiles, en ce que la deuxième ligne (en autorisant tout le trafic ssh) invalide essentiellement le point de la première ligne spécifiant qu'une adresse IP particulière est autorisée à ssh in. Ces règles sont configurées pour illustrer certains formats de règles de base. En production, vous auriez probablement mis en place un ensemble de règles plus restrictif.
Il y a un changement de règle à prendre en compte entre les deux ensembles de règles iptables. Afin de démontrer une autre utilisation du caractère de commentaire, nous avons ajouté le "# ” avant le INPUT règle spécifiant que nous rejetons le trafic qui ne correspond à aucune des règles précédentes et a ajouté une nouvelle règle qui dit que nous devons enregistrer tout le trafic avant de prendre l'action par défaut pour cette chaîne (DROP ). (Plus d'informations sur la journalisation de l'activité d'iptables peuvent être trouvées dans cet article sur le dépannage de base d'iptables). Puisque nous n'avons commenté que le REFUSER règle, si nous le voulions, nous pourrions supprimer celui "# ” pour rétablir cette règle, au lieu d'avoir à la retaper. Cela peut être utile lors du test de diverses règles ou pour inclure une règle que vous voudrez peut-être activer à l'avenir ou pour une durée limitée.
Notez que chaque règle dans le fichier /etc/sysconfig/iptables commence par le '-A ' commande. Si vous avez l'habitude d'ajouter l'utilisation d'iptables sur la ligne de commande, vous reconnaîtrez peut-être que ces règles ressemblent beaucoup à ce qui suit sudo iptables partie de la commande lors de la modification d'iptables via la CLI. Le '-A ' indique que la règle doit être ajoutée à la fin de la chaîne indiquée. Notez qu'aucun numéro de ligne n'est requis (comme cela pourrait être le cas pour '-I ' ou -R ‘) depuis ‘-A ', par définition, ajoutera la règle à la fin de la liste des règles de cette chaîne. C'est pourquoi l'ordre des règles est important car iptables filtre le trafic en analysant ces règles dans l'ordre dans lequel elles se trouvent dans la chaîne.
Une fois que vous avez terminé toutes les modifications que vous souhaitez apporter à ce fichier et que vous l'avez enregistré, vous devrez charger les nouvelles règles. Le moyen le plus simple de s'assurer que toutes les modifications sont chargées consiste à redémarrer le service iptables. Cette action videra toutes les règles iptables en cours d'exécution, puis rechargera les règles telles qu'elles existent actuellement dans le fichier /etc/sysconfig/iptables.
sudo service iptables restart
Le service iptables redémarre la sortie
Maintenant, ajoutons une nouvelle règle, et nous inclurons une erreur afin que nous puissions voir ce qui se passe lorsque nous redémarrons le service iptables :
Exemple d'échec de redémarrage
Oui, "tco" est certainement un protocole inconnu. Cette sortie est assez aimable pour fournir le numéro de ligne dans le fichier où il rencontre l'erreur et une brève description de l'erreur, c'est donc un avantage. Mais cette sortie indique également un inconvénient à apporter des modifications à vos règles de pare-feu via le fichier /etc/sysconfig/iptables et à redémarrer l'ensemble du service. Notez que la première ligne de la sortie indique que toutes les chaînes sont définies sur ACCEPTER . Les lignes suivantes vident toutes les règles et déchargent tous les modules, qui se terminent tous avec succès, comme indiqué par les "OK" entre crochets. Lorsque le service iptables rencontre l'erreur lors du rechargement, il ne parvient pas à charger l'intégralité du fichier iptables. Cela signifie donc que votre serveur est laissé sans aucun filtrage en place et que toutes les chaînes sont par défaut ACCEPTER .
Statut des tables IP
Si vous avez également NAT ou MANGLE règles configurées dans votre fichier iptables, vous y perdriez également vos traductions d'adresses, ce qui peut être un gros inconvénient pour apporter des modifications au fichier et redémarrer le service en gros.
Idéalement, à mesure que votre ensemble de règles iptables devient plus compliqué, votre meilleur pari est d'apporter des modifications (avec des commentaires explicatifs) dans le fichier /etc/sysconfig/iptables, puis d'ajouter manuellement la ou les nouvelles règles via la ligne de commande, en particulier si ces modifications sont effectuées sur un serveur de production. Votre kilométrage peut varier en fonction de vos besoins.