[Debian] iptables problème ftp, pop, smtp

Résolu/Fermé
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 - 4 juil. 2006 à 12:01
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 7 juil. 2006 à 16:36
J'ai un problème avec mon firewall sous Debian. Je test les ports ouverts et fermés du firewall avec un pc windows xp.

- Le web ca marche, skype et msn aussi.
- Le ftp ca marche a moitié, la connexion fonctionne mais le listage des répertoires ne fonctionne pas (Filezilla)
- pour le smtp et le pop rien du tout. j'utilise thunderbird. J'utilise un compte mail avec du pop et du smtp sécurisé : respectivement port 995 et 465.

Pourtant lorsque j'exécute la commande "netstat -ano" sur le pc windows xp je remarque une connexion vers une adresse publique sur le port 995, mais le statut de cette connexion est en "SYNC_SENT". Voici la ligne :

" TCP 172.16.2.125:1328 64.233.183.109:995 SYN_SENT 2732"

Donc à mon avis ca doit être une mauvaise config de mon firewall mais je trouve ca bizarre : j'ouvre bien les bons ports.




#! /bin/sh

# Vidage des chaines

iptables -F


# Suppression des chaines non standards

iptables -X


# Par defaut tout est ferme

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


# reinitialisation table NAT

iptables -t nat -F
iptables -t nat -X

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT


# Translation d'adresse pour tout ce qui sort vers l'internet

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


# les pings

iptables -A INPUT -p icmp -i eth0 -j ACCEPT
iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT


# connexions locales

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


# connexions dns

iptables -A INPUT -i eth1 -p udp -m udp --sport 53 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 53 -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -p udp --sport 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 53 -j ACCEPT


# connexions http https

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT


# connexions ftp

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT


# connexions pop

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 110 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 110 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 110 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 110 -m state --state RELATED,ESTABLISHED -j ACCEPT


# connexions imap

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 143 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 143 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 143 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 143 -m state --state RELATED,ESTABLISHED -j ACCEPT


# connexions imap (ssl)

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 993 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 993 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 993 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 993 -m state --state RELATED,ESTABLISHED -j ACCEPT


# connexions smtp

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 25 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 25 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 25 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 25 -m state --state RELATED,ESTABLISHED -j ACCEPT


# connexions smtp (ssl)

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 465 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 465 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 465 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 465 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


# connexions pop (ssl)

iptables -A OUTPUT -o eth1 -p tcp -m tcp --dport 995 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m tcp --sport 995 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp --dport 995 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 995 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT



Donc pour résumer 2 problèmes :

- ftp
- pop (995) et smtp (465)


Merci d'avance de votre aide !!!!
A voir également:

18 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
4 juil. 2006 à 22:52
Salut,

Pour pop3 ssl et smtp ssl, tu t'es emmêlé les pinceaux sur les ports sources et destination ainsi que l'état tcp.

Il faut changer :
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 995 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

En:
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 995 -m state --state RELATED,ESTABLISHED -j ACCEPT


Et changer :
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 465 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 

En:
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 465 -m state --state RELATED,ESTABLISHED -j ACCEPT 


Voilà, et pour le ftp certains serveur peuvent utiliser des ports autre que le 20 pour le transfert des données.
Essaie de te connecter avec tes règles actuelles sur ftp.kernel.org avec le login anonymous et un mot de passe vide. Ce serveur utilise le port 20 pour le transfert. On saura si le problème vient de là ou pas.
2
kelux Messages postés 3065 Date d'inscription vendredi 18 juin 2004 Statut Contributeur Dernière intervention 20 janvier 2023 432
7 juil. 2006 à 13:59
Re,

Les règles sont correctes, c'est certain.

Maintenant si on se met du coté client et que l'on regarde comment s'établit la connexion ....

C'est en fait le client qui décide du mode à utiliser, passif ou actif ...

Donc si tu ne paramètres pas le client en passif ou actif, il utilisera un mode par défaut...

Le navigateur Web Internet Explorer fonctionne par défaut en actif.
Filezilla est paramétrable depuis le menu Edition > Paramètres > paramètres de pare feu. Tu pourras cocher/décocher le mode passif.

Autre chose n'oublie de systématiquement recharger tes règles iptables lorsque tu modifies ton script (ça peut paraitre idiot pour certains, mais on ne sait jamais.)

