Pb ftp/tls


#1

Bonjour tous,
j’ai un pb de visualisation des dossiers et fichiers tant sur pure-ftp que vfsftp en tls/ssl.
en local depuis un autre pc j’ai accès via fillezilla je voie bien les dossiers et fichiers.
Mais des que la connexion vient de l’extérieur de mon réseaux local il s’affiche rien par contre je peux créer des dossiers que je retrouve bien sur le serveur.
4 jours que je cherche en vain la solution.
port 20 et 21 ouvert sur la livebox, certificats créer.
en ftp normal tous fonctionne.
j’ai le meme pb si je fait un changement de port.
diffèrents test fait ici me renvoient rien de probant :
g6ftpserver.com/fr/ftptest
le log montre que je suis bien connecté mais en gui je voie rien :smiling_imp:
Vous avez une idée ?
merci d’avance à plus


#2

Je suppose que le serveur est derrière un routeur qui fait du NAT avec une redirection de port, ou un pare-feu à état ?
Le FTP fonctionne à travers ces équipements parce qu’ils analysent le contenu de la connexion de commande sur le port 21 pour déterminer les ports à ouvrir et/ou rediriger automatiquement pour les connexions de données. Mais quand la connexion de commande est chiffrée, ce n’est évidemment pas possible. Le problème peut aussi se produire si le client est lui-même derrière un routeur NAT.

Pour que ça marche quand même, il faut du côté qui reçoit les connexions de données (donc côté client en mode actif et côté serveur en mode passif) :

  • si routeur NAT, forcer l’adresse passive resp. active avec l’adresse publique du routeur dans la conf du serveur resp. client
  • définir une plage de ports passifs resp. actifs dans le serveur resp. client
  • sur le routeur/firewall, rediriger (si NAT) ou autoriser (si firewall) cette plage de ports vers le client resp. serveur
  • autoriser les connexion sortantes

Si tu veux du chiffrement, l’utilisation de SFTP (transfert de fichier par SSH) est à considérer.


#3

Bonjour PascalHambourg,
voilà la config réseaux :
livebox2 avec :

Se qui fonctionne
FTP Serveur sur le port 21 de la box => sur le port 21 du serveur en tcp
FTP Data sur le port 20 de la box => sur le port 20 du serveur en tcp

configuration vsftp de :

[code]listen=YES
anonymous_enable=NO
local_enable=yes
write_enable=yes
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/var/www/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf

Connexion externe

pasv_enable=YES
pasv_promiscuous=NO
pasv_min_port=8700
pasv_max_port=8800
pasv_address=non de domaine
pasv_addr_resolve=YES
port_promiscuous=NO
[/code]

si j’ajoute dans la conf en laissant la box comme défini plus haut ça coince:

[code]ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES

rsa_cert_file=/etc/ssl/private/vsftpd.pem[/code]

L’idée à la base c’est de pouvoir ouvrir le ftp sur l’extérieur pour y accéder depuis un mobil sous android.
Fail2ban veille au grain 3 tentatives en échec => ban 1 heure.
Mais j’aimerai soit déporter l’accès autre que le 21 ou implante le ssl, les deux seraient le mieux :smiley:

Sachant que c’est un serveur en prod donc je veux pas faire n’importe quoi niveau sécu.
à plus


#4

[quote=“PascalHambourg”]…
Si tu veux du chiffrement, l’utilisation de SFTP (transfert de fichier par SSH) est à considérer.[/quote]

Et, à ce sujet, si tu veux un tuto à suivre à la lettre, tu as celui de Yann :
http://www.debian-fr.org/serveur-sftp-shell-reduit-rssh-et-chroot-t27796.html
C’est ce que j’utilise et c’est parfait.


#5

Pour faire fonctionner FTP/TLS en mode passif, il faudrait que :

  • le nom de domaine spécifié dans l’option pasv_address pointe vers l’adresse publique de la livebox
  • le routeur redirige la plage de ports définie par pasv_min_port et pasv_max_port vers l’adresse privée du serveur

Pour que le mode actif fonctionne il faudrait faire l’équivalent côté client si celui-ci est derrière un routeur NAT.

