Cómo proteger los inicios de sesión SSH con golpes de puerto

¿TOC Toc quién está ahí? SSH. SSH quien? Debe bloquear sus servidores para que solo usted tenga acceso a través de SSH. Una forma de ayudar es con knockd. Jack Wallen le muestra cómo.

Imagen: Funtap / Shutterstock

Secure Shell es el estándar de facto para iniciar sesión en servidores Linux remotos. Ha sido útil para muchos administradores a lo largo de los años. Pero el hecho de que tenga la palabra “seguro” en su título no significa que siempre esté a la altura de ese nombre. De hecho, siempre hay cosas que puede hacer para que SSH sea más seguro.

VER: Lista de verificación: Inventario de servidores (TechRepublic Premium)

Una de esas formas es con la ayuda del golpe de babor. Ahora, antes de entrar en esto, quiero dejar en claro que cualquier persona que use SSH siempre debe hacer dos cosas:

Ambos de los anteriores deben considerarse las mejores prácticas estándar para el uso de Secure Shell. Dicho esto, quiero presentarles una herramienta que existe desde hace algún tiempo. La idea es crear dos secuencias de golpes en su servidor, una para abrir el puerto SSH y otra para cerrarlo. Hasta que envíe la secuencia de golpe de apertura, el acceso SSH está cerrado. Una vez que envíe la secuencia de apertura, puede SSH en esa máquina. Cuando termine de trabajar, envíe la secuencia de cierre y SSH se volverá a bloquear.

No es perfecto, pero junto con la autenticación de clave SSH, SSH será considerablemente más seguro en sus servidores.

Permítame mostrarle cómo instalar y usar knockd para la activación de puertos en SSH.

Lo que necesitarás

Haré una demostración en Ubuntu Server 20.04, por lo que necesitará una instancia en ejecución de ese sistema operativo y un usuario con privilegios de sudo. También necesitará un usuario con privilegios sudo en una máquina cliente. Para el cliente, haré una demostración en Pop! _OS.

Cómo instalar knockd

Lo primero que haremos es instalar knockd en nuestro servidor y cliente. Inicie sesión en el servidor y emita el comando:

sudo apt-get install knockd -y

Diríjase a su cliente y emita el mismo comando.

Una vez que lo hayas instalado, debes encargarte de algunas configuraciones.

Cómo configurar knockd

Lo primero que debemos hacer es configurar el servicio knockd. Abra el archivo de configuración knockd con:

sudo nano /etc/knockd.conf

En ese archivo, cambie la secuencia de apertura de la predeterminada 7000,8000,9000 a cualquier secuencia de puerto que desee utilizar. Puede configurar hasta siete puertos para esto. La línea a configurar está debajo [openSSH] y es:

sequence = 7000,8000,9000

Cambie los números de puerto a una secuencia que pueda recordar.

A continuación, cambie la secuencia de cierre de la misma forma (utilizando diferentes números de puerto). Esa linea esta debajo [closeSSH] y es:

sequence = 9000,8000,7000

A continuación, debe cambiar -A por -I en el [openSSH] línea de comandos, por lo que será la primera regla en la cadena de iptables.

Guarde y cierre el archivo.

A continuación, necesitamos encontrar el nombre de la interfaz de red utilizada para el tráfico SSH. Emita el comando:

ip a

Busque la dirección IP que utiliza y luego busque una secuencia que se parezca a esta:

2: ens5:

En mi caso, el nombre de la interfaz es ens5.

Abra el archivo del demonio knockd con:

sudo nano /etc/default/knockd

En ese archivo, habilite el daemon para que se inicie en el arranque cambiando 0 a 1 en la línea:

START_KNOCKD=

A continuación, cambie eth0 por el nombre de su interfaz de red (y elimine el carácter # inicial) en la línea:

#KNOCKD_OPTS="-i eth0"

Entonces esta línea (en mi caso) se vería así:

KNOCKD_OPTS="-i ens5"

Guarde y cierre el archivo.

Inicie y habilite knockd con el comando:

sudo systemctl start knockd
sudo systemctl enable knockd

Cómo cerrar el puerto 22

A continuación, debemos cerrar el puerto 22, para que el tráfico no pueda pasar por alto el sistema bloqueado. Emita el comando:

sudo ufw status numbered

Si tiene reglas que permiten el tráfico SSH, estarán numeradas y deberán eliminarse como tales. Digamos, por ejemplo, que sus reglas SSH son 1 y 2; eliminarlos con:

sudo ufw delete 2
sudo ufw delete 1

Cómo usar knockd

Muévase a su máquina cliente. Lo primero que haremos es enviar la secuencia de detonación abierta, de modo que se permita el paso del tráfico SSH. Si su secuencia de golpe es 7001,8001,9001, emitiría el comando:

knock -v SERVER: 7001 8001 90001

Donde SERVER es la dirección IP del servidor remoto.

Debería ver un resultado como:

hitting tcp 192.168.1.111:7001
hitting tcp 192.168.1.111:8001
hitting tcp 192.168.1.111:9001

Después de la secuencia de detonación, debería poder conectarse mediante SSH a ese servidor. Cuando haya terminado con el trabajo remoto, saldrá del servidor y luego enviará la secuencia de golpe de cierre de la siguiente manera:

knock -v SERVER 9001 8001 7001

Después de la secuencia de golpes de cierre, ya no debería poder acceder a ese servidor remoto a través de SSH (hasta que envíe de nuevo la secuencia de golpes de apertura).

Y eso es todo lo que se necesita para usar knockd para asegurar mejor el acceso SSH en sus servidores remotos de Linux. Solo recuerde instalar knockd en cualquier máquina cliente que necesite acceso SSH a esos servidores.

Ver también

Leave a Comment