Lors de la gestion d’un serveur Linux, fournir un accès restreint aux utilisateurs pour les transferts de fichiers sans leur accorder un accès complet à l’interpréteur de commandes est une préoccupation courante en matière de sécurité. Deux outils permettent d’y parvenir : rssh et scponly. Ces shells restreints permettent aux utilisateurs d’effectuer des opérations spécifiques de transfert de fichiers via SCP, SFTP et rsync tout en empêchant l’exécution de commandes.
Dans ce guide, nous allons couvrir l’installation et la configuration de rssh et de scponly sur un système Linux.
La plupart des distributions Linux fournissent rssh dans leurs dépôts de paquets. Vous pouvez l’installer à l’aide des commandes suivantes :
Pour Debian/Ubuntu :
sudo apt update && sudo apt install rssh -y
Pour CentOS/RHEL :
sudo yum install rssh -y
Pour Arch Linux :
sudo pacman -S rssh
Une fois installé, configurez rssh en éditant son fichier de configuration :
sudo nano /etc/rssh.conf
Décommentez les options nécessaires pour autoriser SCP, SFTP ou rsync. Exemple :
allowcp
allowftp
allowrsync
Enregistrez et quittez le fichier.
Pour faire de rssh l’interpréteur de commandes d’un utilisateur spécifique, exécutez la commande suivante
sudo usermod -s /usr/bin/rssh nom d'utilisateur
Maintenant, l’utilisateur ne peut effectuer que des opérations autorisées via SCP, SFTP ou rsync.
Pour les systèmes basés sur Debian :
sudo apt update && sudo apt install scponly -y
Pour les systèmes CentOS/RHEL :
sudo yum install scponly -y
Pour Arch Linux :
sudo pacman -S scponly
Pour restreindre l’accès d’un utilisateur à scponly, modifiez son shell :
sudo usermod -s /usr/bin/scponly nom d'utilisateur
Pour s’assurer que l’utilisateur est correctement restreint, testez avec :
ssh nomutilisateur@serveur
L’accès à l’interpréteur de commandes devrait être refusé, mais les transferts de fichiers SCP/SFTP devraient être autorisés.
Pour vérifier la configuration, essayez de transférer des fichiers en utilisant :
Pour SCP :
scp file.txt username@server:/home/username/
Pour SFTP :
sftp nomutilisateur@serveur
Si la configuration est correcte, les utilisateurs devraient pouvoir transférer des fichiers, mais pas exécuter de commandes.
En utilisant rssh et scponly, les administrateurs peuvent renforcer la sécurité en limitant l’accès des utilisateurs aux seuls transferts de fichiers. Cela permet d’éviter les accès non autorisés au shell tout en autorisant les opérations d’échange de fichiers nécessaires. Veillez à mettre régulièrement à jour les configurations afin de les aligner sur les politiques de sécurité.