J’oubliais, a priori la redirection du port 20 ne sert à rien ni en FTP standard ni en TLS.


#6

re

je suis en ip dynamique donc le ndd d’origine ovh pointe sur un ndd de dtdns qui pointe sur mon ip publique mis à jours via la fonction dyndns de la livebox.
donc mon ndd exempleftp.fr pointe vers exempleftp.dtdns qui pointe sur 90.1.2.3.
donc la variable pasv_address doit être pasv_address=exempleftp.fr ?
si oui c’est le cas.

donc FTP Serveur sur le port 21 de la box => sur le plage ip défini par les variables pasv_min_port et pasv_max_port

dans mon exemple c’est :
pasv_min_port=8700
pasv_max_port=8800

Donc FTP Serveur sur le port 21 de la box => sur le plage ip 8700-8800

merci pour le liens ricardo je garde sous coude.
Même si l’idée d’utiliser ssh via le mobil est séduisante je préfère ouvrir le ftp vers l’extérieur que le ssh :smiley:

mais je garde ça au chaud


#7

Non.
port TCP 21 en entrée => port 21 sur l’adresse du serveur
plage de ports TCP 8700-8800 en entrée => plage 8700-8800 (en fait ne pas modifier le port) sur l’adresse du serveur.


#8

bon j’ai fait comme indiquer mais c’est idem.
j’ai mis ssl en mode debug et cela donne cela :

Wed Jun 8 21:30:48 2011 [pid 2] CONNECT: Client "90.84.146.152" Wed Jun 8 21:30:49 2011 [pid 2] DEBUG: Client "90.84.146.152", "SSL version: TLSv1/SSLv3, SSL cipher: DES-CBC3-SHA, not reused, no cert" Wed Jun 8 21:30:49 2011 [pid 1] [test] OK LOGIN: Client "90.84.146.152"

et ça :

Wed Jun 8 20:48:41 2011 [pid 2] CONNECT: Client "90.84.146.145" Wed Jun 8 20:48:42 2011 [pid 2] DEBUG: Client "90.84.146.145", "SSL_accept failed: error:00000000:lib(0):func(0):reason(0)"

en local via filezilla en local:

Statut : Résolution de l'adresse de exemple.fr Statut : Connexion à 192.168.1.10:21... Statut : Connexion établie, attente du message d'accueil... Réponse : 220 Bienvenue sur le serveur ftp de exemple Commande : AUTH TLS Réponse : 234 Proceed with negotiation. Statut : Initialisation TLS... Statut : Vérification du certificat... Commande : USER test Statut : Connexion TLS/SSL établie. Réponse : 331 Please specify the password. Commande : PASS **** Réponse : 230 Login successful. Commande : OPTS UTF8 ON Réponse : 200 Always in UTF8 mode. Commande : PBSZ 0 Réponse : 200 PBSZ set to 0. Commande : PROT P Réponse : 200 PROT now Private. Statut : Connecté Statut : Récupération du contenu du dossier... Commande : PWD Réponse : 257 "/" Commande : TYPE I Réponse : 200 Switching to Binary mode. Commande : PASV Erreur : GnuTLS error -8: A record packet with illegal version was received. Erreur : Déconnecté du serveur : ECONNABORTED - Connection aborted Erreur : Échec lors de la récupération du contenu du dossier
je pige plus moi :smiling_imp:


#9

Bonjour tous,
après moult essais je suis enfin parvenue a faire fonctionné le serveur ftp en tls/ssl et avec le port déporté. :041
Dans la livebox j’ai ouvert un port xxxxx à la place du 21 et ouvert le même sur le serveur et mis le même dans la config du serveur ftp.
ensuite j’ai ouvert une plage ip dans la box sur le serveur et dans la conf du ftp.
Là ça fonctionne en local sur le réseaux depuis un autre poste externe et sur le mobil sous android en 3G et wifi.
Merci PascalHambourg pour ton aide. :038
ps je m’attaque à squid maintenant :075


a scindé ce sujet #10

Un message a été scindé en un nouveau topic: Problème de FTP


a fermé ce sujet #11