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.
-
Mettre à jour la ligne
Subsystem:Subsystem sftp internal-sftp -
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.