Cómo usar Port Knocking en Linux (y por qué no deberías)

El golpeo de puertos es una forma de proteger un servidor cerrando los puertos del firewall, incluso aquellos que sabe que se utilizarán. Esos puertos se abren bajo demanda si, y solo si, la solicitud de conexión proporciona el golpe secreto.

Port Knocking es un “golpe secreto”

En la década de 1920, cuando prohibición estaba en pleno apogeo, si querías entrar en un taberna clandestina tenías que conocer el golpe secreto y tocarlo correctamente para entrar.

El golpeo de puertos es un equivalente moderno. Si desea que las personas tengan acceso a los servicios de su computadora pero no desea abrir su firewall a Internet, puede usar el golpe de puertos. Le permite cerrar los puertos en su firewall que permiten las conexiones entrantes y abrirlos automáticamente cuando se realiza un patrón preestablecido de intentos de conexión. La secuencia de intentos de conexión actúa como el golpe secreto. Otro golpe secreto cierra el puerto.

El golpeo de puerto es una novedad, pero es importante saber que es un ejemplo de seguridad a través de la oscuridad, y ese concepto es fundamentalmente defectuoso. El secreto de cómo acceder a un sistema es seguro porque solo aquellos en un grupo específico lo saben. Pero una vez que ese secreto está fuera, ya sea porque se revela, se observa, se adivina o se resuelve, su seguridad es nula. Es mejor que proteja su servidor de otras maneras más sólidas, como requerir inicios de sesión basados en claves para un servidor SSH.

Los enfoques más robustos para la ciberseguridad son de múltiples capas, por lo que, tal vez, el golpeo de puertos debería ser una de esas capas. Cuantas más capas, mejor, ¿verdad? Sin embargo, se podría argumentar que el golpeteo de puertos no agrega mucho (si es que agrega algo) a un sistema adecuadamente endurecido y seguro.

La ciberseguridad es un tema vasto y complicado, pero no debe usar el golpeteo de puertos como su única forma de defensa.

Instalación knockd

Para demostrar el golpeo de puertos, lo usaremos para controlar el puerto 22, que es el puerto SSH. Usaremos una herramienta llamada knockd. Uso apt-get para instalar este paquete en su sistema si utiliza Ubuntu u otra distribución basada en Debian. En otras distribuciones de Linux, utilice la herramienta de administración de paquetes de su distribución de Linux, en su lugar.

Escriba lo siguiente:

sudo apt-get install knockd

Probablemente ya tengas el Firewall iptables instalado en el sistema, pero es posible que deba instalar el iptables-persistent paquete. Maneja la carga automática de guardados iptable reglas.

Escriba lo siguiente para instalarlo:

sudo apt-get install iptables-persistent

Cuando aparezca la pantalla de configuración de IPV4, presione la barra espaciadora para aceptar la opción “Sí”.

Presione la barra espaciadora nuevamente en la pantalla de configuración de IPv6 para aceptar la opción “Sí” y continuar.

El siguiente comando indica iptables para permitir que continúen las conexiones establecidas y continuas. Ahora emitiremos otro comando para cerrar el puerto SSH.

Si alguien está conectado por SSH cuando emitimos este comando, no queremos que se corte:

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

Este comando agrega una regla al firewall, que dice:

  • -A: Anexe la regla a la tabla de reglas del firewall. Es decir, agréguelo a la parte inferior.
  • ENTRADA: Esta es una regla sobre las conexiones entrantes.
  • -m conntrack: Las reglas de firewall actúan sobre el tráfico de red (paquetes) que coinciden con los criterios de la regla. El -m causas de parámetros iptables para utilizar módulos adicionales de coincidencia de paquetes, en este caso, el llamado conntrack funciona con las capacidades de seguimiento de conexión de red del kernel.
  • –cstate ESTABLECIDO,RELACIONADO: Especifica el tipo de conexión a la que se aplicará la regla, es decir, conexiones ESTABLECIDAS y RELACIONADAS. Una conexión establecida es aquella que ya está en progreso. Una conexión relacionada es aquella que se realiza debido a una acción de una conexión establecida. Tal vez alguien que está conectado quiere descargar un archivo; eso podría suceder a través de una nueva conexión iniciada por el host.
  • -j ACEPTAR: Si el tráfico coincide con la regla, vaya al destino ACCEPT en el firewall. En otras palabras, el tráfico es aceptado y se le permite pasar a través del firewall.

Ahora podemos emitir el comando para cerrar el puerto:

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

