Openssh-chroot (Français)
From ArchWiki
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