Authentifier les clients VSFTPD via Active Directory

J’ai récemment dû travailler sur la configuration d’un serveur FTP VSFTPD devant authentifier les utilisateurs via Windows Active Directory. Pour mémoire, VSFTPD est un serveur FTP fonctionnant sous diverses distributions GNU/Linux, et permettant d’ajouter une couche SSL au FTP. Il utilise PAM (Pluggable Authentication Module) afin de gérer les authentifications, et je sais PAM capable de discuter avec un LDAP Active Directory. Les différentes recherches que j’ai faites sur le Web sont obscures, incomplètes, ou ne fonctionnent tout simplement pas. Mais je suis quand même arrivé à une configuration qui fonctionne, je l’expose donc ici.

Prérequis

Le serveur FTP est installé sous GNU/Linux Debian 6 Squeeze, et intégré à un domaine Active Directory via Samba/Winbind.

Vérifier que le paramètre suivant existe.

pam_service_name=vsftpd

Il faut maintenant se rendre dans le repertoire /etc/pam.d et éditer (ou créer si il n’existe pas) le fichier vsftpd.

Commenter toutes les lignes, puis ajouter les paramètres suivants :

auth sufficient pam_winbind.so
account sufficient pam_winbind.so

Remarques :

Lors des connexions FTP, le chemin racine sera le répertoire home de votre utilisateur. Dans mon cas, les utilisateurs ne doivent pas pouvoir se connecter localement sur le serveur, et n’ont donc pas de répertoire home. Afin de modifier le répertoire home des utilisateurs, modifier le fichier de configuration Samba /etc/samba/smb.conf , et régler le paramètre :

 template homedir = /share/%U

Danc ce cas, le répertoire home de chaque utilisateur sera donc /share/login_user. Penser à redémarrer samba et winbind

 

Si les utilisateurs virtuels sont activés, il faut nécessairement que le fichier de configuration de chaque utilisateur existe et soit correctement renseigné, sans quoi l’utilisateur ne pourra pas ce connecter.