Este comando agrega una regla al firewall, que dice:

  • -A: Agregue la regla a la tabla de reglas del firewall, es decir, agréguela a la parte inferior.
  • ENTRADA: Esta regla se trata de enconexiones venideros.
  • -p tcp: Esta regla se aplica al tráfico que utiliza el Protocolo de Control de Transmisión.
  • –dport 22: Esta regla se aplica específicamente al tráfico TCP que se dirige al puerto 22 (el puerto SSH).
  • -j RECHAZAR: Si el tráfico coincide con la regla, vaya al destino RECHAZAR en el firewall. Por lo tanto, si el tráfico es rechazado, no está permitido a través del firewall.

Debemos iniciar el netfilter-persistent demonio. Podemos hacerlo con este comando:

sudo systemctl start netfilter-persistent

Queremos netfilter-persistent para pasar por un ciclo de guardado y recarga, por lo que carga y controla el iptable reglas.

Escriba los siguientes comandos:

sudo netfilter-persistent save

sudo netfilter-persistent reload

Ahora ha instalado las utilidades y el puerto SSH está cerrado (con suerte, sin terminar la conexión de nadie). Ahora, es el momento de configurar el golpe secreto.

Configuración de knockd

Hay dos archivos que se editan para configurar knockd. El primero es el siguiente knockd archivo de configuración:

sudo gedit /etc/knockd.conf

El gedit El editor se abre con el knockd archivo de configuración cargado.

Editaremos este archivo para que se adapte a nuestras necesidades. Las secciones que nos interesan son “openSSH” y “closeSSH”. Las siguientes cuatro entradas se encuentran en cada sección:

  • secuencia: La secuencia de puertos a los que alguien debe acceder para abrir o cerrar el puerto 22. Los puertos predeterminados son 7000, 8000 y 9000 para abrirlo, y 9000, 8000 y 7000 para cerrarlo. Puede cambiarlos o agregar más puertos a la lista. Para nuestros propósitos, nos quedaremos con los valores predeterminados.
  • seq_timeout: El período de tiempo dentro del cual alguien tiene que acceder a los puertos para activarlo para abrirlo o cerrarlo.
  • mandar: El comando enviado al iptables firewall cuando se activa la acción de abrir o cerrar. Estos comandos agregan una regla al firewall (para abrir el puerto) o la sacan (para cerrar el puerto).
  • tcpflags: El tipo de paquete que cada puerto debe recibir en la secuencia secreta. Un paquete SYN (sincronizar) es el primero de un TCP solicitud de conexión, denominada apretón de manos de tres vías.
Te puede ser útil:  37 comandos importantes de Linux que debe conocer

La sección “openSSH” se puede leer como “se debe realizar una solicitud de conexión TCP a los puertos 7000, 8000 y 9000, en ese orden y en 5 segundos, para que el comando para abrir el puerto 22 se envíe al firewall”.

La sección “closeSSH” se puede leer como “se debe realizar una solicitud de conexión TCP a los puertos 9000, 8000 y 7000, en ese orden y en 5 segundos, para que el comando cierre el puerto 22 se envíe al firewall”.

Las reglas del cortafuegos

Las entradas de “comando” en las secciones openSSH y closeSSH siguen siendo las mismas, excepto por un parámetro. Así es como se componen:

  • -A: anexe la regla a la parte inferior de la lista de reglas del firewall (para el comando openSSH).
  • -D: elimine el comando de la lista de reglas del firewall (para el comando closeSSH).
  • ENTRADA: Esta regla se refiere al tráfico de red entrante.
  • -s %IP%: La dirección IP del dispositivo que solicita una conexión.
  • -p: Protocolo de red; en este caso, es TCP.
  • –dport: El puerto de destino; en nuestro ejemplo, es el puerto 22.
  • -j ACEPTAR: Vaya al destino de aceptación dentro del firewall. En otras palabras, deje que el paquete caiga a través del resto de las reglas sin actuar sobre él.

El archivo de configuración eliminado Edita

Las ediciones que haremos en el archivo están resaltadas en rojo a continuación:

Extendemos el “seq_timeout” a 15 segundos. Esto es generoso, pero si alguien está disparando manualmente en las solicitudes de conexión, es posible que necesite tanto tiempo.

En la sección “openSSH”, cambiamos el -A (anexar) en el comando a -I (insertar). Este comando inserta una nueva regla de firewall en el Arriba de la lista de reglas del cortafuegos. Si dejas el -A opción, él Anexa la lista de reglas del servidor de seguridad y la coloca en el fondo.

El tráfico entrante se prueba con cada regla de firewall de la lista de arriba hacia abajo. Ya tenemos una regla que cierra el puerto 22. Por lo tanto, si el tráfico entrante se prueba contra esa regla antes de ver la regla que permite el tráfico, se rechaza la conexión; si ve esta nueva regla primero, se permite la conexión.

