Debian – SFTP via OpenSSH
Nous allons nous atteler aujourd’hui à mettre en place un serveur SFTP en utilisant le serveur SSH.
Pour ce faire, nous allons commencer par créer l’utilisateur et l’arborescence associée.
1. Création d’un utilisateur ftp
groupadd ftp useradd -g ftp -d /opt/ftp -s /usr/lib/openssh/sftp-server ftp
De cette manière le home directory de l’utilisateur ftp est le répertoire /opt/ftp.
2. Création de l’arborescence
mkdir /opt/ftp chown -R root. /opt/ftp mkdir /opt/ftp/files chown -R ftp. /opt/ftp/files
3. Configuration du démon SSH
# vi /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match group ftp
ChrootDirectory /opt/ftp/
ForceCommand internal-sftp
AllowTCPForwarding no
# /etc/init.d/ssh restart
4. Sécurité
Voici quelques points sur lesquels insister pour assurer un minimum la sécurité.
Tout d’abord, nous désactivons l’authentification via l’utilisation de password, au profit des clés privées.
Pour ce faire, nous allons en générer un couple :
# ssh-keygen -t rsa -b 2048 /* puis saisissez le nom du fichier que vous souhaitez générer */ /* une fois la clé privée et publique générées, nous allons placer la clé publique dans le home directory de l'utilisateur ftp */ # mkdir /opt/ftp/.ssh # cp key_file /opt/ftp/.ssh/authorized_keys
Il ne nous reste plus qu’à configurer SSH pour ne plus accepter les authentifications par mot de passe et le tour est joué.
!!!! Par contre ATTENTION, à prendre vos précautions pour que l’utilisateur ROOT ne se retrouve pas sans point d’accès.
# vi /etc/ssh/sshd_config /* et remplacer les lignes suivantes */ PasswordAuthentication no PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys # /etc/init.d/ssh restart
Puis pourquoi pas changer le port d’écoute du service, fixer l’addresse IP d’écoute …
Libre à vous de peaufiner le reste.