Sinon vérifies sur le client les paramètres de pare feu, pourquoi ?
La question est en fait "pourquoi il y a deux modes de connexion ftp pour les données?"
A cause du parefeu des clients ... en effet le firewall n'accepte pas par défaut les connexions entrantes, donc dans le cas du ftp actif le client bloquera la connexion de données provenant du serveur (avec son port 20). Donc il a été mis en place le mode passif, car les parefeu des clients sont paramétrés généralement par défaut pour laisser sortir les nouvelles connexions....
Donc vérifies si le parefeu sur la machine cliente accepte correctement les connexions entrantes ayant comme port source le port 20... meme si tu as ouvert le port 20 sur la passerelle, ce n'est pas dit que le client l' accèpte également.

[EDIT] : oublie cette parenthèse sur le mode actif, te concernant il s'agissait du mode passif qui posait problème, je viens de me relire et de m'apercevoir de cela, par contre ca peut servir à d'autres...

J'insiste aussi sur le second module à charger.

Le premier, ip_conntrack_ftp sert à traquer les connexions ftp et prévoir la seconde connexion (le firewall voit les communications et sait sur quels ports la seconde connexion va etre effectuée, d'ou l'état RELATED et pas NEW sur les regles de ftp-data)

Le second,ip_nat_ftp, sert aux clients derriere un NAT... (peut etre meme aux serveurs derriere un nat...)

N'hésite pas si d'autres questions.

@+

1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
4 juil. 2006 à 16:58
Salut, comment est organisé ton réseau?
La machine windows XP est dans le même réseau local que le firewall linux? C'est la machine Linux qui lui sert de passerelle?
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
4 juil. 2006 à 17:34
Oui mon poste XP est dans le même réseau que le firewall.

C'est exactement ca le firewall est la passerelle du XP.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
5 juil. 2006 à 09:32
Merci tout d'abord pour ton analyse, ce marche pour pop3 ssl et smtp ssl.

Maintenant c'est toujours le ftp qui ne marche pas, j'ai bien ouvert les ports 20 et 21 en sortie. Mais ca n'y fait rien.

