DEDIBOX-NEWS.COM

Le Forum Non Officiel de la DEDIBOX

Vous n'êtes pas identifié.

#1 2006-08-30 20:51:36

ScHinZe
Eleveur de chèvres
Lieu: Katmandou
Date d'inscription: 2006-08-04
Messages: 2537
Site web

PureFTP, problème de connexion

Ola !
J'ai trouvé un article très interessant ici:
http://www.generation-linux.net/article … _article=1
Mais j'ai un soucis...
Impossible de passer l'étape [R] LIST -al dans mon client ftp...

Code:

[R] Connecting to Mon_IP -> IP=Mon_IP PORT=21
[R] Connected to Mon_IP
[R] 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
[R] 220-You are user number 2 of 50 allowed.
[R] 220-Local time is now 22:54. Server port: 21.
[R] 220-This is a private system - No anonymous login
[R] 220 You will be disconnected after 15 minutes of inactivity.
[R] USER Mon_USER
[R] 331 User Mon_USER OK. Password required
[R] PASS (hidden)
[R] 230-User Mon_USER has group access to:  monuser plugdev  video    audio   
[R] 230- floppy   cdrom    dialout 
[R] 230 OK. Current directory is /home/Mon_USER
[R] SYST
[R] 215 UNIX Type: L8
[R] FEAT
[R] 211-Extensions supported:
[R]  EPRT
[R]  IDLE
[R]  MDTM
[R]  SIZE
[R]  REST STREAM
[R]  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
[R]  MLSD
[R]  TVFS
[R]  ESTP
[R]  PASV
[R]  EPSV
[R]  SPSV
[R]  ESTA
[R]  AUTH TLS
[R]  PBSZ
[R]  PROT
[R] 211 End.
[R] CWD /home/Mon_USER/
[R] 250 OK. Current directory is /home/Mon_USER
[R] PWD
[R] 257 "/home/Mon_USER" is your current location
[R] TYPE A
[R] 200 TYPE is now ASCII
[R] PORT 192,168,1,168,8,254
[R] 200 PORT command successful
[R] LIST -al

Ca reste pendant des plombes sur le LIST -al puis Connection lost...
J'ai pourtant désactiver le mode passif dans mon client FTP, et voici les confs de mon firewall:
Chain INPUT (policy DROP 11 packets, 3044 bytes)

Code:

 pkts bytes target     prot opt in     out     source               destination
 1197 85748 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh
17814   16M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp-data
   11   528 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp
   30  1588 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:8000
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:8001
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:webcache
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:8080
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:2030

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy DROP 41 packets, 2440 bytes)
 pkts bytes target     prot opt in     out     source               destination
18645 5019K ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp-data
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp
    4   240 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www
    4   261 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:domain
    0     0 ACCEPT     all  --  any    lo      anywhere             anywhere

Pourriez vous m'éclairer ?
Merci

Dernière modification par Flying Jack (2006-08-30 20:52:00)


http://www.schinze.fr/_imgs/banniere.jpg

Hors ligne

 

#2 2006-08-30 21:03:55

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: PureFTP, problème de connexion

Code:

PORT 192,168,1,168,8,254

Connecte toi en passif. Parce que là, en actif, à moins de bien configurer ton client+ton routeur, ou d'avoir un routeur NAT qui fait de l'analyse de paquets, ca va pas passer.

Hors ligne

 

#3 2006-08-30 21:19:00

ScHinZe
Eleveur de chèvres
Lieu: Katmandou
Date d'inscription: 2006-08-04
Messages: 2537
Site web

Re: PureFTP, problème de connexion

Du coup, rajouter le fichier pour les ports passif du serveur et ouvrir ces ports dans mon firewall...
Des que j'ai la foi, je m'y attaque big_smile


http://www.schinze.fr/_imgs/banniere.jpg

Hors ligne

 

#4 2006-08-30 21:47:25

ScHinZe
Eleveur de chèvres
Lieu: Katmandou
Date d'inscription: 2006-08-04
Messages: 2537
Site web

Re: PureFTP, problème de connexion

J'ai fixé mon ftp passif entre 5000 et 5030...

Code:

MonServeur:/etc/pure-ftpd/conf# more PassivePortRange
5000 5030

J'ai configuré mon iptables:

Code:

Chain INPUT (policy DROP 19 packets, 942 bytes)
 pkts bytes target     prot opt in     out     source               destination
 9131 6239K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh
 1790 3470K ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    1    60 ACCEPT     all  --  lo     any     anywhere             anywhere
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp-data
    5   240 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:5000:5030 dpts:5000:5030 state RELATED,ESTABLISHED
    1    48 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:8000
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:8001
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:webcache
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:8080
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:2030

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 7748 7150K ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp-data
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www
    1    73 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:domain
    1    60 ACCEPT     all  --  any    lo      anywhere             anywhere
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:5000:5030 dpts:5000:5030 state RELATED,ESTABLISHED

Mais j'arrive toujours pas à me connecter..

http://www.nipournicontre.com/_tofs/flashfxp.gif

Code:

[R] PWD
[R] 257 "/" is your current location
[R] TYPE A
[R] 200 TYPE is now ASCII
[R] PASV
[R] 227 Entering Passive Mode (ip,de,mon,serveur,19,136)
[R] Opening data connection IP: ip.de.mon.serveur PORT: 5000
[R] Data Socket Error: Connection timed out
[R] List Error

Je précise que l'ip du Entering Passive Mode est bien l'ip de mon serveur et mon ip wan de chez wam ^^

Merci pour votre patience...

Dernière modification par Flying Jack (2006-08-30 21:50:48)


http://www.schinze.fr/_imgs/banniere.jpg

Hors ligne

 

#5 2006-08-30 21:59:26

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: PureFTP, problème de connexion

Tes règles de firewall me semblent foireuses.

Pour commencer, une règle du genre: INPUT, port destination 5000-5030, state:NEW, ESTABLISHED

Autre solution, vu qu'en INPUT tu as une règle "générique":
1790 3470K ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED

tu devrais pouvoir te contenter de faire un "modprobe ip_conntrack_ftp" qui va analyser le trafic des connexions de controle FTP à la recherche des commandes "PASV...<leport>" et qui va ouvrir les ports à la volée en conséquence.

Hors ligne

 

#6 2006-08-30 22:08:45

ScHinZe
Eleveur de chèvres
Lieu: Katmandou
Date d'inscription: 2006-08-04
Messages: 2537
Site web

Re: PureFTP, problème de connexion

T'es trop fort ^^
iptables -t filter -A INPUT -p tcp --dport 5000:5030 -m state --state NEW,RELATED -j ACCEPT
Merci wink
J'avoue que j'ai pas encore l'iptables bien ancré en tete... mais j'y travaille...
Pourquoi NEW et pas RELATED ? Quelle est la différence ?

Oui, j'aime bien m'interesser à la théorie autant, si ce n'est plus, qu'a la pratique...
Merci en tout cas smile


http://www.schinze.fr/_imgs/banniere.jpg

Hors ligne

 

#7 2006-08-30 22:40:13

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: PureFTP, problème de connexion

Il suffit de comprendre les deux modes de fonctionnement du FTP pour que les règles iptables deviennent plus claires.

S = Serveur / ip 1.2.3.4
C = Client / ip 5.6.7.8

Actif:

C établit la connexion de contrôle vers S:21

C veut un listing de répertoire ou un fichier. Ces informations seront échangées par une connexion éphémère pour les données (une fois établie, les données sont envoyées par le serveur puis la connexion est fermée). Il s'agit donc de "négocier" la suite des opérations. En actif, c'est le serveur qui va se connecter vers le client. Le client annonce alors le port sur lequel il écoute et envoie via la connexion de controle:
PORT 5,6,7,8,250,100

5,6,7,8 correspond à l'IP.
250,100 correspond au port: 250*256+100 = 64100
Bref, le client a dit "Renvoie moi les données sur 5.6.7.8:64100".

Ensuite, le client demande les données et envoie par exemple:
LIST
Le serveur va se connecter sur l'IP et le port spécifiés précédemment et envoyer le listing du répertoire. C'est le même process à chaque listing/transfert de fichier.

Passif:

C établit la connexion de contrôle vers S:21
C veut un listing de répertoire ou un fichier. En passif, c'est le client qui va ouvrir une nouvelle connexion vers le sereur. Le serveur doit donc fournir le port sur lequel le client doit se connecter.
Dans un premier temps, C annonce qu'il veut travailler en passif et demande le port:
PASV
Le serveur se bind à un port et le fournit au client:
227 Entering Passive Mode (1,2,3,4,234,144)
Même principe que plus haut: 1.2.3.4 c'est l'IP et 234,144 c'est le port (c'est à dire 60048).
Bref, maintenant que le client sait où il doit se connecter, il demande les données qu'il veut:
LIST
Puis se connecte à l'IP/port fournis juste au-dessus pour avoir les données.

On voit donc qu'en ftp passif, le client établit la connexion ftp de controle sur le port 21 (classique) puis des connexions successives pour les données, sur les "ports passifs".

