Implemnetación de Port Knocking

¿Que es Port Knocking?

Es un método que consiste en intentos de conexión a una secuencia de puertos preestablecida para habilitar el uso de otro puerto que queramos proteger, dicho puerto se mantendrá cerrado hasta que el firewall reciba la secuencia correcta de puertos, de no ser la secuencia correcta, el puerto se mantendrá cerrado. También es necesaria otra secuencia de puertos para cerrar dicho puerto.

Implementación:

Para implementar dicho método existen programas que facilitan el uso del mismo, en nuestro caso utilizaremos Knockd.

Necesitaremos también tener instalado Iptables.

Para instalar Knockd ejecutamos la siguiente línea:

apt install knockd

Una vez instalado nos dirigimos al archivo "/etc/default/knockd" y cambiamos la línea "START_KNOCKD=0" a "START_KNOCKD=1" y descomentamos la línea "KNOCKD_OPTS="-i eth1" y ahí le ingresamos la interfáz de red sobre la cuál queremos que trabaje.

Una vez configurado esto, nos dirigimos al archivo "/etc/knockd.conf" y lo configuramos de la siguiente manera:

Esto hará que al llamar a la secuencia establecida en "openSSH" se ejecute el comando para el puerto especificado (45612) que habilitará el puerto desde el firewall. De igual forma sucede si se llama a la secuencia de puertos establecidos en "closeSSH", se ejecuta la línea que cerrará el puerto desde el firewall.

Después de tener todo configurado procedemos a correr el servicio con el comando:

service knockd start

Si se tiene acceso a la maquina física ejecutamos la siguiente línea para que el firewall cierre ese puerto (en nuestro caso el 45612):

iptables -I INPUT -p tcp --dport 45612 -j REJECT

De no tener acceso a la maquina física y hacerlo por ssh, se recomineda habilitar otro puerto para ssh para poder realizar el paso anterior sin quedarse sin conexión a la maquina.

Luego volvemos a habilitar desde la maquina el puerto con la siguiente línea:

iptables -I INPUT -p tcp --dport 45612 -j ACCEPT

Con el comando "iptables -S" podremos ver una lista de las reglas del firewall:

Si queremos monitorear la actividad de knockd sobre nuestra interfaz,desde el usuario root ejecutamos:

knockd -i eno1 -v

Para abrir el puerto 45612 y poder entrar por ssh ejecutamos el siguiente comando desde otra maquina con knockd instalado:

knock "Ip del servidor" "Secuencia de puertos establecidos en openSSH" 

De igual forma para cerrar el puerto:

knock "Ip del servidor" "Secuencia de puertos establecidos en closeSSH" 

Referencias:

[[https://echaleunvistazo.wordpress.com/2017/01/04/port-knocking-instalacion-y-configuracion/]]