Abriendo puertos por combinación

Hace ya unos cuantos días publiqué un post que trataba de cómo activar SSH en dos pasos para aumentar la seguridad de inicio de sesión. Este tipo de seguridad ofrece una capa extra al típico inicio de sesión de login/password, ya que incluye el factor móvil y temporal. Al más puro estilo Gmail en 2 pasos. Pues bien, esta combinación es efectiva, pero nada impide a los bot's que hay por Internet estar intentando averiguar el usuario para acceder. Aunque estemos más seguros de que no lo van a conseguir, miles de intentos diarios nos ensucian los log's y hace que sea difíciles de controlar. Para ello, hoy vamos a ver cómo programar una combinación de puertos secreta que habilite el puerto SSH cuando nosotros lo requiramos y sino que esté cerrado.
La idea general de esto es, enviamos un ping al puerto X, Y y Z del equipo y éste nos abre el puerto 22 y si lo volvemos a hacer, automáticamente lo cierra, empleando iptables para ello. Esta técnica se conoce como port knocking y realmente se podría englobar en seguridad por ofuscación.
Vamos a comenzar por instalar el software necesario, knockd, para luego preparar el sistema.
shell> apt-get install knockd
Ahora vamos a permitir que el software arranque cuando se inicia el equipo. Para ello editamos el fichero de configuración por defecto, /etc/default/knockd (necesario en Debian/Ubuntu).
START_KNOCKD=1
Ya sólo nos queda configurar knockd para establecer la secuencia que apertura y cierre del puerto SSH. Para ello, editamos el fichero de configuración general, /etc/knockd.conf y lo dejamos tal que así.
Personalmente no me gusta dejar la combinación de puertos por defecto, así que las cambiamos. Los puertos elegidos ya quedan a vuestro gusto.
[options]
  UseSyslog

[openSSH]
  sequence    = 7070,8080,9090
  seq_timeout = 5
  command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j DROP
  tcpflags    = syn

[closeSSH]
  sequence    = 9090,8080,7070
  seq_timeout = 5
  command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j DROP
  tcpflags    = syn

Y finalmente arrancamos el nuevo servicio.
shell> /etc/init.d/knockd start
Starting Port-knock daemon: knockd.
Cada vez que deseemos acceder al equipo, simplemente tendremos que emplear nmap antes para habilitar la secuencia mágica de acceso. En nuestro caso,
shell> nmap -sT -p7070,8080,9090 192.168.1.150
Y tras ello, el puerto SSH quedará abierto. Al finalizar el trabajo, lo vamos a dejar cerrado. Para ello,
shell> nmap -sT -p9090,8080,7070 192.168.1.150
Por cierto, del lado del servidor SSH que estamos abriendo veremos el "ábrete sésamo",
knockd: 192.168.1.33: openSSH: Stage 1
knockd: 192.168.1.33: closeSSH: Stage 2
knockd: 192.168.1.33: closeSSH: Stage 3
knockd: 192.168.1.33: closeSSH: OPEN SESAME
knockd: closeSSH: running command: /sbin/iptables -D INPUT -s 192.168.1.33...


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios