Dans ce tutoriel, nous discuterons de la manière de restreindre les utilisateurs SFTP à leurs répertoires personnels ou à des répertoires spécifiques. Cela signifie que l’utilisateur ne peut accéder qu’à son répertoire personnel respectif, et non à l’ensemble du système de fichiers.
La restriction des répertoires personnels des utilisateurs est essentielle, notamment dans un environnement de serveur partagé, afin qu’un utilisateur non autorisé ne puisse pas jeter un coup d’œil aux fichiers et dossiers des autres utilisateurs.
Important : Veuillez également noter que le but de cet article est de fournir un accès SFTP uniquement, et non des connexions SSH, en suivant cet article, vous aurez les autorisations pour effectuer des transferts de fichiers, mais vous ne serez pas autorisé à effectuer une session SSH distante.
Lecture suggérée : Restreindre l’accès utilisateur SSH à un répertoire spécifique en utilisant une prison chroot
La manière la plus simple de procéder consiste à créer un environnement de prison chroot pour l’accès SFTP. Cette méthode est la même pour tous les systèmes d’exploitation Unix/Linux. En utilisant un environnement chroot, nous pouvons restreindre les utilisateurs soit à leur répertoire personnel, soit à un répertoire spécifique.
Restreindre les utilisateurs aux répertoires personnels
Dans cette section, nous allons créer un nouveau groupe appelé sftpgroup et attribuer les autorisations et les permissions correctes aux comptes utilisateurs. Il existe deux choix pour restreindre les utilisateurs aux répertoires personnels ou spécifiques, nous verrons les deux méthodes dans cet article.
Créer ou modifier des utilisateurs et des groupes
Limitez l’utilisateur existant, par exemple tecmint
, à son répertoire personnel nommé /home/tecmint
. Pour ce faire, vous devez créer un nouveau groupe sftpgroup en utilisant la commande groupadd comme indiqué :
# groupadd sftpgroup
Ensuite, attribuez l’utilisateur ‘tecmint’ au groupe sftpgroup.
# usermod -G sftpgroup tecmint
Vous pouvez également créer un nouvel utilisateur en utilisant la commande useradd, par exemple senthil
, et attribuer l’utilisateur au groupe sftpusers.
# adduser senthil -g sftpgroup -s /sbin/nologin # passwd tecmint
Modifier le fichier de configuration SSH
Ouvrez et ajoutez les lignes suivantes au fichier de configuration /etc/ssh/sshd_config
.
Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Enregistrez et quittez le fichier, redémarrez le service sshd pour prendre en compte les nouveaux changements.
# systemctl restart sshd OR # service sshd restart
Si vous chroot plusieurs utilisateurs dans le même répertoire, vous devez modifier les autorisations du répertoire personnel de chaque utilisateur afin d’empêcher tous les utilisateurs de parcourir les répertoires personnels des autres utilisateurs.
# chmod 700 /home/tecmint
Vérifier la connexion des utilisateurs SSH et SFTP
Maintenant, c’est le moment de vérifier la connexion depuis un système local. Essayez de vous connecter en SSH à votre système distant depuis votre système local.
# ssh [email protected]
Ici,
- tecmint – nom d’utilisateur du système distant.
- 192.168.1.150 – Adresse IP du système distant.
Exemple de sortie :
[email protected]'s password: Could not chdir to home directory /home/tecmint: No such file or directory This service allows sftp connections only. Connection to 192.168.1.150 closed.
Ensuite, accédez au système distant en utilisant SFTP.
# sftp [email protected]
Exemple de sortie :
[email protected]'s password: Connected to 192.168.1.150. sftp>
Vérifions le répertoire de travail actuel :
sftp> pwd Remote working directory: / sftp> ls tecmint
Ici, tecmint
est le répertoire principal. Cd vers le répertoire tecmint et créez les fichiers ou dossiers de votre choix.
sftp> cd tecmint Remote working directory: / sftp> mkdir test tecmint
Restreindre les utilisateurs à un répertoire spécifique
Dans notre exemple précédent, nous avons restreint les utilisateurs existants au répertoire principal. Maintenant, nous verrons comment restreindre un nouvel utilisateur à un répertoire personnalisé.
Créer un groupe et de nouveaux utilisateurs
Créez un nouveau groupe sftpgroup
.
# groupadd sftpgroup
Ensuite, créez un répertoire pour le groupe SFTP et attribuez des autorisations pour l’utilisateur root.
# mkdir -p /sftpusers/chroot # chown root:root /sftpusers/chroot/
Ensuite, créez de nouveaux répertoires pour chaque utilisateur, auxquels ils auront un accès complet. Par exemple, nous allons créer l’utilisateur tecmint
et son nouveau répertoire principal avec les autorisations de groupe correctes en utilisant la série de commandes suivante.
# adduser tecmint -g sftpgroup -s /sbin/nologin # passwd tecmint # mkdir /sftpusers/chroot/tecmint # chown tecmint:sftpgroup /sftpusers/chroot/tecmint/ # chmod 700 /sftpusers/chroot/tecmint/
Configurer SSH pour l’accès SFTP
Modifiez ou ajoutez les lignes suivantes à la fin du fichier:
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /sftpusers/chroot/ ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Enregistrez et quittez le fichier. Redémarrez le service sshd pour que les modifications enregistrées prennent effet.
# systemctl restart sshd OR # service sshd restart
C’est tout, vous pouvez vérifier en vous connectant à votre serveur SSH et SFTP distant en utilisant les étapes fournies ci-dessus à Vérifier la connexion SSH et SFTP.
Soyez conscient que cette méthode désactivera l’accès à l’interpréteur de commandes, c’est-à-dire que vous ne pourrez pas accéder à la session shell du système distant en utilisant SSH. Vous ne pourrez accéder aux systèmes distants que via SFTP et effectuer des transferts de fichiers entre les systèmes locaux et distants.
Conclusion
Maintenant, vous savez comment restreindre les répertoires personnels des utilisateurs en utilisant un environnement Chroot dans Linux. Si vous trouvez cela utile, partagez cet article sur vos réseaux sociaux et faites-nous savoir dans la section des commentaires ci-dessous s’il existe d’autres méthodes pour restreindre les répertoires personnels des utilisateurs.
Source:
https://www.tecmint.com/restrict-sftp-user-home-directories-using-chroot/