Dieses Tutorial wurde geschrieben, um Ihnen bei der Installation des Drop Bear SSH-Servers in einer Chroot-Umgebung zu helfen. Es deckt die folgenden Abschnitte ab:
* Installation von Drop Bear
* Einrichtung von Drop Bear
* Einrichtung der Chroot-Umgebung
* Debuggen von Chrooted Drop Bear
Drop Bear
Dropbear ist ein relativ kleiner SSH 2-Server und -Client. Es ist ein alternatives, leichtgewichtiges Programm für OpenSSH und es wurde für Umgebungen mit wenig Arbeitsspeicher und Prozessorressourcen entwickelt, wie z. B. eingebettete Systeme.
https://matt.ucc.asn.au/dropbear/dropbear.html
Alle Schritte in diesem Tutorial werden als Root-Benutzer mit Debian 9 als Betriebssystem ausgeführt. Die folgenden Schritte sollten auch für andere Linux-Betriebssysteme funktionieren.
Installation
Herunterladen
wget -c https://matt.ucc.asn.au/dropbear/dropbear-2018.76.tar.bz2
Extrahieren
tar jxf dropbear-2018.76.tar.bz2
Build-Tools installieren
Für Debian 9 können die Tools zum Kompilieren der Software mit apt:
installiert werdenapt-get install build-essential zlib1g-dev
Konfiguration
In unserer Installation wählen wir:/chroot/dropbear als Root-Pfad unserer Chroot-Umgebung. Und nur zu Bildungszwecken ändern wir den standardmäßigen TCP-Port von ssh auf 2222:
cd dropbear-2018.76
./configure --prefix=/chroot/dropbear
sed -i 's/22/2222/g' options.h
Zusammenstellung
Ganz einfach:
make
Installation
Der standardmäßige Installationsprozess:
make install
Schlüssel
Der nächste Schritt besteht darin, DSS- und RSA-Schlüssel für den Dropbear-SSH-Server zu erstellen.
Wir müssen zuerst den Schlüsselordner von dropbear erstellen:
mkdir -pv /chroot/dropbear/etc/dropbear
Und dann:
/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
Wie Sie sehen können, haben wir den Chroot-Umgebungspfad ohne die Notwendigkeit unserer Verteilungspfadhierarchie verwendet. Die Schlüssel von Drop Bear sind bereits in unserer Chroot-Umgebung installiert.
Gemeinsam genutzte Bibliotheken
Wir müssen jetzt alle notwendigen gemeinsam genutzten Bibliotheken prüfen, die dropbear benötigt, um innerhalb einer Chroot-Umgebung zu laufen:
ldd /chroot/dropbear/sbin/dropbear
Chroot-Umgebung
Struktur
cd /chroot/dropbear/
mkdir -pv dev/pts proc etc lib usr/lib var/run var/log lib/x86_64-linux-gnu lib64
Bibliotheken
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/
Zusätzliche Bibliotheken
Diese Bibliotheken dienen hauptsächlich dem Authentifizierungsprozess.
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/
Dateien
Kopieren Sie die erforderlichen Dateien von Root nach 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
Geräte
Wir müssen jetzt mit dem nächsten Schritt unseres Prozesses sehr vorsichtig sein. Wir müssen alle notwendigen Geräte erstellen, damit dropbear läuft.
(Denken Sie daran, dass wir uns immer im Chroot-Pfad befinden – z. B. /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
Benutzer
Natürlich müssen wir Benutzer zu unserem chroot dropbear-Setup hinzufügen. Sie können einen vorhandenen Nutzer hinzufügen oder einen neuen erstellen. Ich füge lieber einen bestehenden Nutzer hinzu (z. B. 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 !$
Schale
Jeder Benutzer braucht eine Shell! Aber wir müssen Bash nicht installieren, wir können einfach Busybox verwenden. Busybox ist eine leichte Shell und kombiniert viele gängige Unix-Utilities in einer kleinen ausführbaren Binärdatei.
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 ../
Mount-Punkte
Das ist das Wichtigste, was wir (Sie) richtig machen müssen. Die neue Umgebung benötigt Zugriff auf Terminals (dies ist notwendig für einen Benutzer zum Anmelden) und auf das Dateisystem.
mount -o bind /dev/pts dev/pts/
mount -o bind /proc proc/
Führe Drop Bear aus
Endlich sind wir bereit, Drop Bear aus einer Chroot-Umgebung heraus auszuführen:
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
Debuggen
Aber wenn etwas schief geht, können wir den laufenden Prozess jederzeit mit strace debuggen:
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