GNU/Linux >> Linux Esercitazione >  >> Linux

Server SSH di Drop Bear con chroot HowTo

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

Linux
  1. Ssh:sposta un'applicazione in esecuzione su un server X diverso??

  2. Come mantenere attive le sessioni SSH

  3. Risolvi i problemi di SSH

  4. Perché il mio accesso SSH è lento?

  5. SSH senza sourcing .bashrc

Server SSH

Come aggiungere la chiave pubblica SSH al server

12 cose da fare dopo aver installato un server Linux

Come configurare SSH su CentOS e RHEL

Come eseguire l'SSH sul server tramite Linux

Come proteggere SSH con Fail2Ban