GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo usar el golpe de puerto para asegurar el servicio SSH en Linux

Toque de puerto es una técnica ingeniosa para controlar el acceso a un puerto al permitir que solo los usuarios legítimos accedan 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 cortafuegos abre con gusto el puerto que estaba cerrado.

La lógica detrás de la activación de puertos es proteger su sistema Linux de los escáneres de puertos automatizados que merodean en busca de puertos abiertos. En esta guía, examinamos cómo puede instalar el bloqueo de puertos y cómo puede configurarlo para proteger el servicio SSH. Para fines de demostración, usaremos Ubuntu 18.04 .

Paso 1:Instalar y configurar knockd

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

$ sudo apt install knockd

Una vez instalado, abra el knockd.conf 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.conf

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

Bajo el [openSSH] sección, necesitamos cambiar la secuencia predeterminada de toques:7000,8000,9000 – a otra cosa. Esto se debe a que estos valores ya se conocen y pueden comprometer la seguridad de su sistema.

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

En la tercera línea, comenzando con command , cambia -A a -I justo después de /sbin/iptables comando y antes de INPUT .

Y, por último, bajo el [closeSSH] sección, nuevamente, cambie la secuencia predeterminada a su elección preferida. Esta es la secuencia que se usará para cerrar la conexión SSH una vez que el usuario termine y cierre sesión en el servidor.

Aquí está nuestra configuración completa.

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

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

$ sudo vim /etc/default/knockd

Localice la línea START_KNOCKD=0 . Descoméntelo y establezca el valor en 1 .

Luego, dirígete a la línea KNOCKD_OPTS=”-i eth1” Descoméntelo y reemplace el predeterminado eth1 valor con la interfaz de red activa de su sistema. Para verificar su interfaz de red, simplemente ejecute el comando ip addr o ifconfig.

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

La configuración completa es como se muestra.

Guarde los cambios y salga.

Luego inicie y habilite knockd demonio como se muestra.

$ sudo systemctl start knockd
$ sudo systemctl enable knockd

Para comprobar el estado de knockd demonio, ejecute el comando:

$ sudo systemctl status knockd

Paso 2:cierre el puerto SSH 22 en el cortafuegos

Dado que el objetivo del knockd service es otorgar o denegar el acceso al servicio ssh, vamos a cerrar el puerto ssh en el firewall. Pero primero, verifiquemos el estado del firewall UFW.

$ sudo ufw status numbered

A partir de la salida, podemos ver claramente que SSH puerto 22 está abierto tanto en 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 delete 9
$ sudo ufw delete 5

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

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 llamada que configuramos en el servidor.

Pero primero, instala knockd demonio tal como lo hiciste en el servidor.

$ sudo apt install knockd

Una vez que se complete la instalación, envíe la secuencia de golpe usando 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

Debería obtener un resultado similar al que tenemos, dependiendo de su secuencia. Esto muestra que los intentos de golpear fueron exitosos.

En este punto, debería estar en condiciones de iniciar sesión correctamente en el servidor mediante SSH.

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

$ knock -v 192.168.2.105 10007 10006 10005

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

Pensamientos finales

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


Ubuntu
  1. Cómo instalar el servicio SSH (shell seguro) en Kali Linux

  2. Cómo usar Fail2ban para asegurar SSH en CentOS 7

  3. Cómo cambiar el puerto SSH en Linux

  4. Cómo cambiar el puerto SSH en Lubuntu 20.04 Linux

  5. ¿Cómo usar Chromecast?

Cómo cambiar el puerto SSH en Linux

Cómo usar systemctl en Linux

Cómo habilitar el servicio SSH en Rocky Linux 8 / CentOS 8

Cómo instalar Mosh Shell como alternativa SSH en Linux

Cómo cambiar el puerto SSH en Linux:una guía fácil

Cómo realizar una instalación segura de Redis en Linux