Openssh-chroot (Français)

From ArchWiki

Jump to: navigation, search


i18n
English
Français

Contents

Introduction

OpenSSH-chroot est basé sur le paquet standard OpenSSH et auquel a été ajouté des outils pour créer une chrootjail (traduit litteralement "prison chroot"). Ces outils ont été demandés par de nombreuses personnes et un grand nombre de distributions Linux l'ont déjà incorporés. C'est pourquoi cet utilitaire a été ajouté à Arch Linux. OpenSSH-chroot fonctionne comme le paquet original OpenSSH, auquel quelques fonctionnalités supplémentaires ont été ajoutées.

Note, this is for SSH (remote users) only. Aussi, bien qu'il soit facile d'installer pour tous les utilisateurs, nous recommandons son utilisation pour les utilisateurs intermédiaires ou avancés compte tenu de sa nature complexe.

Une fois l'installation et la configuration terminées, vous pouvez ajouter autant d'utilisateurs que vous voulez par l'environnement chroot avec ease.

Note, quelques applications ne tolèrent pas d'être dans une chrootjail parce que le chemin où ils ont été codés ou/et implémentés n'est plus accessible, mais vous avez anticipé en ajoutant 'screen' et 'irssi' comme applications au sein de l'environnement chroot. Nous continuerons de mettre à jour ce paquet avec plus d'applications implémentées en dur en fonction de ce que nous permettra le temps.

ATTENTION, la procédure n'est pas sure à 100%. Seuls les trés expérimentés hackers (les chances sont trés faibles) pourront "casser" la chrootjail de SSH. Afin d'obtenir un système à l'péreuve de ses attaques, nous vous recommandons de compiler le noyau avec le patch grsecurity-patch.

Installation

Ce paquet est disponible le dépôt "community". Pour l'installer, exécuter :

# pacman -S openssh-chroot


Note: openssh-chroot entrera en conflit avec le paquet openssh. Donc, désinstaller openssh en faisant pacman -Rd openssh avant d'installer openssh-chroot.

Editer '/usr/sbin/chroot_create' pour ajouter ou supprimer des applications qui seront accessibles dans la chrootjail.

Ensuite, exécuter le script pour créer l'environnement:

# /usr/sbin/chroot_create [<chroot-rootdir>]

Si le chroot-rootdir n'existe pas, le script utilisera comme chemin par defaut /chroot.

Configuration

Ajouter la ligne suivante dans le /etc/fstab

none /<chroot-rootdir>/dev/pts devpts defaults 0 0

Maintenant, vous devez redémarrer le daemon ssh-daemon:

# /etc/rc.d/sshd restart

Ajout de nouveaux utilisateurs chroot

  • En utilisant les automatismes:
chroot_adduser <username> <chroot-rootdir>
  • OU vous pouvez le faire manuellement:
# /usr/sbin/groupadd <username>
                        
# /usr/sbin/useradd -d /<chroot-rootdir>/./home/<username> -g <username> -m -s /bin/bash <username>
  • NOTE! Le point dans la commande précédente indique l'emprisonnement de l'utilisateur dans son environnement.
  • Maintenant, vous devez ajouter la ligne suivante dans les deux fichiers /<chroot-rootdir>/etc/passwd & group
$ cat /etc/passwd
  • Maintenant, copier la ligne complète avec <username>.
 echo '<paste here>' >> /<chroot-rootdir>/etc/passwd
  • Par exemple zaxx:x:1001:1001::/home/chroot/./home/zaxx:/bin/bash. Malheureusement, vous devez supprimer une partie du chemin de l'utililisateur après ça. Editer /<chroot-rootdir>/etc/passwd et supprimer les caractères jusqu'à ce que la ligne ressemble à : zaxx:x:1001:1001::/home/zaxx:/bin/bash
  • Maintenant, vous devez copier la ligne avec <username> dans /etc/group.
$ cat /etc/group
 echo '<paste here>' >> /<chroot-rootdir>/etc/group
  • Maintenant, il est temps de choisir un mot de passe pour le nouvel utilisateur.
 /usr/bin/passwd <username>
  • Nous voulons aussi modifier <username>'s homedirection.
 /bin/chmod 700 /<chroot-rootdir>/./home/<username>
 /bin/chown -R <username>:<username> /<chroot-rootdir>/./home/<username>

Tester votre chrootjail

# chroot /<chroot-rootdir>/ /bin/bash

Si la commande précédente ne fonctionne pas, vous n'avez pas suivi scrupuleusement ce qui a été dit dans ce WIKI. Comment? Vous n'avez aucune idée. Supprimer ( rm -rf <chroot-rootdir> && userdel -r <username> ) la chrootjail et reprenez l'intégralité de la procédure.

$ ssh <username>@localhost

Si ça fonctionne, vous aurez votre chrootjail complêtement fonctionnelle. Félicitations !!!

Note! Si le premier test est un succès, mais que ssh-test ne fonctionne pas. Il y a de forte chance que votre /etc/hosts.allow soit mal paramétré. Ajouter ce qui suit dans le fichier et réessayer le ssh-test une fois encore:

 ALL: localhost
 sshd: ALL
Personal tools