Autoriser les connexions établies
Objectif : Permettre les réponses aux connexions initiées par le serveur ou déjà autorisées.
Un serveur qui ouvre une connexion doit pouvoir recevoir la réponse, même si son filtrage entrant est restrictif. De même, une connexion entrante autorisée doit pouvoir recevoir la réponse du serveur. Vous allez utiliser le suivi de connexion d’iptables pour reconnaître ces paquets de retour, sans ouvrir indistinctement de nouveaux accès.
Reconnaître l’état d’une connexion
Le suivi de connexion, fourni ici par le module conntrack, associe les paquets à des échanges réseau connus. Il attribue notamment l’état NEW à une nouvelle connexion, ESTABLISHED aux paquets d’une connexion déjà suivie, et RELATED à un échange associé à une connexion existante. Les notions de trajet et de chaînes INPUT et OUTPUT ont été présentées dans les leçons précédentes ; ici, l’enjeu est de reconnaître l’état du paquet.
NEW: paquet associé à une nouvelle connexion, qui n’a pas encore été établie.ESTABLISHED: paquet appartenant à une connexion dont des paquets ont déjà été vus dans les deux sens.RELATED: paquet associé à une connexion existante, sans appartenir directement à son échange principal.
Autoriser ESTABLISHED,RELATED n’équivaut pas à autoriser toutes les nouvelles connexions. Le critère vise les paquets que conntrack reconnaît comme appartenant à un échange déjà commencé ou lié à un échange suivi. Une connexion sortante nouvelle nécessite toujours une règle qui l’autorise, si votre politique de sortie la bloque.
Autoriser les paquets de retour
Pour le serveur web du projet, ajoutez une règle dans INPUT afin de laisser revenir les réponses aux connexions initiées depuis le serveur. Ajoutez également une règle dans OUTPUT pour laisser repartir les réponses aux connexions entrantes déjà autorisées. Ces règles ne changent pas la politique par défaut et n’autorisent pas, à elles seules, un nouvel accès SSH, HTTP ou HTTPS.
SSH_PORT=22
# Confirmez d'abord que 22 est le port réellement utilisé par votre session SSH.
# Si nécessaire, remplacez la valeur par le port vérifié.
iptables -A INPUT -p tcp --dport "$SSH_PORT" -m conntrack --ctstate NEW -j ACCEPT
# Autorise les paquets de connexions déjà suivies ou associées.
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTLa première règle autorise une nouvelle connexion SSH sur le port indiqué ; les deux suivantes autorisent les paquets de retour dans chaque sens. La valeur 22 n’est qu’un exemple courant : vérifiez le port de votre session avant d’exécuter la commande et adaptez SSH_PORT si nécessaire. Ces commandes ajoutent des règles au pare-feu actif ; ne les exécutez que si vous êtes prêt à modifier sa configuration et disposez d’un moyen de récupération en cas de problème.
Comprendre la portée des règles
Dans la règle INPUT, --ctstate ESTABLISHED,RELATED demande à conntrack de sélectionner les paquets entrants associés à une connexion suivie. La même condition dans OUTPUT cible les paquets sortants de retour. L’action ACCEPT laisse passer les paquets sélectionnés ; elle ne rend pas permissif le reste du trafic.
Gardez une règle distincte pour chaque intention : une autorisation SSH, une règle de retour entrante et une règle de retour sortante. Ne créez pas de règle temporaire pour tester les connexions, puis vérifiez la configuration selon les méthodes qui seront détaillées dans la leçon consacrée au contrôle des règles. À ce stade, vous savez préparer les autorisations de retour ; les règles qui ouvrent les nouveaux accès web restent à définir séparément.
À retenir
- Conntrack associe les paquets à des connexions suivies et distingue notamment NEW, ESTABLISHED et RELATED.
- Les règles ESTABLISHED,RELATED autorisent les paquets de retour sans ouvrir toutes les nouvelles connexions.
- INPUT et OUTPUT ont chacune besoin de leur règle de retour si les deux sens sont filtrés.
- Vérifiez et autorisez le port SSH réel avant toute politique restrictive ; la règle de retour ne suffit pas à autoriser une nouvelle session.