Dropbear SSH una alternativa ligera a OpenSSH

DropBear SSH

Dropbear es un servidor y cliente SSH ligero y pequeño que puede reemplazar a OpenSSH en cualquier plataforma POSIX como GNU/Linux, *BSD, Cygwin… Dropbear es software libre ya que es liberado bajo licencias estilo MIT.

Características

  • Bajo consumo de memoria, lo que lo hace ideal para sistemas que requieran un consumo mínimo de recursos como los sistemas embebidos.
  • Redireccionado de sesiones X11 (Servidor gráfico para sistemas tipo UNIX) y redireccionado de «authentication-agent» para clientes OpenSSH.
  • Compatible con el formato del fichero de autenticación de llave pública: ~/.ssh/authorized_keys (OpenSSH).
  • Redireccionado de puertos locales y remotos (tunneling).
  • Otras

1. Instalar

Fedora

$ sudo dnf -y install dropbear

CentOS

Instalar definición del repositorio EPEL

$ sudo yum -y install epel-release

Instalar dropbear

$ yum -y install dropbear

Alpine

$ sudo apk add dropbear

Debian/Ubuntu/Devuan

$ sudo apt-get -y install dropbear

Android

Antes de instalar dropbear en Android debe instalar Termux para ello vea el siguiente video: Termux – emulador de terminal para Android

Instalar dropbear

$ apt install dropbear

2. Detener el servicio OpenSSH

Antes de iniciar el servicio dropbear asegúrese de detener el servicio sshd.

Distribuciones basadas en systemd: Fedora, CentOS, Debian, Ubuntu

$ sudo bash -c 'systemctl stop sshd && systemctl disable sshd'

Distribuciones basadas en OpenRC: Alpine

$ sudo bash -c 'rc-service sshd stop && rc-update del sshd'

Distribuciones basadas en sysvinit: Devuan

$ sudo bash -c 'service sshd stop && update-rc.d sshd disable'

Android

Para Android no es necesario detener el servivio SSH pues este no se instala por defecto.

3. Iniciar el servicio dropbear

Distribuciones basadas en systemd: Fedora, CentOS, Debian, Ubuntu

$ sudo systemctl start dropbear

Distribuciones basadas en OpenRC: Alpine

$ sudo rc-service dropbear start

Distribuciones basadas en sysvinit: Devuan

$ sudo service dropbear start

Android

Iniciamos dropbear en primer plano (foreground), por defecto dropbear va estar escuchando en el puerto 8022

$ dropbear -F

4. Iniciar el servicio dropbear con el sistema operativo

Distribuciones basadas en systemd: Fedora, CentOS, Debian, Ubuntu

$ sudo systemctl enable dropbear

Distribuciones basadas en OpenRC: Alpine

$ sudo rc-update add dropbear

Distribuciones basadas en sysvinit: Devuan

$ sudo update-rc.d sshd enable

Android

No es recomendable tener corriendo permanentemente un servidor SSH en Android por razones de seguridad y rendimiento no obstante puede lograrlo instalando Termux:Boot

5. Conectarse al servidor dropbear

Para conectarse al servidor dropbear puede usar el cliente ssh (OpenSSH) o la herramienta dbclient. La herramienta dbclient forma parte del paquete dropbear. Para Android la forma recomendada de conectarse es usando llaves pública y privada ya que no se tiene la contraseña del usuario en cuestión, para más detalles vea el siguiente video:

Cómo instalar un servidor SSH en Android.

Usando usuario y contraseña

$ ssh usuario@miservidor.midominio
$ dbclient usuario@miservidor.midominio

Usando llaves pública y privada

Usando el cliente ssh

Para conectarse al servidor dropbear usando el cliente ssh debe usar las llaves públicas y privadas generadas por ssh-keygen. En el caso de Android agregue la opción -p 8022 a los comandos: ssh-copy-id, ssh, dbclient

1. Generar llaves públicas y privadas
 $ ssh-keygen -t ecdsa 
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/sedlav/.ssh/id_ecdsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/sedlav/.ssh/id_ecdsa.
Your public key has been saved in /home/sedlav/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:m+Cg8yFD07sWN05oFHI6SXJsSXJe2nGYUtMalQFn2og sedlav@librebyte.net
The key's randomart image is:
+---[ECDSA 256]---+
|.ooo***o         |
|.+O=*Xo          |
| =E*++.          |
|  +.o            |
|  ooo.. S        |
| . o+++. o       |
|  =.o=..o        |
|   =.o.          |
|   .o            |
+----[SHA256]-----+
2. Copiar la llave pública al servidor dropbear
$ ssh-copy-id -i .ssh/id_ecdsa.pub sedlav@dropbearserver
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_ecdsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
sedlav@dropbearserver's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'sedlav@dropbearserver'"
and check to make sure that only the key(s) you wanted were added.
3. Conectarse al servidor dropbear
$ ssh sedlav@dropbearserver

Usando dbclient

Para conectarse al servidor dropbear usando dbclient debe usar las llaves públicas y privadas generadas por dropbearkey

$ dropbearkey -t ecdsa -f .ssh/id_dropbear_ecdsa | grep "^ecdsa" > .ssh/id_dropbear_ecdsa.pub 
Generating key, this may take a while...
2. Copiar la llave pública al servidor dropbear
$ cat .ssh/id_dropbear_ecdsa.pub | dbclient sedlav@dropbearserver 'cat - >> .ssh/authorized_keys'
sedlav@dropbearserver's password:
3. Conectarse al servidor dropbear
$ dbclient -i .ssh/id_dropbear_ecdsa sedlav@dropbearserver

Nótese que los permisos del DIR .ssh deben ser 700 y del fichero authorized_keys: 600 o no podrá conectarse al servidor dropbear.

Lecturas recomendadas

Proyecto Dropbear

YouTube video

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.