Ce tutoriel est en cours de rédaction pour vous aider à installer le serveur Drop Bear SSH dans un environnement chroot. Il couvre les sections ci-dessous :
* Installation de Drop Bear
* Configuration de Drop Bear
* Configuration de l'environnement Chroot
* Débogage de Drop Bear chrooté
Déposez l'ours
Dropbear est un serveur et client SSH 2 relativement petit. Il s'agit d'un programme léger alternatif pour OpenSSH et il est conçu pour les environnements à faible mémoire et ressources de processeur, tels que les systèmes embarqués.
https://matt.ucc.asn.au/dropbear/dropbear.html
Toutes les étapes de ce didacticiel sont exécutées en tant qu'utilisateur root avec Debian 9 comme système d'exploitation. Les étapes ci-dessous devraient également fonctionner pour d'autres systèmes d'exploitation Linux.
Installation
Télécharger
wget -c https://matt.ucc.asn.au/dropbear/dropbear-2018.76.tar.bz2
Extraire
tar jxf dropbear-2018.76.tar.bz2
Installer les outils de compilation
Pour Debian 9, les outils pour compiler le logiciel peuvent être installés avec apt :
apt-get install build-essential zlib1g-dev
Configuration
Dans notre installation, nous choisissons :/chroot/dropbear comme chemin racine de notre environnement chroot. Et à des fins éducatives uniquement, nous modifions le port TCP par défaut de ssh en 2222 :
cd dropbear-2018.76
./configure --prefix=/chroot/dropbear
sed -i 's/22/2222/g' options.h
Compilation
C'est aussi simple que cela :
make
Installation
Le processus d'installation par défaut :
make install
Clés
L'étape suivante consiste à créer des clés dss et rsa pour le serveur dropbear ssh.
Nous devons d'abord créer le dossier clé de dropbear :
mkdir -pv /chroot/dropbear/etc/dropbear
Et puis :
/chroot/dropbear/bin/dropbearkey -t dss -f /chroot/dropbear/etc/dropbear/dropbear.dss
/chroot/dropbear/bin/dropbearkey -t rsa -s 4096 -f /chroot/dropbear/etc/dropbear/dropbear.rsa
Comme vous pouvez le voir, nous avons utilisé le chemin de l'environnement chroot sans avoir besoin de notre hiérarchie de chemin de distribution. Les clés de Drop Bear sont déjà installées dans notre environnement chroot à la fois.
Bibliothèques partagées
Nous devons maintenant vérifier toutes les bibliothèques partagées nécessaires dont dropbear a besoin pour s'exécuter dans un environnement chroot :
ldd /chroot/dropbear/sbin/dropbear
Environnement chroot
Structure
cd /chroot/dropbear/
mkdir -pv dev/pts proc etc lib usr/lib var/run var/log lib/x86_64-linux-gnu lib64
Bibliothèques
cp /lib/x86_64-linux-gnu/libutil.so.1 lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libz.so.1 lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libcrypt.so.1 lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 lib64/
Bibliothèques supplémentaires
Ces bibliothèques sont principalement destinées au processus d'authentification.
cp /lib/x86_64-linux-gnu/libnss_dns.so.2 lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu//libnss_files.so.2 lib/x86_64-linux-gnu/
Fichiers
Copiez les fichiers nécessaires de la racine vers le chroot :
cp /etc/localtime etc/
cp /etc/nsswitch.conf etc/
cp /etc/resolv.conf etc/
cp /etc/host.conf etc/
cp /etc/hosts etc/
touch var/log/lastlog
touch var/run/utmp
touch var/log/wtmp
echo 'SSH' > etc/dropbear/dropbear.banner
Appareils
Nous devons maintenant être très prudents avec la prochaine étape de notre processus. Nous devons créer tous les appareils nécessaires pour que dropbear fonctionne.
(N'oubliez pas que nous sommes toujours sur le chemin chroot - par exemple /chroot/dropbear.)
mknod dev/urandom c 1 9
chmod 0666 dev/urandom
mknod dev/ptmx c 5 2
chmod 0666 dev/ptmx
mknod dev/tty c 5 0
chmod 0666 dev/tty
Utilisateurs
Bien sûr, nous devons ajouter des utilisateurs à notre configuration chroot dropbear. Vous pouvez choisir d'ajouter un utilisateur existant ou d'en créer un nouveau. Je préfère ajouter un utilisateur existant (par exemple, ebal) :
grep ^ebal /etc/passwd > etc/passwd
grep ^ebal /etc/group > etc/group
grep ^ebal /etc/shadow > etc/shadow
mkdir -pv home/ebal
chown ebal.ebal !$
Coquille
Chaque utilisateur a besoin d'un shell ! Mais nous n'avons pas besoin d'installer bash, nous pouvons simplement utiliser busybox. Busybox est un shell léger et combine de nombreux utilitaires Unix courants dans un petit fichier binaire exécutable.
cp /etc/shells etc/
sed -i 's/bash/sh/' etc/passwd
cd bin
wget -c https://busybox.net/downloads/binaries/1.27.1-i686/busybox
chmod 0755 busybox
ln -s busybox sh
cd ../
Points de montage
C'est la chose la plus importante que nous (vous) devez faire correctement. Le nouvel environnement doit avoir accès aux terminaux (ceci est nécessaire pour qu'un utilisateur se connecte) et au système de fichiers proc.
mount -o bind /dev/pts dev/pts/
mount -o bind /proc proc/
Exécutez Drop Bear
Enfin, nous sommes prêts à exécuter Drop Bear à partir d'un environnement chroot :
chroot /chroot/dropbear/ \
/sbin/dropbear \
-b /etc/dropbear/dropbear.banner \
-d /etc/dropbear/dropbear.dss \
-r /etc/dropbear/dropbear.rsa \
-F -E -w -g -p 2222
Débogage
Mais en cas de problème, nous pouvons toujours déboguer le processus en cours d'exécution avec strace :
strace -f chroot /chroot/dropbear/ \
/sbin/dropbear \
-b /etc/dropbear/dropbear.banner \
-d /etc/dropbear/dropbear.dss \
-r /etc/dropbear/dropbear.rsa \
-F -E -w -g -p 2222