Lorsque je me connecte sur ton ftp (le ftp que tu m'a donné hier) ou sur un autre d'ailleurs : la connection fonctionne. Le problème est que le listage des répertoires du ftp ne fonctionne pas.

Voici le contenu des log de Filezilla :

Etat : Connexion à ftp.kernel.org ...
Etat : Connecté à ftp.kernel.org. Attente du message d'accueil...
Réponse : 220 Welcome to ftp.kernel.org.
Commande : USER anonymous
Réponse : 331 Please specify the password.
Commande : PASS *****
Réponse : 230- Welcome to the
Réponse : 230-
Réponse : 230- LINUX KERNEL ARCHIVES
Réponse : 230- ftp.kernel.org
Réponse : 230-
Réponse : 230- "Much more than just kernels"
Réponse : 230-
Réponse : 230- IF YOU'RE ACCESSING THIS SITE VIA A WEB BROWSER
Réponse : 230- PLEASE USE THE HTTP URL BELOW INSTEAD!
Réponse : 230-
Réponse : 230-----> If you are looking for mirror sites, please go <----
Réponse : 230-----> to mirrors.kernel.org instead <----
Réponse : 230-
Réponse : 230-This site is provided as a public service by the Kernel Dot Org
Réponse : 230-Organization, Inc. Bandwidth is provided by The Internet Software
Réponse : 230-Consortium, Inc. This server is located in San Francisco, California,
Réponse : 230-USA; use in violation of any applicable laws strictly prohibited.
Réponse : 230-
Réponse : 230-Due to U.S. Exports Regulations, all cryptographic software on this
Réponse : 230-site is subject to the following legal notice:
Réponse : 230-
Réponse : 230- This site includes publicly available encryption source code
Réponse : 230- which, together with object code resulting from the compiling of
Réponse : 230- publicly available source code, may be exported from the United
Réponse : 230- States under License Exception "TSU" pursuant to 15 C.F.R. Section
Réponse : 230- 740.13(e).
Réponse : 230-
Réponse : 230-This legal notice applies to cryptographic software only. Please see
Réponse : 230-the Bureau of Industry and Security (http://www.bis.doc.gov/) for more
Réponse : 230-information about current U.S. regulations.
Réponse : 230-
Réponse : 230-Neither the Kernel Dot Org Organization, Inc. nor its sponsors make
Réponse : 230-any guarantees, explicit or implicit, about the contents of this site.
Réponse : 230-Use at your own risk.
Réponse : 230-
Réponse : 230-This site is accessible via the following mechanisms:
Réponse : 230-
Réponse : 230- FTP ftp://ftp.kernel.org/pub/
Réponse : 230- HTTP https://mirrors.edge.kernel.org/pub/
Réponse : 230- RSYNC rsync://rsync.kernel.org/pub/
Réponse : 230-
Réponse : 230-NFS and SMB/CIFS are no longer available.
Réponse : 230-
Réponse : 230-For comments on this site, please contact <ftpadmin@kernel.org>.
Réponse : 230-Please do not use this address for questions that are not related to
Réponse : 230-the operation of this site. Please see our homepage at
Réponse : 230-https://www.kernel.org/ for links to Linux documentation resources.
Réponse : 230-
Réponse : 230 Login successful.
Commande : SYST
Réponse : 215 UNIX Type: L8
Commande : FEAT
Réponse : 211-Features:
Réponse : EPRT
Réponse : EPSV
Réponse : MDTM
Réponse : PASV
Réponse : REST STREAM
Réponse : SIZE
Réponse : TVFS
Réponse : 211 End
Etat : Connecté
Etat : Récupération de la liste de répertoires...
Commande : PWD
Réponse : 257 "/"
Commande : TYPE A
Réponse : 200 Switching to ASCII mode.
Commande : PASV
Réponse : 227 Entering Passive Mode (204,152,191,37,52,138)
Commande : LIST
Erreur : Le canal de transfert n'a pas pu être ouvert. Raison : Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu.
Erreur : N'a pas pu récupérer la liste du répertoire



A noter que lorsque je permet au poste XP de se connecter sur internet sans passer par le firewall la connexion ftp marche parfaitement : donc cela ne vient pas de la config de filezilla.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juil. 2006 à 16:41
Je viens de tester avec les mêmes règles que toi pour le ftp mais en INPUT (j'ai qu'une machine chez moi). Et ça fonctionne, donc le soucis concerne seulement le forward.
Le problème, c'est que j'ai pas de machine pour tester.

Essaie un ptit truc:
Insère une règle au début de tes règles ftp:
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m tcp --sport 20 -m state --state ! RELATED -j LOG --log-prefix "FTP_TEST: "

Ca loggera ce qui vient sur depuis un port 20 et qui n'est pas considéré comme connexion en relation avec une connexion existante.

Connecte toi ensuite sur ftp.kernel.org et après le listage échoué, regarde dans tes logs:
cat /var/log/syslog | grep FTP_TEST

Et colle ici ce que te donnera cette commande.
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
6 juil. 2006 à 10:33
Ca ne marche pas les inscriptions dans le log de "syslog". Je ne trouve aucune information sur le comportement du firewall dans les logs : /var/log/syslog, /var/log/messages, /var/log/lastlog et tout le reste.

Je ne comprends pas trop pourquoi le ftp ne veut pas marcher !!!!!!
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
6 juil. 2006 à 13:32
Salut,

Linux a un module ip_conntrack_ftp, qui permet en général de résoudre les difficultés de gestion des sessions FTP passives :

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Fire...


Dal
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
6 juil. 2006 à 14:13
Ah ben vi....
Je m'emmêle les pinceaux, je sais jamais si c'est pour les serveurs ou les clients, mais c'est pour les clients....

Donc:
modprobe ip_conntrack_ftp
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
6 juil. 2006 à 14:14
Exact c'est pour les clients et pas pour un serveur ftp dans mon réseau !!!!!
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
6 juil. 2006 à 14:15
j'ai juste à rajouter ca et ca va marcher ??
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
6 juil. 2006 à 15:04
Ca devrait marcher.

Toujours parler de ce genre de choses au conditionnel ;-)
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
6 juil. 2006 à 15:33
Ca ne marche toujours pas. En exécutant la commande "lsmod" je vois bien que le module "ip_conntrack_ftp" est démarré.

J'ai fouillé un peu sur le net et j'ai trouvé un tuto intéressant : cela parle de ce module avec les connections ftp vers les serveur sur internet.


Dans le cas d'une connexion en mode actif :

En fait lorsqu'on ouvre notre navigateur et on tape "ftp:// ..." : donc on veut accéder à un ftp sur le net; on se connecte sur le port 21 du serveur.
Ensuite le client ftp indique au serveur sur quel port est-ce-que ce dernier doit se connecter (ex : port 3084).

le serveur se met sur son port 20 et transmet les données au client sur son port 3084. Et comme sur le firewall du client les ports non reconnus comme 3084 ne sont pas ouvert. Donc ca bloque : PROBLEME : en gros c'est ce qui m'arrive

SOLUTION :
Activer le module "ip_conntrack_ftp"

Il donne la 1ère règle à ajouter :
iptables -I INPUT 1 -p tcp --sport 21 -m state --state ESTABLISHED
-j ACCEPT


Et ensuite il dit qu'il faut une 2ème règle pour :

Pour autoriser les transferts de données en FTP depuis le serveur vers notre
machine, il faudra donc autoriser les connexions provenant du port 20 du serveur
FTP et qui sont liées à la connexion de 'commandes' qui a été initiée juste
avant par notre machine (statut RELATED). N'oubliez pas de rajouter le statut
ESTABLISHED, en eet, la connexion n'aura le statut RELATED qu'un
cours instant, une fois identiée par netlter et par le client FTP, elle deviendra
ESTABLISHED



Mais il ne donne pas la règle : moi j'ai pensé à ca :

iptables -A INPUT -i eth1 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT


Tu penses que c'est bon ou pas ?? j'ai essayé et cela ne marche pas ??
Je vais bien y arriver !!!!!
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
7 juil. 2006 à 11:05
En fait j'ai ces lignes pour le ftp :

------------------------- début des règles --------------------------------

chain INPUT


iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT

#FTP actif
iptables -A INPUT -i eth1 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT



chain FORWARD


iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT


chain OUTPUT

iptables -A OUTPUT -o eth1 -p tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 20 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


# Autoriser le suivi de connexion ftp en mode actif vers internet (module "ip_conntrack_ftp" est present dans /etc/init.d/firewall)

-A OUTPUT -o eth1 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT


------------------------- Fin des règles --------------------------------


Tout ce qui est en gras c'est ce que j'ai rajouté pour faire fonctionner le ftp en mode actif. Ca marche 1 fois sur 2 : donc 1 fois sur 2 je visualise les répertoires du serveur ftp (et je peux même télécharger des fichiers). Et j'essaie de me deconnecter et de me reconnecter et cela ne marche plus.

Etat actuel : Le mode passif ne marche pas mais le mode actif marche de temps en temps


Je ne comprends pas ???? Merci de m'aider
0
kelux Messages postés 3065 Date d'inscription vendredi 18 juin 2004 Statut Contributeur Dernière intervention 20 janvier 2023 432
7 juil. 2006 à 11:49
Salut,

Je viens rajouter mon grain de sel :)

