Port-knocking, una nueva táctica para la seguridad, por Andor

Hace tiempo se había hablado en Slashdot del port-knocking, una manera de elevar la seguridad aun más los servidores y hacer manejo remoto del firewall.

En que consiste? Muy sencillo, es como el santo y seña

Tu quedas con la novia, y para que sepa que eres tú, tocas en la puerta de du casa y…

-Pum … Pum… PumPumPum

(o eran 3 largos y dos cortos?)

(o eran 2 cortos, esperar, y 3 largos?)

El : Soy yo…

Ella : Qué vienes a buscar ?

El : A ti…

Ella : Y es tarde…

El : Por qué ?

Ella : Porque ahora soy yo la que quiere estar sin ti…

(OT: Quien diría que Pimpinela tiene 20 discos, eh? 😉 )

Y eso quiere decir que te has equivocado al golpear, o que llevas una mancha de huevo en la camisa.

Pues el Port-Knocking es algo parecido

Consiste en hacer intentos de conexión a una secuencia de puertos predefinida para que el sistema reconozca que eres tu, y, por ejemplo, te añada una tabla al iptables para darte acceso al ssh, o a la VPN o similar.

En una de las soluciones que implementan Port-Knocking, que es knockd hay un pequeño ejemplo para permitir el acceso al ssh:

[openSSH]

sequence = 7000,8000,9000

protocol = tcp

timeout = 15

command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp –dport 22 -j ACCEPT

Si haces una llamada (un intento de conexión cualquiera, por ejemplo con un telnet) al puerto 7000, duespés una al 8000 y acto seguido una al 9000, lanza un comando de iptables, y se abre el SSH para tu dirección IP.

Ya le vais viendo el intríngulis al tema? Pues luego podemos hacer a la inversa, añadiendo unas cuantas líneas más en el fichero de configuración:

[closeSSH]

sequence = 9000,8000,7000

protocol = tcp

timeout = 15

command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp –dport 22 -j ACCEPT

Una llamada al 9000, otra al 8000, otra al 7000, y “Pum, pum, adiós, me voy, así que echa el cerrojo”, y el puerto vuelve a estar cerrado, cerrado como antes.

Pues así de sencillo es todo

Una de las ventajas es que los puertos ni siquiera tienen que estar abiertos, ya que la aplicación escucha a nivel de enlace, y por lo tanto, si te hacen un escaneo de puertos, no encontrarán los puertos que utilizas para hacer las combinaciones mágicas.

En principio el diseño conceptual del Port-Knocking tenía como objetivo abrir y cerrar accesos y puertos, pero si se piensa un poquito, se puede utilizar para cosas más divertidas.

Lanzar procesos, backups, alertas, aplicaciones, reiniciar el equipo… todo depende de la imaginación y el arte de cada uno.

Ojo!! Ni se os ocurra poner llamadas a puertos consecutivos, o cercanos cuando implementeis esto. Procurad que sean puertos distantes, y no comunes, y no programar la llamada para que los puertos sean llamados en orden de mayor a menor o viceversa, sino pensaros una secuencia un poco aleatoria, ya que si no un simple escaneo “rutinario” de puertos, te puede hacer “saltar las alarmas”, los procesos, o las tablas del firewall, activando llamadas.

URLs:

knockd : http://www.zeroflux.org/knock/

knockd en slashdot : http://slashdot.org/article.pl?sid=04/04/14/1832222

Teoría del port-knocking [slashdot] : http://slashdot.org/article.pl?sid=04/02/05/1834228&tid=172

0 0 votos
Article Rating
Subscribe
Notify of
5 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
19 years ago

Una tarde me aburría y…

Bueno, no se, a lop mejor al interés general queda este artículo un poco lejos, pero si me echais una manita y me pedís alguna otra cosa, en plan de un tutorial para shell en OsX, o un tutorial de permisos (creo que tengo uno a medias), pues podemos echar un ojo a ver que se puede hacer 😀

Anónimo
Anónimo
19 years ago

Que va! lo que no mata engorda…
Es bueno esto de usar combinaciones de puertos…

Anónimo
Anónimo
19 years ago

A mi me interesa esto de Knock pero ya hay para mac??…me baje de la pagina http://www.zeroflux.org/knock/ el código fuente y no me compila….algun consejo para poder compilarlo???…Gracias…

Ah lo de los tutoriales de Shell y permisos a mi me gusta…ya me gustaria ver uno q aveces se necesita….

Anónimo
Anónimo
19 years ago

Asegúrate de que tienes libpcap (según sistemas libpcap-dev), porque es requerido por el software para que escuche las llamadas a puertos.

De todas maneras yo no lo he probado a compilar en Mac OSX, así que no te se decir si aun instalando libpcap va a funcionar, anyway, si alguien se ofrece voluntario a prestar su OSX (una shell remota me bastaría) intentaría compilarlo 😀

PD : libpcap son unas librerías de red que se utilizan para ‘esnifear’, o ‘escuchar’ las conexiones y los datos que se mueven a través de una conexión de red.

Anónimo
Anónimo
19 years ago

Que marco teorico se necesita para realizar una investigacion mas profesional sobre esta nueva tecnica??

5
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x