Cómo usar Port Knocking para asegurar el servicio SSH en Linux
- 3591
- 654
- Sr. Eduardo Menchaca
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 KnockdBajo 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 KnockdUna 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/knockdConfiguració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 activaLa configuración completa es como se muestra.
Valores de configuraciones de KnockdGuardar 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 knockdVerifique 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 numeradoVerifique 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 5Eliminar 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 SSHPaso 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 golpeEn este punto, debe estar en condiciones de iniciar sesión con éxito al servidor usando SSH.
Conectarse al servidor usando knockdUna 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 SSHPensamientos 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.
- « 9 mejores clientes de IRC para Linux en 2021
- LFCA Aprenda los conceptos básicos de usar contenedores - Parte 22 »