GNU/Linux >> Tutoriales Linux >  >> Linux

Procedimiento para el servidor SSH de Drop Bear con chroot

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

Linux
  1. Cómo usar SSH en Linux desde Android

  2. Ssh:¿mover una aplicación en ejecución a un servidor X diferente?

  3. Ssh, Sudo, luego descargar?

  4. Solucionar problemas de SSH

  5. ¿Por qué mi inicio de sesión SSH es lento?

Servidor SSH

Cómo agregar una clave pública SSH al servidor

12 cosas que hacer después de instalar un servidor Linux

Cómo configurar SSH en CentOS y RHEL

Cómo SSH al servidor a través de Linux

Cómo proteger SSH con Fail2Ban