Lshell : limiter les possibilités du shell
Contents
1 Introduction
Lshell est un shell allégé permettant de restreindre les accès à divers commandes et paths sur vos filesystems. Idéale donc pour maitriser ce que font les utilisateurs sur votre machine.
2 Installation
apt-get |
aptitude install lshell |
Sous Debian, il n'est disponible que pour la version Squeeze actuellement.
3 Configuration
La configuration est assez simple :
Vous pouvez le voir, il y a pleins d'options sympathiques. Seulement aujourd'hui (à l'heure ou j'écris ces lignes), les options pour la partie scp/sftp sont vraiment très très limitées. Heureusement, j'ai une solution.
Il suffit ensuite de mettre ce shell aux utilisateurs qui conviennent (/etc/passwd).
3.1 Forcer un lshell au login
Si vous avez une authentification de pam via LDAP, il est possible de forcer un shell en particulier au login. Il va donc overrider les informations envoyées par NSS et les remplacer par le shell souhaité. Nous allons utiliser ici lshell pour toutes les personnes se connectant via LDAP :
/etc/libnss-ldap.conf ou /etc/ldap.conf |
nss_override_attribute_value loginShell /usr/bin/lshell |
4 Couplage avec MySecureShell
MySecureShell va nous permettre de faire toute la configuration pour le serveur SFTP et dans la configuration de celui ci, nous n'oublierons pas de rajouter lshell aux utilisateurs qui nous intéressent via :
/etc/ssh/sftp_config |
... Shell /usr/bin/lshell ... |
Et voilà, le tour est joué, nous avons une configuration ou le SFTP et le shell sont parfaitement maitrisés.
5 Couplage avec sudo
Le couplage avec sudo va être essentiel pour les personnes souhaitant utiliser des commandes uniquement exécutables par root. Il faudra donc modifier la partie alias et allowed de lshell.
Il ne faudra aussi pas oublier de modifier la configuration de sudo (sinon attention aux failles de sécu) via la documentation disponible ici.