[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: iptables et ftp (2/2)



PII 233 wrote:
Le Thu, 18 Dec 2003 15:07:55 +0100, zorman cyril écrivait :

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

J'utilise ferm pour écrire mes règles de façon plus lisible, et il me génère :

iptables -t filter -A INPUT -i eth0 -p tcp --state ESTABLISHED,RELATED -j ACCEPT

qui produit l'erreur :

iptables v1.2.6a: Unknown arg `--state'
Try `iptables -h' or 'iptables --help' for more information.

en cherchant un peu, j'ai trouvé via google la commande "mod" de ferm, qui n'apparaît
pas dans son manuel, du coup :

  mod state state (ESTABLISHED,RELATED) ACCEPT;

fonctionne.
Ou bien :
iptables -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

C'est beaucoup plus élégant et beaucoup plus simple.

Alternativement :
option automod

qui apparaît dans le man, mais sans réelle explication pour qui ne connait
pas sa signification, fait l'affaire.


maintenant, nous acceptons touts les paquets entrant, en relation avec
une connexion déjà établie ou une nouvelle connexion liée à une
connexion déjà établie
Attention, il y a une petite confusion dans "une nouvelle connexion liée à une connexion déjà établie": c'est un _paquet_ en relation avec une connexion déjà établie.




Pour un firewall ne filtrant que le ftp, voici un script écrit *rapidement* pour proposer un filtrage plus fin (smpt, http, et autre sont beaucoup plus simples à mettre en place, donc non indiqués ici)...

# Attention, ne pas confondre nouvelle connexion, avec connexion
#"non encore intégrée" dans la table d'états.
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Quel que soit le mode ftp utilisé,
#la connexion s'établie sur le port 21,
iptables -A INPUT -p tcp --sport 21 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 21 -j ACCEPT

# ensuite elle se poursuit avec le transfert des données
#sur le port 20 du serveur (!= client qui
#est ici la machine locale).
iptables -A INPUT -p tcp --sport 20 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUPUT -p tcp --sport 1024: --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT

# En revanche, pour l'autre type de ftp (actif), c'est
#différent.
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

Il suffit de rajouter les @IP et je pense que l'on atteint un niveau de filtrage beaucoup plus fin.



Bonne soirée

Guillaume Lehmann



Reply to: