On Thu, 18 Dec 2003, Lehmann Guillaume wrote: > 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
Ce ne serait pas l'inverse? le clietn veut se connecter au serveur ftp, donc le port destination est 21, et le port source est random... > > # 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 Contraire... et on prend pas 1024, mais tout port entre 1024 a 65535, ou idealement, utiliser le module qui se contente de "tracker" la connexion correspondante et d'ouvrir le port qui l'interesse uniquement (ip_conntrack_ftp) > > # 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. le FTP n'a pas juste les port 1024... c'est des randoms comme dit ci-haud. Bien que ce soit totalement en dehors du sujet de Debian, je me permet de corriger ici, pour eviter d'induire en erreur les debutants: Pour le mode Actif, il est IMPOSSIBLE d'ecrire juste des regles d'iptables, il *FAUT* absolment un module (kernel land (comme ip_nat_ftp) ou userland (comme ftp-proxy d'openbsd) pour re-ecrire l'adresse ip. Je m'explique: SERVEUR FTP (1.2.3.4) -- GATWEAY/NAT (1.2.3.5) -- CLIENT INTERNE (192.168.1.2) A titre de rappel, le 192.168.1.2 n'est PAS ROUTABLE sur internet. Si le client est en mode actif, donc c'est le serveur qui se connecte au client lrosqu'il envoie la commande PORT. Le HIC: il envoie la commande port avec son ip locale, du genre: PORT 192,168,1,2,3,24 (le 3,24 c'est pour designer le port). Le serveur va donc se brancher au 192.168.1.2.. ce qui ne marchera _pas du tout_. Il faudra donc re-ecrire cette adresse dans le header ftp (et non dans le header ip). Solutions possibles: - inserer le module ip_nat_ftp - coder/installer un proxy ftp - oublier le mode actif, et prendre le passif uniquement E. -- Eric LeBlanc [EMAIL PROTECTED] -------------------------------------------------- UNIX is user friendly. It's just selective about who its friends are. ==================================================

