Cómo usar Port Knocking para asegurar el servicio SSH en Linux

Cómo usar Port Knocking para asegurar el servicio SSH en Linux

Puerto golpeando es una técnica ingeniosa de controlar el acceso a un puerto al permitir solo a los usuarios legítimos acceso al servicio que se ejecuta en un servidor. Funciona de tal manera que cuando se realiza la secuencia correcta de intentos de conexión, el firewall abre con gusto el puerto cerrado.

La lógica detrás de los golpes de puerto es salvaguardar su sistema Linux desde escáneres de puertos automatizados que merodean para puertos abiertos. En esta guía, examinamos cómo puede instalar el golpe de puerto y cómo puede configurarlo para asegurar el servicio SSH. Para fines de demostración, usaremos Ubuntu 18.04.

Paso 1: Instale y configure Knockd

Para comenzar, inicie sesión en su sistema Linux e instale el tocador demonio como se muestra.

$ sudo apt instalación knockd 

Una vez instalado, abra el tocador.confusión Configuración con su editor de texto preferido. Aquí estamos usando el editor de texto de línea de comandos VIM.

$ sudo vim /etc /knockd.confusión 

El archivo de configuración predeterminado aparece de la siguiente manera.

Archivo de configuración de Knockd

Bajo la [OpenSsh] Sección, necesitamos cambiar la secuencia de bloqueo predeterminada - 7000,8000,9000 - A otra cosa. Esto se debe a que estos valores ya son conocidos y pueden comprometer la seguridad de su sistema.

Para fines de prueba, hemos establecido los valores en 10005, 10006, 10007. Esta es la secuencia que se utilizará para abrir el puerto SSH desde un sistema de clientes.

En la tercera línea, comenzando con dominio, cambiar -A a -I justo después del /sbin/iptables comando y antes APORTE.

Y, por último, bajo el [Closessh] La sección, nuevamente, cambie la secuencia predeterminada a su elección preferida. Esta es la secuencia que se utilizará para cerrar la conexión SSH una vez que el usuario esté listo y se cierre el servidor.

Aquí está nuestra configuración completa.

Configuración de configuración de Knockd

Una vez que haya terminado, guarde los cambios y salga.

Otra configuración que necesitamos modificar es el /etc/default/knockd. Una vez más, ábralo usando tu editor de texto.

$ sudo vim/etc/default/knockd 
Configuración de configuración predeterminada de Knockd

Localizar la línea Start_knockd = 0. Desenchufarlo y establecer el valor en 1.

A continuación, dirígete a la línea Knockd_opts = "-I eth1" Descomnación y reemplazar el valor predeterminado ETH1 valor con la interfaz de red activa de su sistema. Para verificar su interfaz de red, simplemente ejecute el complemento IP o el comando ifconfig.

Para nuestro sistema, ENP0S3 es la tarjeta de red activa.

Interfaz de red activa

La configuración completa es como se muestra.

Valores de configuraciones de Knockd

Guardar los cambios y salir.

Luego comienza y habilita tocador demonio como se muestra.

$ sudo systemctl start knockd $ sudo systemctl habilita knockd 

Para verificar el estado de tocador Daemon, ejecuta el comando:

$ sudo systemctl status knockd 
Verifique el estado de Knockd

Paso 2: Cerrar el puerto SSH 22 en el firewall

Desde el objetivo del tocador El servicio es para otorgar o negar el acceso al servicio SSH, vamos a cerrar el puerto SSH en el firewall. Pero primero, verifiquemos el estado del firewall de UFW.

$ sudo UFW Estado numerado 
Verifique el estado de UFW

Desde la salida, podemos ver claramente que Ssh puerto 22 está abierto en ambos IPv4 y IPv6 Protocolos numerados 5 y 9 respectivamente.

Necesitamos eliminar estas dos reglas como se muestra, comenzando con el valor más alto, que es 9.

$ sudo UFW Eliminar 9 $ sudo Ufw Eliminar 5 
Eliminar las reglas de UFW

Ahora, si intenta iniciar sesión de forma remota al servidor, obtendrá un error de tiempo de espera de conexión como se muestra.

Tiempo de espera de conexión de SSH

Paso 3: Configure un cliente Knock para conectarse al servidor SSH

En el paso final, configuraremos un cliente e intentaremos iniciar sesión enviando primero la secuencia de golpe que configuramos en el servidor.

Pero primero, instalar tocador demonio tal como lo hiciste en el servidor.

$ sudo apt instalación knockd 

Una vez que se complete la instalación, envíe la secuencia de golpe utilizando la sintaxis que se muestra

$ knock -v server_ip knock_sequence 

En nuestro caso, esto se traduce en:

$ knock -v 192.168.2.105 10005 10006 10007 

Debe obtener una salida similar a lo que tenemos, dependiendo de su secuencia. Esto muestra que los intentos de golpe fueron exitosos.

Secuencia de golpe

En este punto, debe estar en condiciones de iniciar sesión con éxito al servidor usando SSH.

Conectarse al servidor usando knockd

Una vez que haya terminado de hacer su trabajo en el servidor remoto, cierre el puerto SSH enviando la secuencia de golpe de cierre.

$ knock -v 192.168.2.105 10007 10006 10005 

Cualquier intento de iniciar sesión en el servidor fallará como se demuestra.

Cerrar puertos SSH
Pensamientos de cierre

Esto concluye esta guía sobre cómo aprovechar los golpes de puerto para asegurar el servicio SSH en su servidor. Un enfoque mejor y más fácil sería configurar la autenticación SSH de contraseña utilizando pares de teclas SSH. Esto asegura que solo el usuario con la clave privada pueda autenticarse con el servidor en el que se almacena la clave pública.