Configuration problématique de vsftpd derrière un router

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Configuration problématique de vsftpd derrière un router

par Bombadil » 02 mai 2008, 16:28

Dans la configuration du router les 2 opérations sont regroupées je pense. Vous pouvez voir dans le tableau posté plus haut qu'il y a un champ « action » (allow/deny) et un champ « destination ». Je n'ai rien trouvé concernant une redirection en dehors de ça.

par Nagol » 02 mai 2008, 13:38

il faut ouvrir et natter aussi ce sont deux choses différentes si tu ouvres les ports seulement alors ton serveur ftp ne fonctionnerait que s'il était sur le router.

par Bombadil » 02 mai 2008, 13:12

Même en ouvrant les ports de 1024 à 63553 ça ne fonctionne toujours pas :(. Mais de toutes façons, l'intervalle des ports utilisables est configuré avec :

Code : Tout sélectionner

pasv_min_port=50000 pasv_max_port=60000
dans le vsftpd.conf.

par Nagol » 02 mai 2008, 10:49

pour du ftp derrière un routeur sauf configuration spéciale du serveur ftp il faut natter 20,21 et 1024->65535 pour avoir passif et actif, certains firewall (les bons) comme pf sous bsd disposent d'un proxy intégré qui permet de bypasser de telles ouvertures de ports (limite autant pas firewall à ce rythme la tu en conviendras).

en résumé voilà pourquoi je déteste le protocole ftp.

par Bombadil » 02 mai 2008, 01:06

J'utilise l'adresse IP donnée par http://whatismyipaddress.com/. Enfin une adresse dyndns associée mais ça revient au même (elle est bien à jour).

par Sékiltoyai » 02 mai 2008, 00:16

Non, quand je disais tu essayes bien, je te disais tu te connectes bien sur l'ip du routeur et pas sur l'ip du serveur ? Parce que si tu testes sur l'ip du serveur, il ne passe pas par ta première règle de redirection.

par Bombadil » 01 mai 2008, 22:31

Je mets bien le ftp:// avant mon adresse IP dans tous les cas. Sinon, je tombe sur apache et le résultat est fort reconnaissable ^^.

Si je change la source en *,* ça ne change rien. En local, ça fonctionne toujours grâce à la dernière règle.

par Sékiltoyai » 01 mai 2008, 21:28

En source, tu n'as pas mis *.* ?
Quand tu testes en local, tu essayes bien de te connecter en ftp sur ton routeur ? (et non directement vers ton ip) Parce que dans le cas contraire, la connexion ne passe pas par cette redirection…

par Bombadil » 01 mai 2008, 21:00

Merci de ton aide mais là je ne vois pas trop de quoi tu parles, je ne pense pas avoir de différenciation entre filtrage et redirection au niveau du router, tout se fait en même temps. Je vais résumer ma configuration au niveau des firewall pour que ce soit plus clair.

Tout d'abord, il y a le firewall intégré à Ubuntu mais pour les 3 chains différents (INPUT, FORWARD et OUTPUT) la policy est à ACCEPT et il n'y a aucune règle définie. Si je ne me trompe pas, ça veut dire qu'on laisse tout passer sans intervenir.

Il y a également le firewall du router qui comporte plusieurs possibilités :
  • les serveurs virtuels qui autorisent les utilisateurs d'Internet à accéder à des services du LAN ;
  • les filtres qui permettent de bloquer l'accès à certains domaines, URL ou MAC à certains ou à tous les utilisateurs du LAN ;
  • les applications spéciales qui sont utilisées pour faire tourner des applications qui requièrent des connexions multiples et
  • les règles du firewall qui peuvent être utilisées pour autoriser ou bloquer à du trafic de passer à travers le router.
En ce qui concerne les filtres et les applications spéciales, je n'en ai défini aucun.

Les serveurs virtuels sont équivalent à des règles du firewall. Quand on en active un, une règle équivalente est ajoutée au firewall, c'est simplement pour faciliter la mise en place je pense. Étant donné que cette partie est reprise dans les règles du firewall je me contenterai de vous montrer ces dernières :

Code : Tout sélectionner

+--------+------------------------+--------+-------------------+-----------------+ | Action | Name | Source | Destination | Protocol | +--------+------------------------+--------+-------------------+-----------------+ | Allow | vsftpd1 | WAN,* | LAN,192.168.0.195 | TCP,50000-60000 | | Allow | Virtual Server HTTP | WAN,* | LAN,192.168.0.195 | TCP,80 | | Allow | Virtual Server FTP | WAN,* | LAN,192.168.0.195 | TCP,20-21 | | Allow | Allow to Ping WAN port | WAN,* | WAN,* | ICMP,* | | Deny | Default | *,* | LAN,* | *,* | | Allow | Default | LAN,* | *,* | *,* | +--------+------------------------+--------+-------------------+-----------------+
La seule que j'aie rajoutée manuellement est la première et c'est aussi la seule qui ne fonctionne pas.

par Sékiltoyai » 01 mai 2008, 14:47

Il n'y aurait pas des règles de filtrage à régler en plus de la redirection ?
Par exemple sur packetfilter de bsd on peut paramétrer une redirection sans pour autant demander à ce que les paquets soient automatiquement acceptés. Donc il faudrait peut être voir dans la partie firewall de ton routeur…

par Bombadil » 01 mai 2008, 14:09

À l'intérieur de mon réseau je n'ai aucun problème, c'est dès que j'utilise mon adresse dyndns que ça plante. Puisque le port est choisi correctement, je présume que le problème vient uniquement de mon router. Le fait que ça marche en local n'est pas étonnant puisque par défaut le router laisse toutes les machines du LAN accéder à n'importe quoi.

Je ne sais pas trop ce que je fais d'incorrect dans ce cas-là (voir les règles du firewall dans mon précédent post).

Re: Configuration problématique de vsftpd derrière un router

par Sékiltoyai » 01 mai 2008, 10:56

Dans les logs je trouve les choses suivantes :
Quand j'accède au serveur à l'intérieur du réseau (c.-à-d. quand ça fonctionne)

Code : Tout sélectionner

[...] ... : "PASV" ... : "227 Entering Passive Mode (xxx,xxx,xxx,xxx,215,115)" [...] ... : "LIST" ... : "150 Here comes the directory listing." ... : "226 Directory send OK."
Quand j'accède au serveur via le router (avec firefox)

Code : Tout sélectionner

[...] ... : "PASV" ... : "227 Entering Passive Mode (xxx,xxx,xxx,xxx,209,49)" [...] ... : "LIST" ... : "425 Failed to establish connection."
Quand j'accède au serveur via le routeur (avec nautilus)

Code : Tout sélectionner

[...] ... : "EPSV" ... : "229 Entering Extended Passive Mode (|||53555|)" ... : "421 Timeout."
Et dans ce dernier cas, j'ai une fenêtre qui me dit : « Désolé, impossible d'afficher tout le contenu de « / sur example.dyndns.org » : Impossible de se connecter à l'hôte ».

Ce que je ne comprends pas, c'est que dans le cas de firefox la commande PASV de base est envoyée et on lui répond avec des port qui ne sont pas dans l'intervalle que j'ai choisi (voir plus loin) pourtant ça ne l'empêche pas de fonctionner dans le premier cas. Alors que nautilus avec sa commande EPSV a l'air de recevoir un bon port sans arriver à se connecter.
Firefox reçoit un bon port. Comme l'indique Wikipedia, ce ne sont pas 2 ports qui sont envoyés mais un port calculé de telle manière : port = 256 * p1 + p2 Dans ton cas, il renvoie le port 53553.
Sinon tu as testé avec ff et nautilus à l'intérieur de ton réseau ? De même qu'avec le terminal à l'extérieur ?

Bon courage.

Configuration problématique de vsftpd derrière un router

par Bombadil » 01 mai 2008, 02:42

Salut,

je suis sous Linux (Ubuntu) et je voudrais installer vsftpd. Seulement, je suis derrière un router (DI-604) et lorsque je veux me connecter au serveur depuis l'extérieur du réseau local, ça plante.

D'après les logs la connexion se fait correctement mais ce qui fait tout planter c'est le 1er LIST. D'après ce que j'ai lu à propos de FTP (et si j'ai bien compris), en mode passif il y a 2 ports (20 et 21) qui sont utilisés pour les commandes n'impliquant que peu de données et une série d'autres ports qu'on définit pour le transfert des fichiers, les LIST et tout ce qui peut être volumineux quoi. Donc j'imagine que le problème vient de ces ports-là.

Dans les logs je trouve les choses suivantes :
Quand j'accède au serveur à l'intérieur du réseau (c.-à-d. quand ça fonctionne)

Code : Tout sélectionner

[...] ... : "PASV" ... : "227 Entering Passive Mode (xxx,xxx,xxx,xxx,215,115)" [...] ... : "LIST" ... : "150 Here comes the directory listing." ... : "226 Directory send OK."
Quand j'accède au serveur via le router (avec firefox)

Code : Tout sélectionner

[...] ... : "PASV" ... : "227 Entering Passive Mode (xxx,xxx,xxx,xxx,209,49)" [...] ... : "LIST" ... : "425 Failed to establish connection."
Quand j'accède au serveur via le routeur (avec nautilus)

Code : Tout sélectionner

[...] ... : "EPSV" ... : "229 Entering Extended Passive Mode (|||53555|)" ... : "421 Timeout."
Et dans ce dernier cas, j'ai une fenêtre qui me dit : « Désolé, impossible d'afficher tout le contenu de « / sur example.dyndns.org » : Impossible de se connecter à l'hôte ».

Ce que je ne comprends pas, c'est que dans le cas de firefox la commande PASV de base est envoyée et on lui répond avec des port qui ne sont pas dans l'intervalle que j'ai choisi (voir plus loin) pourtant ça ne l'empêche pas de fonctionner dans le premier cas. Alors que nautilus avec sa commande EPSV a l'air de recevoir un bon port sans arriver à se connecter.

Voici la configuration de mon router :

Code : Tout sélectionner

Action Name Source Destination Protocol Allow vsftpd1 WAN,* LAN,192.168.0.195 TCP,50000-60000 Allow Virtual Server FTP WAN,* LAN,192.168.0.195 TCP,20-21
Et le fichier vsftpd.conf (dans le doute je mets tout, désolé) :
listen=YES
max_clients=200
max_per_ip=4

anonymous_enable=YES
local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

no_anon_password=YES
anon_world_readable_only=YES
anon_umask=0
connect_from_port_20=YES
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000

pasv_addr_resolve=YES
pasv_address=monnom.dyndns.org

xferlog_enable=YES
log_ftp_protocol=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES

one_process_model=YES
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
connect_timeout=60
anon_max_rate=50000

secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Voilà, j'en ai marre de me prendre la tête avec ce truc alors toute suggestion serait la bienvenue... :p