domingo, 22 de mayo de 2011

Port Knocking (Golpeo o toque de puertos)

En redes de computadores, se refiere al golpeo de puertos es un método para abrir externamente los puertos en un servidor de seguridad mediante la generación de un intento de conexión en un conjunto de pre-especificados los puertos cerrados. Una vez que la secuencia correcta de los intentos de conexión se recibe, las reglas del firewall son modificadas dinámicamente para permitir al host que envió a los intentos de conexión para conectar a través del puerto específico (s). Una variante denominada Single Packet Autorización existe, donde un solo 'golpe' que se necesita, que consiste en un cifrado de paquetes.
Esto se implementa normalmente mediante la configuración de un demonio para ver el archivo de registro de servidor de seguridad para dichos intentos de conexión a continuación, modifique la configuración del cortafuego en consecuencia. También se puede realizar mediante un proceso de examen de los paquetes en un nivel superior (con interfaces de captura de paquetes, tales como pcap), permitiendo el uso de los ya "abrir" los puertos TCP a utilizar dentro de la secuencia de golpes.
 La complejidad de los golpes pueden ser desde una simple lista ordenada (por ejemplo, el puerto TCP 1000, el puerto TCP 2000, el puerto UDP 3000) a un complejo que depende del tiempo, hash cifrado de código basado en IP y otros factores de base.
Un demonio portknock en la máquina servidor de seguridad detecta paquetes en ciertos puertos (ya sea a través del registro de servidor de seguridad o por la captura de paquetes). El usuario del cliente que lleve consigo una utilidad adicional, que podría ser tan simple como netcat o un programa de ping modificado o tan complicado como un hash completo generador, y el uso que antes de que se trataba de conectarse a la máquina de la forma habitual

BENEFICIOS DEL GOLPEO DE PUERTO

Tenga en cuenta que, si un atacante externo no conocía la secuencia de golpeo de puertos, incluso el más simple de las secuencias que requieren un esfuerzo masivo de la fuerza bruta para ser descubierto. A tres golpes simples TCP secuencia (por ejemplo, el puerto 1000, 2000, 3000) se requiere que un atacante sin el conocimiento previo de la secuencia para poner a prueba todas las combinaciones de los tres puertos en el rango 1-65535, y luego de escanear cada puerto en el medio para ver si algo se había abierto. Como un sistema de estado, el puerto no se abrió hasta después de la secuencia correcta de tres dígitos se habían recibido en orden, sin otros paquetes en el medio.
Eso equivale a un máximo de 65536 3 paquetes con el fin de obtener y detectar una exitosa apertura única, en el peor de los casos escenario. Eso es 281.474.976.710.656 o más de 281 billones de paquetes. En promedio, un intento tomaría aproximadamente 9.2 trillones de paquetes para abrir con éxito una, sencillo de tres sólo dominó el puerto TCP solo por la fuerza bruta. Esto se hace aún más práctico cuando intento llamar limitante se utiliza para detener los ataques de fuerza bruta, más y más complejas secuencias se utilizan, y resúmenes criptográficos se utilizan como parte de los golpes.


ESQUEMA DE GOLPEO DE PUERTOS EN 4 SENCILLOS PASOS


 

el paso 1 (A) del cliente no puede conectarse a una aplicación escuchando en puerto n, (B) cliente no puede establecer la conexión a cualquier puerto

 

paso 2 | (1,2,3,4) cliente se conecta a un conjunto bien definido de los puertos en una secuencia que contiene un mensaje cifrado mediante el envío de paquetes SYN, el cliente tiene un conocimiento a priori de los golpes demonio de puerto y de su configuración, pero recibe ningún reconocimiento durante esta fase debido a las reglas del firewall se oponen a cualquier respuesta




paso 3 | (A) proceso de servidor (un golpe demonio de puerto) intercepta los intentos de conexión e interpreta (descifra y decodifica) como compuesto de un auténtico "golpe de puerto"; servidor lleva a cabo tareas específicas en función del contenido de golpeo de puertos, como la apertura del puerto n al cliente



paso 4 | (A) cliente se conecta al puerto n y la aplicación regular de mecanismo con autenticación

Estas imágenes fueron tomadas de http://www.portknocking.org/

Para la instalación del PORT KNOKING utilizaremos usaremos  sistema operativo DEBIAN como cliente del PORT KNOKING y atacaremos a un servidor con sistema operativo CENTOS con servidor  de DNS, DHCP ,SERVIDOR SSH, SAMBA ,FTP, APACHE.

1)    Instalaremos  EL PAQUETE del PORT KNOKIN de los repositorios oficiales con el siguiente comando.
         apt-get install knockd 

 

2)    Configuraremos el archivo
etc/default/knockd

 Habilitando el knockd (cambia el 0 por un 1) y configurando la interface de red por la cual escucharemos los “toques
 


El Knockd es el servidor, que se ejecutara en el ordenador que queremos que este escuchando  y ejecute los comandos en función de la secuencia que mandemos. Aquí hay algunas opciones de comando que se pueden ejecutar:

 -i, --interface <int> La interfaz en la que escuchara, por defecto eth0
 -d, --daemon Si lo queremos corres en modo demonio.
 -c, --config <file> El fichero de configuración, por defecto/etc/knock/.etc
-D, --debug Mensajes de debugging..
-v, --verbose Una salida con más información.
         -V, --versión Muestra la versión.
-h, --help Ayuda.


Una vez hecho esto, vamos a configurar nuestras reglas de Port Knocking editando el archivo/etc/knockd.conf, es bastante simple de configurar, solo debemos cambiar la secuencia de puertos (predecibles para el articulo, pero deberías escoger puertos por encima del 5000 que no estén muy cerca el uno del otro y un time out mas alto), el tiempo entre la conexión de cada uno, la bandera que utilizaran y el comando a ejecutar si todas las anteriores reglas se cumplen.

 

 

Guardamos la configuración anterior  y reiniciamos el servicio knockd:




Para conectarnos e intentar abrir los puertos ejecutamos el siguiente comando
Ahora corremos el knockd en el host en el que queremos ejecutar comandos: knockd -i eth0 -v.
Después ya solo falta utilizar el knock, es decir el llamador cuando queramos ejecutar algo. Desde el Cliente: 
 


# /usr/sbin/knock -v 192.168.1.5   16000 17000 18000

Para ejecutarlo desde el servidor ejecutamos el siguiente comando:

#./knockd -v
#running command: /sbin/iptables -I INPUT -s 192.168.1.3 -p tcp --dport 21 -j ACCPET

Referencia: CIBERGRAFIAS



1 comentario:

  1. Es un exelente restauriante con una rica comida y la atención no es de criticar mucho, igual entiendo la ocupación y el trabajo que generan los grandes restaurante.Algo curioso,innovador y
    difente que he visto son estos nuevos sistemas de Localizadores de Meseros es una forma eficas para una buena atención que dara mayores ventas.

    ResponderEliminar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Grants For Single Moms