Cómo hacer que su servidor sea invisible con Knockd

Cómo hacer que su servidor sea invisible con Knockd

Cuando tiene un servidor de acceso público, los piratas informáticos pueden escanear fácilmente su dirección IP y buscar puertos abiertos (en particular, el puerto 22 que se usa para SSH) en su servidor. Una forma de ocultar su servidor de los piratas informáticos es knockd. Knockd es un servidor de golpe de puerto. Escucha todo el tráfico en una red ethernet u otras interfaces disponibles, esperando secuencias especiales de accesos a puertos. Clientes como telnet o Putty inician accesos a puertos enviando un TCP o un paquete a un puerto en el servidor.

En este artículo, veremos cómo podemos usar knockd para ocultar los servicios que se ejecutan en un servidor Linux.

Instalar Knockd en un servidor Linux

Knockd está disponible en la mayoría de los repositorios de distribución. En un servidor basado en Debian/Ubuntu/Ubuntu, puede usar el apt-get comando para instalar knockd.

sudo apt-get install knockd

Para usuarios de Fedora, CentOS o REHL, puede usar el yum dominio:

Instalar y configurar iptables

Si no tiene Iptables instalado en su servidor, instálelo ahora.

sudo apt-get install iptables iptables-persistent

El paquete iptables-persistent se hace cargo de la carga automática de iptables guardados.

A continuación, debe permitir las conexiones ya establecidas, así como las sesiones actuales a través de iptables. Use el siguiente comando para lograr esta tarea:

iptables  -A   INPUT  -m conntrack  --ctstate  ESTABLISHED, RELATED  -j  ACCEPT

A continuación, debe bloquear todas las conexiones entrantes al puerto 22 SSH.

iptables  -A  INPUT  -p  tcp  --dport  22  -j  REJECT

Ahora guardemos las reglas del firewall a través de los siguientes comandos:

netfilter-persistent save
netfilter-persistent reload

Puede continuar y verificar si realmente ha bloqueado el puerto 22 conectándose a su servidor a través de su computadora.

Configurar golpe

Ahora es el momento de configurar los ajustes predeterminados de knockd. Se encuentra en «/etc/knockd.conf». Para hacerlo, cambie al archivo de configuración de knockd usando el siguiente comando:

cd /etc
sudo leafpad knockd.conf

Con fines ilustrativos, estoy usando el editor leafpad. En su servidor puede usar nano o Vi.

La captura de pantalla muestra el archivo de configuración de knockd.

golpeado

  • Opciones: Puede encontrar opciones de configuración para Knockd en este campo. Como puede ver en la captura de pantalla anterior, utiliza syslog para iniciar sesión.
  • OpenSSH: este campo se compone de indicadores de secuencia, tiempo de espera de secuencia, comando y tcp.
  • Secuencia: Muestra la secuencia de puertos que puede ser utilizada como patrón por el cliente para iniciar una acción.
  • Tiempo de espera de secuencia: Muestra el tiempo total asignado a los Clientes para completar la secuencia de activación del puerto requerida.
  • Dominio: Este es el comando que se ejecutará una vez que la secuencia de golpes del cliente coincida con el patrón en el campo de secuencia.
  • TCP_BANDERAS: Esta es la bandera que se debe poner en los golpes emitidos por el cliente. Si la bandera era incorrecta pero el patrón de golpe era correcto, la acción no se activará.

Nota: El comando iptables en la sección OpenSSH en el archivo de configuración de Knockd usa el -A opción para agregar esta regla al final de la cadena INPUT. Esto hace que todas las conexiones restantes se caigan.

Para evitarlo, reemplácelo con lo siguiente a continuación:

command = /sbin/iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT

Este comando asegura que se agregará una nueva regla en la parte superior de la cadena INPUT para aceptar conexiones ssh.

Habilitar e iniciar el servicio Knockd

Utilice el siguiente procedimiento para habilitar el servicio knockd en «/etc/default/knock».

Cambie el valor de 0 a 1 como se muestra en la captura de pantalla.

golpedconf

knockdconf-1

Luego, guarde y cierre el archivo «/etc/default/knockd».

A continuación, puede iniciar el servicio knockd utilizando uno de los siguientes comandos:

sudo service knockd start

o

sudo systemctl start knockd

Es hora de probar su servidor Linux

Ahora es el momento de probar su servidor Linux SSH. Para abrir el puerto 22 en una dirección IP específica, use lo siguiente en su computadora. (Deberá instalar knockd en su computadora también)

knock -v my-server-ip  7000 8000 9000

Debe reemplazar «my-server-ip» con la dirección IP de su servidor.

Ahora puede conectarse al puerto 22 SSH usando el siguiente comando:

Una vez que haya terminado con lo que quería hacer a través del puerto 22, puede cerrarlo con el siguiente comando:

knock -v my-server-ip 9000 8000 7000

Conclusión

Con knockd, tiene la seguridad de que su servidor SSH está protegido y a salvo de atacantes con escáneres sofisticados. Además, usted está completamente a cargo de su servidor SSH.

Experto Geek - Tu Guía en Tendencias Tecnológicas