Recherche de site Web

Comment restreindre les utilisateurs SFTP aux répertoires personnels à l'aide de chroot Jail


Dans ce didacticiel, nous verrons comment 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'intégralité du système de fichiers.

Il est essentiel de restreindre les répertoires personnels des utilisateurs, en particulier dans un environnement de serveur partagé, afin qu'un utilisateur non autorisé ne puisse pas jeter un coup d'œil dans les fichiers et dossiers de l'autre utilisateur.

Important : veuillez également noter que le but de cet article est de fournir uniquement un accès SFTP, et non des connexions SSH. En suivant cet article, vous aurez les autorisations nécessaires pour effectuer le transfert de fichiers. mais pas autorisé à faire une session SSH à distance.

Lecture suggérée : Restreindre l'accès des utilisateurs SSH à certains répertoires à l'aide d'une prison chrootée

Le moyen le 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 la propriété et les autorisations correctes aux comptes d'utilisateurs. Il existe deux choix pour restreindre les utilisateurs à la maison ou à des répertoires spécifiques, nous verrons les deux dans cet article.

Créer ou modifier des utilisateurs et des groupes

Limitons l'utilisateur existant, par exemple tecmint, à son répertoire personnel nommé /home/tecmint. Pour cela, vous devez créer un nouveau groupe sftpgroup à l'aide de 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 à l'aide de la commande useradd, par exemple senthil et affecter 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 nouvelles modifications.

systemctl restart sshd
OR
service sshd restart

Si vous chrootez 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

Il est maintenant temps de vérifier la connexion à partir d’un système local. Essayez de ssh votre système distant à partir de votre système local.

ssh [email 

Ici,

  1. tecmint – nom d'utilisateur du système distant.
  2. 192.168.1.150 – Adresse IP du système distant.
Exemple de sortie :
[email '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 à l’aide de SFTP.

sftp [email 
Exemple de sortie :
[email 's password: 
Connected to 192.168.1.150.
sftp>

Vérifions le répertoire de travail actuel :

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Ici, tecmint est le répertoire personnel. Cd dans le répertoire tecmint et créez les fichiers ou dossiers de votre choix.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Restreindre les utilisateurs à un répertoire spécifique

Dans notre exemple précédent, nous limitons les utilisateurs existants au répertoire personnel. Nous allons maintenant voir 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 à 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 personnel avec l'autorisation de groupe correcte à l'aide de 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 prendre en compte les modifications enregistrées.

systemctl restart sshd
OR
service sshd restart

Voilà, vous pouvez vérifier en vous connectant à votre serveur SSH et SFTP distant en suivant l'étape fournie ci-dessus dans Vérifier la connexion SSH et SFTP.

N'oubliez pas que cette méthode désactivera l'accès au shell, c'est-à-dire que vous ne pourrez pas accéder à la session shell du système distant à l'aide de SSH. Vous ne pouvez accéder aux systèmes distants que via SFTP et effectuer des transferts de fichiers vers et depuis les systèmes locaux et distants.

Conclusion

Vous savez maintenant comment restreindre les répertoires personnels des utilisateurs à l'aide d'un environnement Chroot sous Linux. Si vous trouvez cela utile, partagez cet article sur vos réseaux sociaux et faites-nous savoir dans la section commentaires ci-dessous s'il existe d'autres méthodes pour restreindre les répertoires personnels des utilisateurs.