Pour iptables, tu as alors 2 approches pour le passif:
- autoriser toutes les connexions entrantes à destination des port passifs (en se foutant de l'état, de manière statique), genre:

Code:

iptables -A INPUT --protocol tcp --destination 1.2.3.4 --destination-port 21 -j ACCEPT
iptables -A INPUT --protocol tcp --destination 1.2.3.4 --destination-port 60000:60100 -j ACCEPT

- utiliser le module ip_conntrack_ftp qui va faire de l'analyse à la volée du trafic sur le port 21 et ouvre les ports à la volée:

Code:

modprobe ip_conntrack_ftp
iptables -A INPUT --protocol tcp --destination 1.2.3.4 --destination-port 21 -j ACCEPT
iptables -A INPUT --destination 1.2.3.4 -m state --state ESTABLISHED,RELATED -j ACCEPT

C'est là la magie du RELATED. Grace au module ip_conntrack_ftp qui va analyser à la volée les commandes du style "227 Entering Passive Mode (1,2,3,4,234,144)", tu vas pouvoir dire que tel ou tel paquet est "RELATED" à une autre connexion et que du coup, la dernière règle ci-dessus va laisser passer les paquets.

Hors ligne

 

#8 2006-08-31 09:14:18

ScHinZe
Eleveur de chèvres
Lieu: Katmandou
Date d'inscription: 2006-08-04
Messages: 2537
Site web

Re: PureFTP, problème de connexion

Merci !
J'essayerait avec le modprobe ip_conntrack_ftp


http://www.schinze.fr/_imgs/banniere.jpg

Hors ligne

 

#9 2006-08-31 10:18:09

Thenab
Jeidi
Lieu: Clichy (92)
Date d'inscription: 2006-05-04
Messages: 129
Site web

Re: PureFTP, problème de connexion

Merci beaucoup en effet !!!

Pour ma part, j'ai mis ça :

Code:

modprobe ip_conntrack_ftp
iptables -A INPUT --protocol tcp --destination-port 21 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

C'est bon ? Bon ça marche en tout cas... mais j'ai viré les "--destination xxx.xxx.xxx.xxx".


Thenab - Quitte à passer pour un con, passe vite !
NABBOX.COM - Forum de la capture TV

Hors ligne

 

#10 2006-08-31 10:39:44

Thenab
Jeidi
Lieu: Clichy (92)
Date d'inscription: 2006-05-04
Messages: 129
Site web

Re: PureFTP, problème de connexion


Thenab - Quitte à passer pour un con, passe vite !
NABBOX.COM - Forum de la capture TV

Hors ligne

 

#11 2006-08-31 10:42:33

Thenab
Jeidi
Lieu: Clichy (92)
Date d'inscription: 2006-05-04
Messages: 129
Site web

Re: PureFTP, problème de connexion

Quelle est la différence entre

Code:

--protocol tcp --destination-port 21

et

Code:

-p tcp --dport 21

?


Thenab - Quitte à passer pour un con, passe vite !
NABBOX.COM - Forum de la capture TV

Hors ligne

 

#12 2006-08-31 10:43:19

ScHinZe
Eleveur de chèvres
Lieu: Katmandou
Date d'inscription: 2006-08-04
Messages: 2537
Site web

Re: PureFTP, problème de connexion

A vue de crevette, je dirais "pareil" wink


http://www.schinze.fr/_imgs/banniere.jpg

Hors ligne

 

#13 2006-08-31 10:48:08

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: PureFTP, problème de connexion

Vi, c'est pareil. C'est juste que dans les scripts, j'ai pris l'habitude de mettre les noms d'option longs, plus explicites.

Hors ligne

 

#14 2006-08-31 11:42:32

Thenab
Jeidi
Lieu: Clichy (92)
Date d'inscription: 2006-05-04
Messages: 129
Site web

Re: PureFTP, problème de connexion

Ok ok wink...


Thenab - Quitte à passer pour un con, passe vite !
NABBOX.COM - Forum de la capture TV

Hors ligne

 

#15 2008-05-13 23:09:02

JR
Membre
Date d'inscription: 2006-07-21
Messages: 13

Re: PureFTP, problème de connexion

thread très interessant !

j'essaye de faire pareil, mais avec un autre port que le 21...
en ouvrant tous les ports pas de pb, ça marche wink
mais avec le module ip_conntrack_ftp (en mettant la ligne "standart") ça ne fonctionne pas...


j'ai bien dans mon script de firewall :

/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

j'y ai rajouté "ports!,3000" à la fin (/sbin/modprobe ip_nat_ftp ports!,3000) j'ai trouvé ça dans une doc mais ça ne change rien...

qu'est ce que je dois mettre à la place pour qu'il tente l'oreille sur le port 3000, qui est le port de connection de mon ftp ?

merci à tous !

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson