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 en 755
â Lâutilisateur ne peut pas modifier ce dossier.
/home/userX/data
appartient Ă lâutilisateur et est en 700
â 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 !