Introduction

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.

Installation de rssh

Installer rssh

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

Configurer 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.

Configurer un utilisateur avec rssh

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.

Installer scponly

Installer scponly

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

Configurer scponly pour un utilisateur

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.

Test et vérification

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.

Conclusion

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é.