Questo tutorial è stato scritto per aiutarti a installare il server Drop Bear SSH in un ambiente chroot. Copre le sezioni seguenti:
* Installazione di Drop Bear
* Configurazione di Drop Bear
* Configurazione dell'ambiente Chroot
* Debug di Drop Bear con Chroot
Lascia l'orso
Dropbear è un server e client SSH 2 relativamente piccolo. È un programma leggero alternativo per OpenSSH ed è progettato per ambienti con poca memoria e risorse del processore, come i sistemi incorporati.
https://matt.ucc.asn.au/dropbear/dropbear.html
Tutti i passaggi di questo tutorial vengono eseguiti come utente root con Debian 9 come sistema operativo. I passaggi seguenti dovrebbero funzionare anche per altri sistemi operativi Linux.
Installazione
Scarica
wget -c https://matt.ucc.asn.au/dropbear/dropbear-2018.76.tar.bz2
Estrai
tar jxf dropbear-2018.76.tar.bz2
Installa strumenti di compilazione
Per Debian 9, gli strumenti per compilare il software possono essere installati con apt:
apt-get install build-essential zlib1g-dev
Configurazione
Nella nostra installazione, scegliamo:/chroot/dropbear come percorso radice del nostro ambiente chroot. E solo per scopi didattici, cambiamo la porta TCP predefinita di ssh in 2222:
cd dropbear-2018.76
./configure --prefix=/chroot/dropbear
sed -i 's/22/2222/g' options.h
Compilazione
Semplice così:
make
Installazione
Il processo di installazione predefinito:
make install
Chiavi
Il passaggio successivo consiste nel creare chiavi dss e rsa per il server ssh dropbear.
Dobbiamo prima creare la cartella della chiave di dropbear:
mkdir -pv /chroot/dropbear/etc/dropbear
E poi:
/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
Come puoi vedere, abbiamo utilizzato il percorso dell'ambiente chroot senza la necessità della nostra gerarchia del percorso di distribuzione. Le chiavi di Drop Bear sono già installate nel nostro ambiente chroot contemporaneamente.
Librerie condivise
Ora dobbiamo controllare tutte le librerie condivise necessarie che Dropbear deve eseguire all'interno di un ambiente chroot:
ldd /chroot/dropbear/sbin/dropbear
Ambiente Chroot
Struttura
cd /chroot/dropbear/
mkdir -pv dev/pts proc etc lib usr/lib var/run var/log lib/x86_64-linux-gnu lib64
Biblioteche
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/
Biblioteche extra
Queste librerie servono principalmente al processo di autenticazione.
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/
File
Copia i file necessari da root a 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
Dispositivi
Ora dobbiamo prestare molta attenzione al passaggio successivo del nostro processo. Dobbiamo creare tutti i dispositivi necessari per far funzionare Dropbear.
(Ricorda, siamo sempre sul percorso chroot, ad es. /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
Utenti
Ovviamente, dobbiamo aggiungere utenti alla nostra configurazione dropbear di chroot. Puoi scegliere di aggiungere un utente esistente o crearne uno nuovo. Preferisco aggiungere un utente esistente (ad es. 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 !$
Shell
Ogni utente ha bisogno di una shell! Ma non abbiamo bisogno di installare bash, possiamo semplicemente usare busybox. Busybox è una shell leggera e combina molte utilità comuni di Unix in un piccolo file binario eseguibile.
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 ../
Punti di montaggio
Questa è la cosa più importante che noi (tu) dobbiamo fare correttamente. Il nuovo ambiente richiede l'accesso ai terminali (necessario per l'accesso di un utente) e al file system di elaborazione.
mount -o bind /dev/pts dev/pts/
mount -o bind /proc proc/
Corri Drop Bear
Finalmente, siamo pronti per eseguire Drop Bear da un ambiente 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
Debug
Ma se qualcosa va storto, possiamo sempre eseguire il debug del processo in esecuzione con 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