FTP passive via IPSEC ne marche plus depuis mise à jour en 2.3



  • Bonjour,

    J'étais en version 2.1.5 où 2 tunnels IPSEC sont montés avec deux clients pour faire du FTP (passive).
    J'ai migré sur la dernière version en 2.3 et depuis, il est impossible de faire du transfert FTP via IPSEC. Le client arrive à se logguer mais pas à lister et bien sûr à faire des transferts.
    J'ai une règle IPSEC autorisant les ports 21 et la plage d'IP 50000 à 51000 vers le serveur FTP.

    La connexion à ce FTP fonctionne en LAN et sur le WAN et testé avec FileZilla Server et vsftpd.
    J'ai suivi ce guide aussi : https://doc.pfsense.org/index.php/FTP_without_a_Proxy

    J'a essayé d'activer le ftpdebug, j'ai changé le cryptage de l'IPSEC en 3DES.

    Je remarque qu'en mode actif, j'arrive à lister mais je souhaiterais rester en mode passive.

    Aurez-vous une astuce pour faire refonctionner le FTP passive via IPSEC svp ?

    Merci d'avance de votre aide.



  • Sujet maintes fois évoqué …

    Il est notable que votre présentation est ambigüe et peu claire : utilisez de préférence le formulaire !
    En revanche, vous avez bien trouvé la bonne page !

    Exemple de questions dont on a pas de réponse nette et sans ambigüité :

    • quel est le logiciel serveur FTP utilisé ?
    • où est situé le serveur ?
    • quelles sont les règles NAT créés en vue de ?

    Si la doc s'applique bien à la version, vous avez pu lire qu'il y a un réglage spécifique du serveur pour qu'il fonctionne en passif : elle est indiquée (pour le serveur vsftpd) ... et impose des règles NAT à créer !

    NB : il n'est pas très difficile de monter un serveur SFTP en lieu et place : pe. Debian + proftpd + mysql : une config avec utilisateurs définis en base MySQL.
    L'avantage est que les clients n'ont plus de difficulté, et continue à utilise FileZilla Client, à l'exception que leur administrateur doit ouvrir le port TCP choisi.



  • Configuration Tunnel IPSEC :

    IP local du serveur FTP vsftpd : 192.168.1.11
    IP LOCAL NAT : 10.54.240.11

    A la configuration du serveur vsftpd, j'ai ajouté ceci :

    Do not allow the client to use PORT

    port_enable=NO

    Use the hostname in the PASV response (DNS must be setup and match!)

    pasv_addr_resolve=YES

    Enable Passive Mode

    pasv_enable=YES

    Set the passive port range (1000 ports)

    pasv_min_port=50000
    pasv_max_port=51000

    Dans "PORT FORWARD", j'ai ajouté cela :

    Interface : IPSEC
    Protocole : TCP
    Source : any
    Destination : 10.54.240.11
    Destination port range : 21
    Redirect target IP :  192.168.1.11
    Redirect target port : 21
    Règle associée

    Interface : IPSEC
    Protocole : TCP
    Source : any
    Destination : 10.54.240.11
    Destination port range : 50000-51000
    Redirect target IP :  192.168.1.11
    Redirect target port : 50000(-51000)
    Règle associée

    Par la suite, nous avons un second serveur FTP sous FileZilla Server, mais déjà si on règle ce problème avec vsftpd, ça sera une belle avancée.



  • La page indiquée correspond à la méthode nécessaire pour héberger un serveur FTP par exemple en DMZ et accédé depuis le WAN.
    Et ce pour les version jusqu'à 2.2.6 : peut-être y a-t-il quelque chose (encore) de changé en 2.3 ?

    Il me semble que cela ne concerne pas, en fait, votre config !
    La différence est nette : le cas documenté intègre du NAT, ce qui n'est pas le cas, en principe, d'un VPN (même ipsec).

    Néanmoins, je ne comprends pas mieux le schéma … voire encore moins : pourquoi un VPN et ensuite du port forward ?
    Si vous vous relisez, pensez vous vraiment qu'un lecteur peut comprendre votre schéma réseau ?



  • Je confirme que le FTP fonctionne en LAN ou via le WAN mais pas via l'IPSEC. J'ai essayé avec et sans ces règles de NAT, et je suis d'accord qu'elles ne servent à rien.



  • L'IP du serveur FTP : 192.168.1.11
    Le client connaît l'IP nattée suivante pour accéder à ce serveur FTP via l'IPSEC : 10.54.240.11

    Dans la configuration du tunnel IPSEC P2 :




  • Si votre serveur FTP est dans le LAN et qu'on y accède via le WAN, la page indiquée s'applique, et il est nécessaire de faire 2 règles NAT pour le mode passif contre 1 pour le mode actif !
    L'ip d'accès du serveur FTP (depuis WAN) est nécessairement l'ip WAN.
    Je répète que dans cette page, chaque mot compte et a un sens !

    Avec le serveur FTP en LAN, via un accès VPN, il n'y a aucune règle port forward utile.
    L'ip d'accès du serveur FTP (depuis le client PC en VPN) est nécessairement l'ip LAN du serveur !
    (Je suppose que les règles de l'onglet Ipsec sont : LAN -> Ipsec : all, et Ipsec -> LAN : all)

    Un problème à la fois !
    Ne pas oubliez le proverbe : un problème bien présenté est un problème à moitié résolu !

    Edit :
    Faute d'infos, je fais des suppositions … qui s'avèrent inexactes !
    Visiblement vous voulez nater le trafic provenant des clients VPN, il est clair que les restrictions concernant le NAT doivent s'appliquer !

    Votre stratégie : client Ipsec -> nattage client -> accès FTP; basé sur le principe de FTP = écoute en clair, est très loin d'être la meilleure stratégie pour de l'échange de fichier !
    Il est bien préférable de construire un serveur SFTP qui sera naturellement crypté (client<->Serveur) et s'adapte parfaitement à un NAT intermédiaire !



  • En règles, j'ai ceci (pour l'instant c'est général, j'affinerai après) :

    LAN :
    Protocole : TCP
    Source IP (du serveur FTP) : 192.168.1.11 vers IP : ALL et port : ALL

    IPSEC : j'ai mis ALL pour le moment

    Je viens de tester la connexion FTP via IPSEC sans IP NAT, cela fonctionne.

    Effectivement, la configuration d'avant et que j'aimerais serait un NAT au niveau de la configuration IPSEC (10.54.240.11) :  client Ipsec -> nattage client -> accès FTP ; Mais ça bloque au niveau du LIST

    J'aimerais passer tous les clients sur notre serveur SFTP, mais il reste 2 clients qui souhaitent rester dans cette configuration de faire du FTP via IPSEC…

    En résumé, j'ai mon tunnel IPSEC avec une phase 1 et une phase 2, le serveur vsftpd avec la configuration décrite dans la doc PFSENSE pour le mode passif et les 2 règles citées au-dessus.



  • Il y a moins de 2 mois, j'ai dû créé (du vendredi pour le lundi) un serveur de File Transfert sécurisé.
    J'ai choisi Debian 8 + ProFtpd qui fait et ftp et sftp : il restait juste à faire des utilisateurs virtuels (en base MySQL).
    Hors utilisation d'un template VM, j'ai du y passer environ 2h 'à la cool - le samedi matin' :

    • l'aspect dns prend 10',
    • l'aspect firewall prend aussi 10',
    • l'install de MySQL + Apache2/Php+PhpMyAdmin prend 10',
    • l'install de ProFTPd + config (en sftp uniquement) + création d'une BD MySQL + les tests ont pris ~1h20
    • test depuis l'extérieur 5' (c'est la même config côté client puisque le split dns fait le job !)
      Il faudra que j'y revienne pour ajouter les logs dans MySQL …
      Je verrai bien aussi un petit site web de création des comptes avec envoi de mails (vers le demandeur interne et le client externe) ...

    Franchement, les utilisateurs ne voient aucune différence (vs FTP) : j'ai documenté avec le paramétrage de FileZilla Client et WinScp : 3 pages de doc (faites le lundi).
    Et je considère qu'en tant que fournisseur du service, c'est à moi d'imposer la sécurité !

    Au moins, je n'ai pas d'inquiétude sur la sécurité 'à l'intérieur du protocole'.
    Et je n'ouvre pas de tunnels VPN juste pour ça.

    Je suis presque certain que ce montage (Ipsec + nattage + serveur FTP) est moins sûr que le serveur SFTP : il y a trop de choses qui doivent être parfaitement ajustées ...


Log in to reply