Différences entre versions de « Chrooter ses utilisateurs Debian »

De Ikoula Wiki
Jump to navigation Jump to search
Ligne 85 : Ligne 85 :
 
[[Catégorie:Serveur dédié]]
 
[[Catégorie:Serveur dédié]]
 
[[Catégorie:Linux]]
 
[[Catégorie:Linux]]
 +
<br />
 +
<comments />
 
<br />
 
<br />
 
<comments />
 
<comments />

Version du 23 octobre 2015 à 17:01

Introduction

Il peut être utile de chrooter ses utilisateurs afin de limiter leur liberté de mouvements au sein de son système.

Avertissement: Avant toute modification de votre système prévoyez toujours une sauvegarde de vos fichiers en cas de mauvaise manipulation.
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:->



Vous n'êtes pas autorisé à publier de commentaire.


<comments />
<comments />
<comments />
<comments />
<comments />