GNU/Linux >> Tutoriels Linux >  >> Linux

Guide du serveur SSH Drop Bear chrooté

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

Linux
  1. Comment SSH sur Linux à partir d'Android

  2. Ssh - Déplacer une application en cours d'exécution vers un autre serveur X ? ?

  3. Comment maintenir les sessions SSH en vie

  4. Dépanner SSH

  5. SSH sans source .bashrc

Serveur SSH

Comment ajouter une clé publique SSH au serveur

12 choses à faire après l'installation d'un serveur Linux

Comment configurer SSH sur CentOS et RHEL

Comment SSH au serveur via Linux

Comment sécuriser SSH avec Fail2Ban