domingo, 5 de agosto de 2007

Es una tecnica que consiste en abrir conexiones en puertos cerrados por reglas de firewalls, modificando las reglas dinamicamente al recibir el servidor ciertos datagramas TCP con caracteristicas especiales y dirigidos a los puertos donde se debe hacer la autentificacion.

El objetivo fundamental por el cual se implementa el portknocking es para impedir que un usuario malintencionado pueda tener acceso a un puerto que haya sido detectado por un escaneo de puertos. La gestion de este software se realizar con un firewall especialmente configurado para analizar los datagramas entrantes al sistema, y verificar si tienen un secuencia valida para el portknock daemon.

Este nuevo sistema de seguridad es bastante util para proteger puertos donde se requiere un alto grado de proteccion de servicios. Brinda diferentes tipos de autentificacion basandose en la secuencia de los puertos donde este configurado. Las caracteristicas que dispone frente a su eficiencia de seguridad en redes, es debido a su sistema de cifrado de datos, lo hacen practicamente seguro ante la captura de trafico en una red.

Una de las principales razones por las que, aun no es considerado como una gran herramienta de seguridad, es por que su funcionamiento principal esta basado en la modificacion de reglas en el firewall y su inclusion en el kernel para poder gestionar de manera correcta y eficaz los procesos que dirija, ademas de las consideraciones practicas que implica tenerlo funcionando en un sistema que brinde un servicio.

Actualmente existen varias herramientas especializadas para implementar este sistema de seguridad en nuestros servidores, entre ellos:

PortKnockO, es un modulo para netfilter que se incorpora directamente en el kernel, funciona con un modelo SPA, para mas informacion remitirse a su README.

Webnocking, como bien dice su nombre, es una aplicacion con interfaz web, con facilidad de uso y mantencion, su critica se la lleva debido a que necesita de un servidor web con soporte PHP para su funcionamiento (lease LAMP).

KnockKnock, es una herramienta para sistemas Windows, de facil manejo y sumamente configurable, en su pagina web encontraran una gran cantidad de documentacion sobre uso.

La facilidad de instalacion y de uso de estas herramientas hacen que la implementacion de este sistema de seguridad sea algo realmente sencillo, brindan la posibilidad de una configuracion avanzada atravez del kernel del sistema y apoyo de seguridad a la autentificacion de nuestros usuarios.

Puesta en marcha:
# iptables -A INPUT -p tcp -m state --state NEW -m pknock
--knockports 3442,1335,3334 --name FTP -m tcp --dport 21 -j ACCEPT
Proceso de autentificacion:
$ telnet servidor9 3442 ; telnet servidor9 1335 ; telnet servidor9 3334
Conectado a servidor9.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 05:17. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 15 minutes of inactivity.
Usuario (servidor9:(none)):
Un saludo.

http://es.wikipedia.org/wiki/Golpeo_de_puertos
Port Knocking por Jonathan Barajas
Linux Journal: Port Knocking

2 comentarios :

  1. Federico dijo...

    Hola. Este artículo contiene errores conceptuales sobre lo que es Port Knocking. Para aclarar tus dudas podrías visitar el sitio portknocking.org.

    Por otro lado, PortKnockO no funciona como lo describís. Este módulo es una extensión de netfilter y se utiliza a través de iptables. El mismo implementa dos técnicas que no tienen nada que ver una con la otra. Una es Port Knocking y la otra es SPA.

    Por útlimo, cabe aclarar que Port Knocking no es un sistema de autenticación.

    Saludos.

  2. Miguel dijo...

    ijole ni que decir, este post es de hace un año, pero aun te agradesco el comentario.

    saludos