Este tutorial se está escribiendo para ayudarlo a instalar el servidor Drop Bear SSH en un entorno chroot. Cubre las siguientes secciones:
* Instalación de Drop Bear
* Configurar Drop Bear
* Configurar el entorno Chroot
* Depurar Chrooted Drop Bear
Soltar Oso
Dropbear es un servidor y cliente SSH 2 relativamente pequeño. Es un programa liviano alternativo para OpenSSH y está diseñado para entornos con pocos recursos de memoria y procesador, como los sistemas integrados.
https://matt.ucc.asn.au/dropbear/dropbear.html
Todos los pasos de este tutorial se ejecutan como usuario root con Debian 9 como sistema operativo. Los pasos a continuación también deberían funcionar para otros sistemas operativos Linux.
Instalación
Descargar
wget -c https://matt.ucc.asn.au/dropbear/dropbear-2018.76.tar.bz2
Extraer
tar jxf dropbear-2018.76.tar.bz2
Instalar herramientas de compilación
Para Debian 9, las herramientas para compilar el software se pueden instalar con apt:
apt-get install build-essential zlib1g-dev
Configuración
En nuestra instalación, elegimos:/chroot/dropbear como la ruta raíz de nuestro entorno chroot. Y solo con fines educativos, cambiamos el puerto TCP predeterminado de ssh a 2222:
cd dropbear-2018.76
./configure --prefix=/chroot/dropbear
sed -i 's/22/2222/g' options.h
Compilación
Así de simple:
make
Instalación
El proceso de instalación predeterminado:
make install
Llaves
El siguiente paso es crear claves dss y rsa para el servidor dropbear ssh.
Primero debemos crear la carpeta de claves de dropbear:
mkdir -pv /chroot/dropbear/etc/dropbear
Y luego:
/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
Como puede ver, usamos la ruta del entorno chroot sin la necesidad de nuestra jerarquía de rutas de distribución. Las claves de Drop Bear ya están instaladas en nuestro entorno chroot a la vez.
Bibliotecas Compartidas
Ahora tenemos que verificar todas las bibliotecas compartidas necesarias que dropbear necesita para ejecutarse dentro de un entorno chroot:
ldd /chroot/dropbear/sbin/dropbear
Entorno Chroot
Estructura
cd /chroot/dropbear/
mkdir -pv dev/pts proc etc lib usr/lib var/run var/log lib/x86_64-linux-gnu lib64
Bibliotecas
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/
Bibliotecas adicionales
Estas bibliotecas son principalmente para el proceso de autenticació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/
Archivos
Copie los archivos necesarios de 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
Dispositivos
Ahora debemos tener mucho cuidado con el siguiente paso de nuestro proceso. Tenemos que crear todos los dispositivos necesarios para que se ejecute dropbear.
(Recuerde, siempre estamos en la ruta chroot, por ejemplo, /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
Usuarios
Por supuesto, necesitamos agregar usuarios a nuestra configuración de chroot dropbear. Puede optar por agregar un usuario existente o puede crear uno nuevo. Prefiero agregar un usuario existente (por ejemplo, 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 !$
Concha
¡Todos los usuarios necesitan una carcasa! Pero no necesitamos instalar bash, simplemente podemos usar busybox. Busybox es un shell ligero y combina muchas utilidades comunes de Unix en un pequeño archivo binario ejecutable.
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 ../
Puntos de montaje
Esto es lo más importante que nosotros (usted) tiene que hacer correctamente. El nuevo entorno necesita acceso a las terminales (esto es necesario para que un usuario inicie sesión) y al sistema de archivos de procesamiento.
mount -o bind /dev/pts dev/pts/
mount -o bind /proc proc/
Ejecutar Soltar Oso
Finalmente, estamos listos para ejecutar Drop Bear desde un entorno 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
Depurar
Pero si algo sale mal, siempre podemos depurar el proceso en ejecución 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