Installer un serveur ftp chrooté avec vsftpd en 5 minutes

Tu as un serveur web, et tu aimerais bien héberger le site web d’un(e) ami(e), d’un(e) collègue. Seul petit hic : cette personne (appelons-là Sophie), ne doit pas pouvoir : 1) se logguer en SSH et 2) avoir accès à tout le système de fichier Linux. Un simple accès sftp (qui est disponible avec openssh) est donc exclu.

On utilisera donc vsftpd, un serveur ftp simple, sécurisé et efficace qui permet de limiter l’accès au système d’exploitation avec chroot simplement en paramètrant son fichier de configuration.

Commence par installer le serveur ftp :

Sous Debian :

# aptitude install vsftpd

Une fois installé, modifie les éléments suivants du fichier de configuration /etc/vsftpd.conf :

# Empêcher les connexions anonymes
anonymous_enable=NO

# Activer les utilisateurs du système Linux (utilisateurs du fichier /etc/passwd)
local_enable=YES

# Activer la possibilité d'écriture de fichiers sur le ftp (et pas seulement de lecture)
write_enable=YES

# chrooter tous les utilisateurs qui utilisent vsftpd
chroot_local_user=YES

Voilà, le serveur ftp est configuré. Après, on peut très bien faire des choses plus avancées comme par exemple limiter les utilisateurs autorisés à utiliser vsftpd :

man vsftpd.conf

Deuxième chose à faire maintenant, c’est de créer un compte utilisateur à sophie, mais qui soit un compte qui ne peut pas se connecter au shell via ssh. Son dossier personnel sera utilisé pour son ftp.

On a donc le choix, soit un crée un dossier personnel standard (/home/sophie), soit on crée /var/www/sophie pour simplifier la configuration d’apache par la suite. On peut aussi faire un lien symbolique du répertoire /home/sophie vers /var/www.

# useradd -d /var/www/sophie -s /usr/sbin/nologin sophie
# passwd sophie

Cette commande crée, avec l’option -d, le home directory ou le dossier personnel de sophie dans /var/www/sophie/ et met comme shell par défaut /usr/bin/nologin qui est en fait un utilitaire empêchant la connexion au compte utilisateur sur la machine directement.

La commande passwd donne le mot de passe de Sophie. Mets-y quelque chose de compliqué, mais pas trop, n’oublions pas que Sophie ne sait pas pourquoi un mot de passe complexe c’est important et pourrait vous détester par la suite.

Un petit truc en plus : il faut modifier le fichier /etc/shells car il ne contient pas encore le shell nologin. Rajoute

/usr/sbin/nologin

à la fin du fichier.

Restarte le serveur vsftpd :

# /etc/init.d/vsftpd restart

C’est déjà fini ! Sophie aura accès, si elle a les permissions, à tous les fichiers se situant dans son dossier personne via ftp. Reste à configurer les quotas, mais ça, c’est une autre paire de manches.

Source

Vus : 889
Publié par Loutre.ch : 36