Installer Proftpd sous Debian dans WSL et accéder via FileZilla depuis l’hôte Windows

Pourquoi ce titre? Non seulement je voulais faire l’installation de Proftpd, mais je voulais aussi tester l’accès à ce serveur FTP logé dans WSL depuis l’hôte Windows. Pourquoi est ce que c’est intéressant? hé bien WSL est un milieu isolé de l’hôte et on ne peut y accéder que grâce à une translation d’adresse IP.

Installation de Proftpd

D’abord on fait un update de précaution et on installe, l aconfiguration devrait être minimale

sudo apt update

sudo apt install proftpd

// le fichier de configuration se trouve dans /etc/proftpd/proftpd.conf
Voyons voir quelques clé de configuration:

ServerType standalone   // proftpd fonctionne tout seul, il est autosuffisant

Ce bout de configuration est commenté
<Anonymous ~ftp>
  User ftp
  Group nogroup
  UserAlias anonymous ftp
  MaxClients 10
  <Directory *>
    <Limit WRITE>
      DenyAll
    </Limit>
  </Directory>
</Anonymous>
Il permet de se connecter sans authentification, ce qui n'est pas recommandé à moins que vous ne sachiez ce que vous faites.

A un autre endroit (commenté également)
DefaultRoot ~  // si le tilde est collé à la lettre t c'est une erreur de syntaxe  et cause le non démarrage de pProftpd
cette directive restreint les utlisateurs dans leur propre répertoire home.

RequireValidShell off  // si actif permet aux utilisateur n'ayant pas de shell (nologin) d'accéder au FTP

Accès au serveur FTP depuis WSL

a présent sans configuration vous pouvez accéder via FTP à votre répertoire home avec la commande suivante:

ftp localhost
il va vous être demandé le user et le mot de passe. Et ensuite en cas de réussite vous aurez un prompt ftp.

Accès depuis l’hôte Windows dans le ftp de WSL

Translation d’adresse IP

Revenons à votre hôte Windows et essayez avec fileZilla de vous connecter au FTP, normalement vous ne pouvez pas, à moins que vous ayez déjà fait le manipulation de translation d’adresse IP, c’est à dire relier l’adresse IP de l’hôte (souvent 192.168.1.XX vers l’adresse IP de WSL. Commençons par connaitre les 2 adresse IP de ‘lhôte et de WSL

Dans l’hôte, on est sous Windows

ipconfig

Configuration IP de Windows


Carte Ethernet Ethernet 2 :

   Suffixe DNS propre à la connexion. . . : lan
   Adresse IPv4. . . . . . . . . . . . . .: 192.168.1.151
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . : 192.168.1.254

Carte inconnue Connexion au réseau local :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :

Carte Ethernet vEthernet (Default Switch) :

   Suffixe DNS propre à la connexion. . . :
   Adresse IPv6 de liaison locale. . . . .: fe80::302e:b41d:9890:f78f%41
   Adresse IPv4. . . . . . . . . . . . . .: 172.25.144.1
   Masque de sous-réseau. . . . . . . . . : 255.255.240.0
   Passerelle par défaut. . . . . . . . . :

Carte Ethernet vEthernet (WSL) :

   Suffixe DNS propre à la connexion. . . :
   Adresse IPv6 de liaison locale. . . . .: fe80::94b8:a9bc:705a:2d44%55
   Adresse IPv4. . . . . . . . . . . . . .: 172.18.96.1
   Masque de sous-réseau. . . . . . . . . : 255.255.240.0
   Passerelle par défaut. . . . . . . . . :

Dans WSL

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1404 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:d9:50:6a brd ff:ff:ff:ff:ff:ff
    inet 172.18.104.160/20 brd 172.18.111.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fed9:506a/64 scope link
       valid_lft forever preferred_lft forever

Maintenant dans Windows nous devons faire la translation d’IP (dans une autre occasion on a pu le faire mais je remets ici la commande à faire sous Powershell

netsh interface portproxy add v4tov4 listenport=21 listenaddress=127.0.0.1 connectport=21 connectaddress=172.18.104.160

Protocole FTP

Si vous voulez en savoir plus sur les verbes FTP qui permettent de télécharger des fichiers et autres manipulation, visitez le lien ci-dessous :

https://www.cs.colostate.edu/helpdocs/ftp.html

Retour en haut