El comando close quita la regla agregada por openSSH de las reglas de firewall. El tráfico SSH es manejado una vez más por la regla preexistente de “el puerto 22 está cerrado”.

Después de realizar estas ediciones, guarde el archivo de configuración.

Ediciones del archivo de control golpeado

El knockd el archivo de control es completamente más simple. Sin embargo, antes de sumergirnos y editar eso, necesitamos saber el nombre interno de nuestra conexión de red; para encontrarlo, escriba este comando:

ip addr

La conexión que utiliza esta máquina para investigar este artículo se llama enp0s3. Anote el nombre de su conexión.

El siguiente comando edita el knockd archivo de control:

sudo gedit /etc/default/knockd

Aquí está el knockd archivo en gedit.

Las pocas ediciones que necesitamos hacer están resaltadas en rojo:

Cambiamos la entrada “START_KNOCKD=” de 0 a 1.

También eliminamos el hash # desde el principio de la entrada “KNOCKD_OPTS=”, y reemplazó “eth1” con el nombre de nuestra conexión de red, enp0s3. Por supuesto, si su conexión de red es eth1, no lo cambiarás.

La prueba está en el pudín

Es hora de ver si esto funciona. Comenzaremos el knockd demonio con este comando:

sudo systemctrl start knockd

Ahora, saltaremos a otra máquina e intentaremos conectarnos. Instalamos el knockd herramienta en esa computadora, también, no porque queramos configurar el golpeo de puertos, sino porque el knockd El paquete proporciona otra herramienta denominada knock. Usaremos esta máquina para disparar en nuestra secuencia secreta y hacer el golpe por nosotros.

Utilice el siguiente comando para enviar la secuencia secreta de solicitudes de conexión a los puertos del equipo host que llama al puerto con la dirección IP 192.168.4.24:

knock 192.168.4.24 7000 8000 9000 -d 500

Esto indica knock para dirigir el equipo a la dirección IP 192.168.4.24 y activar una solicitud de conexión a los puertos 7000, 8000 y 9000, a su vez, con un -d (retraso) de 500 milisegundos entre ellos.

Un usuario llamado “dave” luego realiza una solicitud SSH a 192.168.4.24:

ssh dave@192.168.4.24

Se acepta su conexión, ingresa su contraseña y comienza su sesión remota. Su símbolo del sistema cambia de dave@nostromo Para dave@howtogeek. Para cerrar la sesión del equipo remoto, escribe:

exit

Su símbolo del sistema vuelve a su equipo local. Utiliza knock una vez más, y esta vez, apunta a los puertos en orden inverso para cerrar el puerto SSH en la computadora remota.

knock 192.168.4.24 9000 8000 7000 -d 500

Es cierto que esta no fue una sesión remota particularmente fructífera, pero demuestra la apertura y el cierre del puerto a través de golpes de puerto y cabe en una sola captura de pantalla.

Entonces, ¿cómo se veía esto desde el otro lado? El administrador del sistema en el host de knocking de puertos utiliza el siguiente comando para ver las nuevas entradas que llegan al registro del sistema:

tail -f /var/log/syslog

  • Verá tres entradas openSSH. Estos se elevan a medida que cada puerto es el objetivo de la utilidad de golpe remoto.
  • Cuando se cumplen las tres etapas de la secuencia de activación, una entrada que dice “SÉSAMO ABIERTO,” está registrado
  • El comando para insertar la regla en el iptables Se envía la lista de reglas. Permite el acceso a través de SSH en el puerto 22 desde la dirección IP específica de la PC que dio el golpe secreto correcto (192.168.4.23).
  • El usuario “dave” se conecta solo durante unos segundos y luego se desconecta.
  • Verá tres entradas closeSSH. Estos se elevan a medida que cada puerto es el objetivo de la utilidad de golpeo remoto: le dice al host de golpeo de puerto que cierre el puerto 22.
  • Después de que se activan las tres etapas, recibimos el mensaje “OPEN SESAME” nuevamente. El comando se envía al firewall para eliminar la regla. (¿Por qué no “CERRAR SÉSAMO” cuando está cerrando el puerto? ¿Quién sabe?)

Ahora la única regla en el iptables La lista de reglas con respecto al puerto 22 es la que escribimos al principio para cerrar ese puerto. Por lo tanto, el puerto 22 ahora está cerrado nuevamente.

Golpearlo en la cabeza

Ese es el truco de salón de port knocking. Trátalo como una diversión y no lo hagas en el mundo real. O, si es necesario, no confíe en él como su única forma de seguridad.

