- Modifié
Ce guide explique comment configurer un accès SFTP chrooté pour deux utilisateurs sur Debian.\
Les utilisateurs pourront récupérer leurs fichiers via SFTP uniquement, sans accès SSH, et ne pourront pas naviguer en dehors de leur répertoire personnel.
1. Création des utilisateurs
Nous allons créer deux utilisateurs (user1
et user2
) sans accès shell :
sudo adduser --disabled-password --shell /bin/false user1
sudo adduser --disabled-password --shell /bin/false user2
Si les utilisateurs existent déjà , nous modifions leur shell :
sudo usermod -s /bin/false user1
sudo usermod -s /bin/false user2
2. Création d’un groupe SFTP et ajout des utilisateurs
Nous allons créer un groupe sftp_users
et y ajouter user1
et user2
:
sudo groupadd sftp_users
sudo usermod -aG sftp_users user1
sudo usermod -aG sftp_users user2
3. Configuration des permissions des répertoires
Les répertoires /home/userX
doivent appartenir à root:root
et avoir des permissions strictes pour que le chroot fonctionne.
sudo chown root:root /home/user1
sudo chmod 755 /home/user1
sudo mkdir /home/user1/data
sudo chown user1:sftp_users /home/user1/data
sudo chmod 700 /home/user1/data
sudo chown root:root /home/user2
sudo chmod 755 /home/user2
sudo mkdir /home/user2/data
sudo chown user2:sftp_users /home/user2/data
sudo chmod 700 /home/user2/data
Explication des permissions :
/home/userX
appartient à et est en755
→ L’utilisateur ne peut pas modifier ce dossier./home/userX/data
appartient à l’utilisateur et est en700
→ L’utilisateur peut y lire/écrire ses fichiers.
4. Configuration du serveur OpenSSH pour SFTP chrooté
Nous allons modifier la configuration d’OpenSSH pour forcer les utilisateurs à utiliser SFTP uniquement et les enfermer dans leur dossier (chroot
).
Éditez le fichier de configuration SSH :
sudo nano /etc/ssh/sshd_config
Ajoutez (ou modifiez) ces lignes à la fin du fichier :
# Désactiver SSH pour les utilisateurs du groupe sftp_users
Match Group sftp_users
ForceCommand internal-sftp
ChrootDirectory %h
AllowTcpForwarding no
X11Forwarding no
PermitTunnel no
Explication des options :
ForceCommand internal-sftp
→ Empêche toute autre commande que SFTP.ChrootDirectory %h
→ Restreint chaque utilisateur à son dossier.AllowTcpForwarding no
&X11Forwarding no
→ Empêche les détournements de connexion.
Enregistrez (CTRL+X, puis Y
et Entrée
).
5. Redémarrer le service SSH
Appliquez la nouvelle configuration en redémarrant OpenSSH :
sudo systemctl restart ssh
6. Tester l’accès SFTP
Depuis un client SFTP, essayez de vous connecter :
sftp user1@IP_DU_SERVEUR
Ensuite, testez la navigation :
cd /
cd ..
ls
Vous constaterez que **l’utilisateur ne peut pas remonter plus haut que ** .\
Il pourra ajouter, modifier et récupérer ses fichiers dans .
uniquement.
7. (Optionnel) Ajouter un mot de passe aux utilisateurs
Si vous souhaitez que les utilisateurs se connectent avec un mot de passe :
sudo passwd user1
sudo passwd user2
Alternative : Vous pouvez aussi configurer une connexion par clé SSH, en plaçant la clé publique de l’utilisateur dans
/home/userX/.ssh/authorized_keys
.
Résumé
Les utilisateurs
user1
et user2
peuvent uniquement utiliser SFTP.
Ils ne peuvent pas remonter plus haut que leur
.
Ils n’ont pas d’accès SSH.
Les permissions et le chroot garantissent la sécurité.
Votre serveur SFTP est prêt à l’emploi !