Tento výukový program byl napsán, aby vám pomohl nainstalovat server Drop Bear SSH do prostředí chroot. Pokrývá níže uvedené sekce:
* Instalace Drop Bear
* Nastavení Drop Bear
* Nastavení prostředí Chroot
* Ladění Chrooted Drop Bear
Drop medvěd
Dropbear je relativně malý server a klient SSH 2. Je to alternativní odlehčený program pro OpenSSH a je navržený pro prostředí s nízkým množstvím paměti a procesoru, jako jsou embedded systémy.
https://matt.ucc.asn.au/dropbear/dropbear.html
Všechny kroky v tomto tutoriálu jsou spuštěny jako uživatel root s operačním systémem Debian 9. Níže uvedené kroky by měly fungovat i pro ostatní OS Linux.
Instalace
Stáhnout
wget -c https://matt.ucc.asn.au/dropbear/dropbear-2018.76.tar.bz2
Extrahovat
tar jxf dropbear-2018.76.tar.bz2
Instalovat nástroje Build
Pro Debian 9 lze nástroje pro kompilaci softwaru nainstalovat pomocí apt:
apt-get install build-essential zlib1g-dev
Konfigurace
V naší instalaci zvolíme:/chroot/dropbear jako kořenovou cestu našeho prostředí chroot. A pouze pro vzdělávací účely měníme výchozí port TCP ssh na 2222:
cd dropbear-2018.76
./configure --prefix=/chroot/dropbear
sed -i 's/22/2222/g' options.h
Kompilace
Jednoduše:
make
Instalace
Výchozí instalační proces:
make install
Klíče
Dalším krokem je vytvoření klíčů dss a rsa pro ssh server Dropbear.
Nejprve musíme vytvořit složku s klíči dropbeara:
mkdir -pv /chroot/dropbear/etc/dropbear
A pak:
/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
Jak můžete vidět, použili jsme cestu prostředí chroot, aniž bychom potřebovali naši hierarchii distribuční cesty. Klíče Drop Bear's jsou již nainstalovány do našeho chrootového prostředí najednou.
Sdílené knihovny
Nyní musíme zkontrolovat všechny potřebné sdílené knihovny, které dropbear potřebuje ke spuštění v prostředí chroot:
ldd /chroot/dropbear/sbin/dropbear
Prostředí Chroot
Struktura
cd /chroot/dropbear/
mkdir -pv dev/pts proc etc lib usr/lib var/run var/log lib/x86_64-linux-gnu lib64
Knihovny
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/
Další knihovny
Tyto knihovny slouží většinou k procesu ověřování.
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/
Soubory
Zkopírujte potřebné soubory z root do 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
Zařízení
Nyní musíme být velmi opatrní s dalším krokem našeho procesu. Musíme vytvořit všechna potřebná zařízení, aby se dropbear spustil.
(Nezapomeňte, že jsme vždy na cestě chroot – např. /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
Uživatelé
Samozřejmě musíme přidat uživatele do našeho nastavení chroot dropbear. Můžete přidat stávajícího uživatele, nebo můžete vytvořit nového. Preferuji přidat existujícího uživatele (např. 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
Každý uživatel potřebuje shell! Nemusíme však instalovat bash, můžeme jednoduše použít busybox. Busybox je odlehčený shell a kombinuje mnoho běžných unixových utilit do malého spustitelného binárního souboru.
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 ../
Připojovací body
Toto je ta nejdůležitější věc, kterou my (vy) musíme udělat správně. Nové prostředí potřebuje přístup k terminálům (to je nezbytné pro přihlášení uživatele) a k systému souborů proc.
mount -o bind /dev/pts dev/pts/
mount -o bind /proc proc/
Spustit Drop Bear
Konečně jsme připraveni spustit Drop Bear z prostředí 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
Ladění
Pokud se ale něco pokazí, vždy můžeme běžící proces odladit pomocí 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