GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Chrooted Drop Bear SSH-Server HowTo

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 werden
apt-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

Linux
  1. Wie man SSH unter Linux von Android aus macht

  2. Ssh – Eine laufende Anwendung auf einen anderen X-Server verschieben??

  3. Ssh, Sudo, dann herunterladen?

  4. Wie kann man mit einem anderen Server per SSH auf einen Server zugreifen?

  5. So richten Sie passwortloses SSH unter Linux ein

SSH-Server

So fügen Sie dem Server einen öffentlichen SSH-Schlüssel hinzu

12 Dinge, die nach der Installation eines Linux-Servers zu tun sind

So richten Sie SSH unter CentOS und RHEL ein

So führen Sie SSH zum Server über Linux

So sichern Sie SSH mit Fail2Ban