N'oublies pas de charger également le module ip_nat_ftp, ca marchera mieux.

Je vais ici écrire quelques règles pour le ftp ... il y des règles justes dans les exemples ci dessus, mais je préfère tout écrire, autant pour la passerelle que pour le lan.

net = interface du net
lan = interface du lan

#Regles pour la passerelle
#Afin qu'elle puisse accéder à un serveur ftp sur le net
#la passerelle est donc cliente dans ce cas...

iptables -A OUTPUT -o $net -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $net -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

#ftp actif
iptables -A OUTPUT -o $net -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i $net -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT

#ftp passif
iptables -A OUTPUT -o $net -p tcp --sport 1024: --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $net -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT

# Fin de config pour la passerelle
# On passe au LAN

iptables -A FORWARD -i $lan -o $net -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $net -o $lan -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

# ftp actif

iptables -A FORWARD -i $lan -o $net -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $net -o $lan -p tcp --sport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT

#ftp passif

iptables -A FORWARD -i $lan -o $net -p tcp --sport 1024: --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $net -o $lan -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT


Voila ;)

rappel :

ftp actif : c'est LE SERVEUR FTP qui créé la seconde connexion (connexion "données") avec son port 20, c'est pour cela qu'on dit que le serveur est actif.

ftp passif : c'est LE CLIENT qui créé la seconde connexion. Le serveur FTP est en attente du client, c'est pour cela qu'il est passif. Le client et le serveur utilisent tous les deux des ports hauts. Il est possible d'affiner les règles de filtrage concernant les ports hauts pour le mode passif...(demander si besoin plus d'infos).
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
7 juil. 2006 à 12:19
Le mode passif fonctionne mais pas le mode actif. Je ne sais pas trop pourquoi : j'ai analysé tes règles elles ont l'air bonne.

J'utilise fillezilla pour tester mais lorsque j'utilise le navigateur web pour tester le ftp ca marche.

donc je ne sais pas trop quoi en penser !!!!
0
jejeTech Messages postés 83 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 avril 2012 4
7 juil. 2006 à 15:56
J'ai chargé le module "ip_nat_ftp" et c'est bon. Ca marche autant en actif qu'en passif.

Tout marche nickel, merci c'est trop bien.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
7 juil. 2006 à 16:36
Très instructive toute cette discussion.
Pour moi ip_nat_ftp c'était juste pour les serveurs ftp derrière du nat mais apparemment c'est aussi pour les clients en actif....

Je ne savais pas non plus que le port 20 était juste utilisé dans le mode actif...

Merci :-)
0