Passer au contenu principal

Configuration d'un accès SFTP restreint au répertoire chroot

Ce guide décrit comment configurer un environnement chroot avec un accès SFTP uniquement pour les utilisateurs, en utilisant des clés SSH.

Prérequis

  • Un serveur exécutant GNU/Linux
  • Un accès root au serveur
  • OpenSSH installé et en cours d'exécution

Étapes

1. Créer un utilisateur chroot

adduser <nom_d'utilisateur>

2. Créer un groupe SFTP

groupadd sftpusers

3. Ajouter l'utilisateur au groupe SFTP

usermod -aG sftpusers <nom_d'utilisateur>

4. Configurer le répertoire chroot

Créer un répertoire pour les utilisateurs SFTP, en s'assurant que les droits de propriété et les autorisations sont configurés correctement.

mkdir -p /sftp/<nom_d'utilisateur>
chown root:root /sftp
chmod 755 /sftp
mkdir /sftp/<nom_d'utilisateur>
chown <nom_d'utilisateur>:<nom_d'utilisateur> /sftp/<nom_d'utilisateur>
chmod 700 /sftp/<nom_d'utilisateur>

5. Configurer SSH pour l'accès SFTP

Modifier le fichier /etc/ssh/sshd_config pour utiliser SFTP interne et définir les restrictions.

  1. Mettre à jour la ligne Subsystem :

    Subsystem sftp internal-sftp
    
  2. Ajouter un bloc Match à la fin :

    Match Group sftpusers
        ChrootDirectory /sftp/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    

6. Configurer les clés SSH de l'utilisateur

Créer et configurer les répertoires SSH pour l'utilisateur :

mkdir /home/<nom_d'utilisateur>/.ssh
touch /home/<nom_d'utilisateur>/.ssh/authorized_keys
chmod 700 /home/<nom_d'utilisateur>/.ssh
chmod 600 /home/<nom_d'utilisateur>/.ssh/authorized_keys
chown <nom_d'utilisateur>:<nom_d'utilisateur> /home/<nom_d'utilisateur>/.ssh
chown <nom_d'utilisateur>:<nom_d'utilisateur> /home/<nom_d'utilisateur>/.ssh/authorized_keys

Copier la clé publique SSH dans /home/<nom_d'utilisateur>/.ssh/authorized_keys.

7. Redémarrer le service SSH

systemctl restart sshd

Vérification

  • Essayez une connexion SFTP pour vérifier que l'accès est restreint.
  • Assurez-vous que les utilisateurs ne peuvent pas accéder au shell.