Chrooted Drop Bear SSH Server HowTo


Ky udhëzues është duke u shkruar për t'ju ndihmuar të instaloni serverin Drop Bear SSH në një mjedis chroot. Ai mbulon seksionet e mëposhtme:

* Instalimi i Drop Bear
* Setup Drop Bear
* Setup Chroot Environment
* Debug Chrooted Drop Bear

Drop Bear

Dropbear është një server dhe klient SSH 2 relativisht i vogël. Ai është një program alternativ i lehtë për OpenSSH dhe është projektuar për mjedise me memorie të ulët dhe burime procesori, të tilla si sistemet e integruara.

Të gjithë hapat në këtë tutorial ekzekutohen si përdorues rrënjë me Debian 9 si sistem operativ. Hapat e mëposhtëm duhet të funksionojnë edhe për OS të tjerë Linux.

Instalimi

Shkarko

wget -c https://matt.ucc.asn.au/dropbear/dropbear-2018.76.tar.bz2

Ekstrakt

tar jxf dropbear-2018.76.tar.bz2

Instaloni mjetet e ndërtimit

Për Debian 9, mjetet për përpilimin e softuerit mund të instalohen me apt:

apt-get install build-essential zlib1g-dev

Konfigurimi

Në instalimin tonë, ne zgjedhim: /chroot/dropbear si shtegun rrënjë të mjedisit tonë chroot. Dhe vetëm për qëllime edukative, ne ndryshojmë portin e parazgjedhur TCP  të ssh në 2222:

cd dropbear-2018.76
./configure --prefix=/chroot/dropbear
sed -i 's/22/2222/g' options.h

Përmbledhje

E thjeshtë si kjo:

make

Instalimi

Procesi i parazgjedhur i instalimit:

make install

Çelësat

Hapi tjetër është krijimi i çelësave dss dhe rsa për serverin Dropbear ssh.

Së pari duhet të krijojmë dosjen e çelësit të Dropbears:

mkdir -pv /chroot/dropbear/etc/dropbear

Dhe më pas:

/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

Siç mund ta shihni, ne përdorëm shtegun e mjedisit chroot pa pasur nevojën e hierarkisë së rrugës sonë të shpërndarjes. Çelësat Drop Bears janë instaluar tashmë në mjedisin tonë chroot menjëherë.

Bibliotekat e përbashkëta

Tani duhet të kontrollojmë të gjitha bibliotekat e nevojshme të përbashkëta që dropbear duhet të funksionojnë brenda një mjedisi chroot:

ldd /chroot/dropbear/sbin/dropbear

Mjedisi Chroot

Struktura

cd /chroot/dropbear/
mkdir -pv dev/pts proc etc lib usr/lib var/run var/log lib/x86_64-linux-gnu lib64

Bibliotekat

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/

Bibliotekat shtesë

Këto biblioteka janë kryesisht për procesin e vërtetimit.

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/

Skedarët

Kopjoni skedarët e nevojshëm nga root në 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

Pajisjet

Tani duhet të jemi shumë të kujdesshëm me hapin tjetër të procesit tonë. Duhet të krijojmë të gjitha pajisjet e nevojshme që të funksionojë Dropbear.

(Mos harroni, ne jemi gjithmonë në rrugën e chroot - p.sh. /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

Përdoruesit

Natyrisht, ne duhet të shtojmë përdorues në konfigurimin tonë të chroot dropbear. Mund të zgjedhësh të shtosh një përdorues ekzistues ose mund të krijosh një të ri. Preferoj të shtoj një përdorues ekzistues (p.sh. 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 !$

Guaskë

Çdo përdorues ka nevojë për një guaskë! Por nuk kemi nevojë të instalojmë bash, ne mund të përdorim thjesht busybox. Busybox është një guaskë e lehtë dhe kombinon shumë përdorime të zakonshme unix në një skedar binar të vogël të ekzekutueshëm.

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 Points

Kjo është gjëja më e rëndësishme që ne (ju) duhet të bëjmë siç duhet. Mjedisi i ri ka nevojë për qasje në terminalet (kjo është e nevojshme që një përdorues të identifikohet) dhe në sistemin e skedarëve proc.

mount -o bind /dev/pts dev/pts/
mount -o bind /proc proc/

Vraponi Drop Bear

Më në fund, ne jemi gati të drejtojmë Drop Bear nga një mjedis 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

Korrigjimi

Por nëse diçka shkon keq, ne mund të korrigjojmë gjithmonë procesin e ekzekutimit me 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