Configuration de pare-feu simple
Cette page vous explique comment configurer un pare-feu simple en utilisant iptables. Cette page explique aussi le sens des règles élémentaires et pourquoi elles sont nécessaires.
Sommaire
Généralités
Premièrement, installer les utilitaires nécessaires pour manipuler le pare-feu: iptables, ou vérifier qu'ils sont déjà installeé avec la commande :
iptables --version
Cette article suppose que vous n'avez aucune règle dans votre système. Pour vérifier que c'est le cas, la commande suivante liste toutes les règles actives :
# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 156 packets, 12541 bytes) num pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 82 packets, 8672 bytes) num pkts bytes target prot opt in out source destination
S'il y a déjà des règles, vous pouvez les retirer en chargeant le fichier exemplaire d'un iptables vierge.
iptables-restore < /etc/iptables/empty.rules
Pare-feu pour une machine unique
Créer les chaînes nécessaires
Pour cette configuration simple, on va créer deux chaînes qu'on va utiliser pour ouvrir les ports sur le pare-feu.
iptables -N TCP iptables -N UDP
Ces chaînes peuvent avoir les noms de votre choix, ici on les choisit pour représenter les paquets TCP et UDP pour ce qu'on veut écrire des règles.
La chaîne FORWARD
Comme cette machine ne veut pas envoyer les paquets pour les autres machines, on ne veut pas accepter les paquets dans la chaîne FORWARD. Donc on peut définir la stratégie défaut de ne pas accepter ces paquets:
iptables -P FORWARD DROP
La chaîne OUTPUT
On n'a pas l'intention de filtrer le trafic qui sort de notre machine, donc nous définissions par défaut la stratégie qui consiste à accepter tous les paquets qui sont destinés à l'extérieur.
iptables -P OUTPUT ACCEPT
La chaîne INPUT
Cette chaîne est responsable pour les paquets qui viennent de l'extérieur de notre système et forme la mise au point de nos efforts pour sécuriser le système. Pour commencer, comme les exemples précédents on va définir la stratégie défaut de ne pas accepter et en suite définir les exemptions. Cette stratégie de définir ce qui est permis et de rejeter tout le reste est la façon le plus fiable pour construire les pare-feux.
iptables -P INPUT DROP
Chaque paquet qui est reçu par la carte de réseau passera à travers la chaîne INPUT avant tout, s'il est destiné à cette machine. Dans cette chaîne on choisit quels paquets vont être acceptés.
La première règle qu'on va ajouter à cette chaîne autoriserait les paquets qui font partie d'une connexion qui est déjà établie ou les paquets qui sont liés à des connexions qui sont déjà établies comme les erreurs ICMP, ou des réponses ICMP. ICMP signifie Internet Control Message Protocol et peut être très important pour gérer la congestion et ajuster la taille maximale des paquets qui peuvent être transmis (MTU). Ces messages sont acceptés par cette règle.
L’état de connexion ESTABLISED implique que soit une autre règle a autorisé la connexion initiale --cstate NEW, soit la connexion était déjà en cours quand la règle a été ajoutée.
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
La seconde règle acceptera tout le trafic qui vient de l'interface "loopback" (lo), qui est nécessaire pour le fonctionnement de beaucoup de services.
iptables -A INPUT -i lo -j ACCEPT