Chrooter ses utilisateurs Debian
Introduction
Il peut être utile de chrooter ses utilisateurs afin de limiter leur liberté de mouvements au sein de son système.
Sur un serveur de production, pensez à effectuer ces opérations pendant les heures creuses afin de minimiser l'impact de vos actions.
Pré-requis
L'un des pré-requis essentiel est de conserver son système le plus à jour possible.
apt-get update apt-get upgrade
Afin de conserver votre système Debian à jour, assurez-vous de posséder une liste des dépôts officiels. Vous pourrez trouver une liste des dépôts disponibles chez Ikoula et les instructions d'installation à cette adresse.
Mise en place
Créer le groupe de chroot
L'une des façons de mettre en place une prison est de créer un groupe dont tous les utilisateurs emprisonnés dépendent.
- Créer le groupe
groupadd chrootgrp
- Créer notre nouvel utilisateur
adduser -g chrootgrp notre_utilisateur
Créer les répertoires
Nous devons maintenant mettre en place les répertoires de base de notre prison chroot afin de simuler la présence du répertoire racine /
- Créer tous les répertoires
# la syntaxe { } nous permet de définir un répertoire et plusieurs sous-répertoires en une commande mkdir -p /var/jail/{dev,etc,lib,usr,bin} mkdir -p /var/jail/usr/bin
- Assigner les permissions aux répertoires créer afin de changer le propriétaire par root
chown root.root /var/jail
- Créer également le fichier /dev/null
mknod -m 666 /var/jail/dev/null c 1 3
Fichiers de configuration /etc/
Le dossier de configuration /etc/ requiert quelques fichiers vitaux afin de fonctionner correctement, nous allons donc les copier vers notre prison.
- Copier les fichiers de configuration vers la prison
# Se déplacer dans le dossier /etc/ de la prison cd /var/jail/etc # Copier les fichiers de configuration vers le répertoire courant . (/var/jail/etc/) cp /etc/ld.so.cache . cp /etc/ld.so.conf . cp /etc/nsswitch.conf . cp /etc/hosts .
Déterminer les commandes accessibles
Nous devons à présent déterminer les commandes qui seront accessibles à notre utilisateur, par exemple la commande ls, cat et bash.
- Nous devons pour cela copier les exécutables vers notre prison
# Se déplacer dans le dossier /usr/bin de la prison cd /var/jail/usr/bin # Copier les exécutables souhaités vers le répertoire courant (/var/jail/usr/bin) cp /usr/bin/ls . cp /usr/bin/cat . cp /usr/bin/bash .
- Ne pas oublier d'ajouter les bibliothèques partagées pour les exécutables
# on cherche les bibliothèques de ls grâce à la commande ldd ldd /bin/ls # La commande retourne un résultat similaire: linux-gate.so.1 => (0xb7f2b000) librt.so.1 => /lib/librt.so.1 (0xb7f1d000) libacl.so.1 => /lib/libacl.so.1 (0xb7f16000) libc.so.6 => /lib/libc.so.6 (0xb7dcf000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7db7000) /lib/ld-linux.so.2 (0xb7f2c000) libattr.so.1 => /lib/libattr.so.1 (0xb7db2000)
Configurer le service SSH
Maintenant que notre prison est en place nous devons configurer le service SSH de façon à rediriger notre utilisateur appartenant au groupe chrooté vers son nouvel emplacement sécurisé.
- Editer le fichier de configuration ssh
vi /etc/ssh/sshd_config
- Ajouter le contenu suivant en fin de fichier
# Ajout du groupe chroot Match group chrootgrp ChrootDirectory /var/jail/ X11Forwarding no AllowTcpForwarding no
- Redémarrer le service ssh
/etc/init.d/ssh restart
Cette configuration désactive également la redirection X11 et la redirection des ports TCP. Dans certains cas, notamment la mise en place d'un tunnel sécurisé, il peut être nécessaire de revoir la configuration et enlever cette interdiction.
Option: Modifier le prompt
Cette étape est optionnelle, en effet si vous avez tester la connexion vers votre prison vous avez du remarquer un prompt similaire à ceci:
bash-2-5$
Si vous souhaitez utiliser un prompt moins général il vous suffit d'effectuer la procédure suivante:
# copier le contenu de /etc/skel vers /var/jail/home/votre_utilisateur cp /etc/skel/* /var/jail/home/notre_utilisateur/ # Vous avez à présent quelque chose comme ceci notre_utilisateur:->
<comments />
Activer l'actualisation automatique des commentaires