
Cómo instalar y configurar
knockd, un demonio de port-knocking
El port-knocking una técnica de seguridad muy peculiar, tan sencilla como eficaz. Sirve para no dejar expuesto un puerto ante el público general, evitando que sea vulnerable ante muchos ataques e incluso ante simples escaneos de puertos.
El uso más habitual es ocultar el puerto del servidor SSH, y para eso lo vamos a usar en la receta. La idea es que la máquina aparentemente no tiene ningún puerto abierto (de eso se encarga el firewall) pero al realizar intentos de conexión a ciertos puertos (cerrados), el demonio abre temporalmente el puerto “oculto” (con ayuda del firewall) y el cliente puede entonces realizar la conexión.
El nombre de la técnica “knock” es por el sonido que hacen los nudillos al golpear una puerta (al menos para los ingleses). Así que es el equivalente a las claves de golpecitos que das en una puerta para que sepan que eres tú…
/etc/default/knockd
[options]
logfile = /var/log/knockd.log
[opencloseSSH]
sequence = 2222,3333,4444
seq_timeout = 15
tcpflags = syn,ack
start_command = /usr/sbin/iptables -I INPUT 1 -s IP -p tcp —syn —dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s IP -p tcp —syn —dport 22 -j ACCEPT
Si te fijas, el puerto se abre sólo para la IP que “marca” la secuencia. El programa permite cosas más sofisticadas como:
El cliente necesita un programa que realice intentos de conexión a los puertos de la secuencia y después intente abrir la sesión SSH. Lo más fácil es:
$ knock server.example.org 2222 3333 4444; ssh usuario@server.example.org
Lo más cómodo es hacerte un scriptillo, que tendrás que poner a buen recaudo si tiene la secuencia en claro.
Aunque parezca una medida un tanto paranoica, lo cierto es que es tan sencillo de utilizar que merece la pena, aunque sea sólo para ahorrarte los intentos de intrusión SSH con ataques por fuerza bruta.
Comentarios
Duda con port-knocking
Buenas, he estado leyendo su receta y me parece muy interesante pero la duda me aparece con lo siguiente:
Actualmente dispongo de varias maquinas con ubuntu y centos que administro via ssh con el cliente putty (windows)
¿Es posible con este cliente hacer previamente el knock con la secuencia y luego abrir ssh?
Muchas gracias.
Tendrías que buscar un
Tendrías que buscar un port-knocker para Windows y ejecutarlo "mu rápido", me imagino.
Que yo sepa Putty solo es un cliente de SSH y Telnet, no tiene nada de port-knocking. Hay un port knocker para Windows que se llama KnockKnock, pero vamos. Yo me pensaría eso de andar haciendo estas cosas con ese SSOO...
Uda al catchap!
...por lo menos a los que estemos registrados!!
------------------------------------------------------------
MiniHOW-TO: destroy your hard disk
# dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------------------------
Talibán ortográfico...
SSOO -> Sistemas Operativos...
PD: ¿Por qué tengo que escribir un captcha si estoy registrado?... ¡¡el de ascii art es un infierno!!
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1