¿Qué tan útil te resultó el artículo?

¡Haz click en una estrella para valorar!

Valoración media / 5. Votos totales:

¡No hay votos hasta ahora! Sé el primero en valorar este artículo.

Utilizamos cookies para personalizar el contenido y los anuncios, para ofrecer funciones de redes sociales y para analizar nuestro tráfico. También compartimos información sobre su uso de nuestro sitio con nuestros socios de redes sociales, publicidad y análisis. View more
Cookies settings
Aceptar
Política de privacidad y cookies
Privacy & Cookies policy
Cookie name Active
El presente Política de Privacidad establece los términos en que Alternativa.click usa y protege la información que es proporcionada por sus usuarios al momento de utilizar su sitio web. Esta compañía está comprometida con la seguridad de los datos de sus usuarios. Cuando le pedimos llenar los campos de información personal con la cual usted pueda ser identificado, lo hacemos asegurando que sólo se empleará de acuerdo con los términos de este documento. Sin embargo esta Política de Privacidad puede cambiar con el tiempo o ser actualizada por lo que le recomendamos y enfatizamos revisar continuamente esta página para asegurarse que está de acuerdo con dichos cambios.

Información que es recogida

Nuestro sitio web podrá recoger información personal por ejemplo: Nombre,  información de contacto como  su dirección de correo electrónica e información demográfica. Así mismo cuando sea necesario podrá ser requerida información específica para procesar algún pedido o realizar una entrega o facturación.

Uso de la información recogida

Nuestro sitio web emplea la información con el fin de proporcionar el mejor servicio posible, particularmente para mantener un registro de usuarios, de pedidos en caso que aplique, y mejorar nuestros productos y servicios.  Es posible que sean enviados correos electrónicos periódicamente a través de nuestro sitio con ofertas especiales, nuevos productos y otra información publicitaria que consideremos relevante para usted o que pueda brindarle algún beneficio, estos correos electrónicos serán enviados a la dirección que usted proporcione y podrán ser cancelados en cualquier momento. Alternativa.click está altamente comprometido para cumplir con el compromiso de mantener su información segura. Usamos los sistemas más avanzados y los actualizamos constantemente para asegurarnos que no exista ningún acceso no autorizado.

Cookies

Una cookie se refiere a un fichero que es enviado con la finalidad de solicitar permiso para almacenarse en su ordenador, al aceptar dicho fichero se crea y la cookie sirve entonces para tener información respecto al tráfico web, y también facilita las futuras visitas a una web recurrente. Otra función que tienen las cookies es que con ellas las web pueden reconocerte individualmente y por tanto brindarte el mejor servicio personalizado de su web. Nuestro sitio web emplea las cookies para poder identificar las páginas que son visitadas y su frecuencia. Esta información es empleada únicamente para análisis estadístico y después la información se elimina de forma permanente. Usted puede eliminar las cookies en cualquier momento desde su ordenador. Sin embargo las cookies ayudan a proporcionar un mejor servicio de los sitios web, estás no dan acceso a información de su ordenador ni de usted, a menos de que usted así lo quiera y la proporcione directamente. Usted puede aceptar o negar el uso de cookies, sin embargo la mayoría de navegadores aceptan cookies automáticamente pues sirve para tener un mejor servicio web. También usted puede cambiar la configuración de su ordenador para declinar las cookies. Si se declinan es posible que no pueda utilizar algunos de nuestros servicios.

Enlaces a Terceros

Este sitio web pudiera contener en laces a otros sitios que pudieran ser de su interés. Una vez que usted de clic en estos enlaces y abandone nuestra página, ya no tenemos control sobre al sitio al que es redirigido y por lo tanto no somos responsables de los términos o privacidad ni de la protección de sus datos en esos otros sitios terceros. Dichos sitios están sujetos a sus propias políticas de privacidad por lo cual es recomendable que los consulte para confirmar que usted está de acuerdo con estas. Control de su información personal En cualquier momento usted puede restringir la recopilación o el uso de la información personal que es proporcionada a nuestro sitio web.  Cada vez que se le solicite rellenar un formulario, como el de alta de usuario, puede marcar o desmarcar la opción de recibir información por correo electrónico.  En caso de que haya marcado la opción de recibir nuestro boletín o publicidad usted puede cancelarla en cualquier momento. Esta compañía no venderá, cederá ni distribuirá la información personal que es recopilada sin su consentimiento, salvo que sea requerido por un juez con un orden judicial. Alternativa.click Se reserva el derecho de cambiar los términos de la presente Política de Privacidad en cualquier momento.
Save settings
Cookies settings