Configurer un serveur SFTP avec OpenSSH sous Debian

Le but :

On peut utiliser un logiciel (Pro-FTP, VsFTPd etc...)... ou simplement utiliser OpenSSH...
ça se fait en un tour de main !

Je vous montre ici 2 méthodes.
La première est la plus simple, la seconde est un peu plus élaborée.


Méthode 1 :

su -
groupadd UTILISATEUR1
useradd -g UTILISATEUR1 -m -d /SFTP/UTILISATEUR1 -s /sbin/nologin UTILISATEUR1
passwd UTILISATEUR1
mkdir -p /SFTP/UTILISATEUR1/DATA
chown root:root /SFTP
chmod 755 /SFTP
chown root:root /SFTP/UTILISATEUR1
chmod 755 /SFTP/UTILISATEUR1
chown UTILISATEUR1:UTILISATEUR1 /SFTP/UTILISATEUR1/DATA
chmod 700 /SFTP/UTILISATEUR1/DATA
vi /etc/ssh/sshd_config

Ajouter/modifier les lignes suivantes (tout en bas du fichier :)

Subsystem sftp internal-sftp

Match Group UTILISATEUR1
    ChrootDirectory /SFTP/UTILISATEUR1
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
systemctl restart sshd

Méthode 2 :

su -
groupadd sftpexclusive
groupadd nosftp

Vous l'aurez compris, le principe est très simple : si on veut désactiver le compte d'un utilisateur, il suffira de le rajouter au groupe nosftp avec la commande suivante : (le compte sera alors immédiatement désactivé)

usermod -G nosftp UTILISATEUR1

Peu importe qu'il soit aussi dans l'autre groupe, car l'instruction du groupe interdisant la connexion sera placée avant dans le fichier /etc/ssh/sshd_config (voir plus bas).
Pour réactiver le compte, il faudra sortir l'utilisateur du groupe.

useradd -g sftpexclusive -m -d /SFTP/UTILISATEUR1 -s /sbin/nologin UTILISATEUR1
passwd UTILISATEUR1
mkdir -p /SFTP/UTILISATEUR1/DATA
chown root:root /SFTP
chmod 755 /SFTP
chown root:root /SFTP/UTILISATEUR1
chmod 755 /SFTP/UTILISATEUR1
chown UTILISATEUR1:sftpexclusive /SFTP/UTILISATEUR1/DATA
chmod 700 /SFTP/UTILISATEUR1/DATA
Subsystem       sftp    internal-sftp

Match Group nosftp
    ForceCommand /usr/bin/false

Match Group sftpexclusive
    ChrootDirectory /SFTP/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
systemctl restart sshd

⬆️ Retour en haut de la page