Bonjour,
Je suis en train de créer un script de régles à charger dans WIPFW sous Windows XP. Les règles se veulent adaptées pour une utilisation en tant que client (web, ftp, etc...).
Etant utilisateur de iptables sous linux, je suis plus familier de sa syntaxe que celle de IPFW. Et là, je coince sur la définition de règles pour un client devant faire du ftp en actif et passif.
Voici les règles que j'utilisais sous Iptables :
# REGLE 1 : 1ere phase actif ou passif
iptables -A OUTPUT -o eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
# REGLE 2 : 2eme phase actif
iptables -A INPUT -i eth0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
# REGLE 2 bis : 2eme phase passif
iptables -A OUTPUT -o eth0 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
En résumé :
REGLE 1 : qu'on soit en actif ou en passif, la règle autorise le client (port source quelconque) à contacter le port destination 21 du serveur.
REGLE 2 : ensuite, en actif, on autorise le serveur (port source 20) à contacter un port destination quelconque du client, sachant que RELATED permet de n'accepter cela que si le client avait auparavant contacté le serveur sur le port 21 (REGLE 1).
REGLE 2 bis : ensuite en passif, on autorise le client (port quelconque) à contacter le serveur (port destination > 1024), sachant que RELATED permet de n'accepter cela que si le client avait auparavant contacté le serveur sur le port 21 (REGLE1).
Les choses se corsent avec IPFW
# REGLE 1 : 1ere phase actif ou passif
ipfw -q add allow tcp from any to any 21 out via eth0 setup keep-state
Par contre pour les règles 2 et 2 bis, je ne sais pas trop quoi mettre. Selon la philosophie stateful de IPFW, il suffirait de mettre une règle préliminaire check-state pour que tout fonctionne... Est-ce bien cela ? ou y'a-t-il une autre manière de l'écrire ?
Merci d'avance.