Debian – SFTP via OpenSSH

jan 16, 2010 Posted Under: Linux - Admin, Linux - Sécurité

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.

Leave a Reply