SFTP – FTP bye bye
Remplacer le FTP par le SFTP c’est bien mais il ne faut pas abaisser la sécurité pour autant. Et par défaut l’utilisateur à accès à toute la machine via SFTP, il faudra donc le chrooter.
Je vais donc vous expliquer pas à pas comment sécuriser une installation sftp.
Commencer par refuser la possibilité de login à tt les utilisateurs que vous utiliserez comme sftp en faisant soit chsh user et en mettant /bin/false ou en mettant dans /etc/default/useradd les valeurs suivantes:
SHELL=/bin/false
SKEL=/etc/skelempty
Il vous faudra créer le dossier /etc/skelempty qui ne contient rien (ceci afin d’éviter l’ajout automatique de fichier qu’un utilisateur uniquement sftp n’aura cure).
Créer le groupe qui permettra au serveur ssh de les “catégoriser” et de les chrooter
groupadd sftponly
Créer les utilisateurs
useradd –create-home –groups sftponly username
passwd username (le mieux est de fonctionner avec des clés publique/privée mais ça sort du cadre de ce tuto)
La configuration SSH (la ligne Subsystem sftp est à chercher et remplacer par la fournie, le reste est à ajouter à la fin du fichier) /etc/ssh/sshd_config:
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Redémarrer le serveur ssh et ensuite chowner les répertoires utilisateurs.
chown root: /home/username
Ensuite créer les folders dont l’utilisateur aura besoin pour travailler (il n’aura pas le droit de créer de fichier dans sa racine) c’est à vous de le faire.
les grands classiques sont : www & logs qu’il faut chowner -R sur username après
mkdir /home/username/www /home/username/logs && chown -R username: /home/username/www /home/username/logs
Hésitez pas à poser des questions si le besoin s’en fait sentir :-)
« Remplacer le FTP par le FTP » une petite faute ? :)
Sinon, l’avantage du sftp aussi (enfin, de ssh en général) c’est surtout de pouvoir utiliser des outils comme « sshfs », et ça c’est beau !