systemadmin.es > Seguridad > knockd: Abrir y cerrar puertos mediante secuencias de conexión

knockd: Abrir y cerrar puertos mediante secuencias de conexión

Mediante knockd podemos establecer que se ejecuten comandos, por ejemplo abrir puertos o levantar daemons al recibir una determinada secuencia de acceso.

Lo podemos instalar desde código fuente mediante:

cd /usr/local/src/
wget http://www.zeroflux.org/proj/knock/files/knock-0.6.tar.gz
tar xzf knock-0.6.tar.gz 
cd knock-0.6
./configure && make && make install

En el fichero /usr/local/etc/knockd.conf tenemos un ejemplo de configuración:

[options]
	logfile = /var/log/knockd.log

[openSSH]
	sequence    = 7000
	seq_timeout = 5
	command     = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
	tcpflags    = syn

[closeSSH]
	sequence    = 9000,8000,7000
	seq_timeout = 5
	command     = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
	tcpflags    = syn

Podemos ver que mediante un único hit en el puerto 7000 nos abrirá el puerto 22 añadiendo una regla. Mientras que mediante la secuencia 9000,8000 y 7000 volveremos a cerrar el puerto eliminando la regla anterior.

Para arrancar el daemon, una vez personalizados los comandos y secuencias, lo podmeos hacer con:

/usr/local/sbin/knockd -c /usr/local/etc/knockd.conf -i eth0 -d

Para realizar las secuencias, las podemos hacer mediante un simple telnet (si indicamos TCP syn) como en el caso anterior:

$ telnet 1.2.3.4 9000; telnet 1.2.3.4 8000; telnet 1.2.3.4 7000

En el fichero de log (/var/log/knockd.log en el ejemplo anterior) podremos ver cuando se completan las secuencias:

[2013-10-23 05:26] 88.2.48.227: openSSH: Stage 1
[2013-10-23 05:26] 88.2.48.227: openSSH: Stage 2
[2013-10-23 05:26] 88.2.48.227: openSSH: Stage 3
[2013-10-23 05:26] 88.2.48.227: openSSH: OPEN SESAME

O si se quedan a medias:

[2013-10-23 05:25] 88.2.48.227: openSSH: Stage 1
[2013-10-23 05:25] 88.2.48.227: openSSH: Stage 2
[2013-10-23 05:25] 88.2.48.227: openSSH: sequence timeout (stage 2)

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>