Mot-clé - iptables

Fil des billets - Fil des commentaires

mercredi, août 10 2011

Configuration spécifique de iptables

Fedora offre un outil de configuration rapide de par-feu iptables assez simple, pratique dans la plupart des cas. Comme vous le savez certainement, CentOS est proche de Fedora dans le sens où la base est quasiment identique, à la différence des paquets et de l'aptitude de la distribution. CentOS est orientée serveur. Bref, j'ai eu besoin de créer une machine virtuelle sur ma Centos et de permettre une redirection de port sur la machine hôte pour me connecter directement à cette dernière. Or, toucher à iptables ne sauve pas votre configuration directement, et l'outil de gestion de base ne permet pas de faire des ip-forward.

Car en fait, créer une règle de port fowrading est plutôt rapide. Exemple, ici ma VM a l'ip locale "192.168.122.18" et n'est vu que de ma CentOS hôte (adresse public 1.2.3.4). Ajouter le port forward se fait de cette manière:

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 10222 -j DNAT --to 192.168.122.18:22
iptables -A FORWARD -i eth0  -p tcp -d 192.168.122.18 --dport 22 -j ACCEPT

Donc j'admet ici que si on se connecte au port 10222 de ma CentOS, je redirige la connexion sur la machine 192.168.122.18 port 22 (ssh). Cela se fait par la table PREROUTING qui va manipuler les paquets en changeant les données ip source et port source, et la table FORWARD qui assigne la redirection. Bref, sympa :)

Mais voilà, si vous voulez redémarrer votre machine, vos deux commandes sont oubliées car non inscrites dans la configuration de base du service iptables installée sur votre machine. Donc la solution est simple.

On va sauver notre ancienne configuration, sait-on jamais, et forcer la nouvelle configuration depuis la commande iptables-save.

cat /etc/sysconfig/iptables > /etc/sysconfig/iptables.save
iptables-save > /etc/sysconfig/iptables

C'est simple non ? en fait, par bonheur, le service iptables utilise le format standard de "iptables-save" et "iptables-restore" donc la manipuation est aisée.

Voilà, vous pouvez tester en relançant le service iptables, et ne plus avoir peur de perdre votre forward si le serveur redémarre.