Configurar un golpeo de puertos con ConfigServer Security & Firewall (CSF) es realmente facil
Para explicar que es Golpeo de puertos nada mejor explicado que wikipedia
<
h4 style=”padding-left: 30px;”>“El golpeo de puertos (del inglés port knocking) es un mecanismo para abrir puertos externamente en un firewall mediante una secuencia preestablecida de intentos de conexión a puertos que se encuentran cerrados. Una vez que el firewall recibe una secuencia de conexión correcta, sus reglas son modificadas para permitir al host que realizó los intentos conectarse a un puerto específico.
<
h4 style=”padding-left: 30px;”>El propósito principal del golpeo de puertos es prevenir un escanéo de puertos por parte de un atacante que busca posibles servicios vulnerables. Como los mismos solo se abren ante un golpeo de puertos correcto. Normalmente los puertos donde se brindan los servicios se muestran aparentemente cerrados.”
Suponiendo que ya instalaste CSF y ya tienes funcionando el firewall ahora debes editar la configuración, sino acá tienes una guía Instalar y configurar ConfigServer Security & Firewall (CSF).
En el servidor haces:
#Abres el archivo de configuración sudo nano /etc/csf/csf.conf #Pasas el firewall a modo debug #Cambiando TESTING = "0" #por TESTING = "1" #Guardas, sales y luego haces sudo csf -r #Volves a entrar sudo nano /etc/csf/csf.conf #Buscas la linea que tiene el valor PORTKNOCKING #No recuerdo los datos que trae por defecto #Suponiendo que tienes ssh en el puerto 22 #A modo de ejemplo lo dejamos PORTKNOCKING = "22;TCP;30;7000;8000;9000" #Guardas y sales y luego reinicias el firwall sudo csf -r
Abres una nueva consola en tu pc local (EN LOCAL no en el server) y probas entrar por ssh, te debería fallar.
Los puertos a los que debes llamar son a los puertos 7000,8000 y 9000 en ese orden, obviamente tu puede elegir los puertos que quieras y la cantidad de puertos que quieras, pero ojo, cuantos mas puertos elijas mas va a demorar la conexión, lo aconsejable es elegir otros puertos y que no estén en orden.
Para llamar a estos puertos creas el siguiente archivo:
Tambien en local hacemos lo siguiente
Si tu ssh solo pide contraseña
sudo nano /usr/bin/knock #Alli dentro pegas KNOCK='7000 8000 9000' HOST='example.com' PORT='22' USER='root' echo 'Conectando...' for x in $KNOCK ; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x $HOST &gt; /dev/null ; done ssh -p $PORT $USER@$HOST #Si los puertos que configuraste en el firewall no son #7000 8000 y 9000 en KNOCK colocas los que pusiste tu #En HOST colocas la ip o tu dominio #En PORT pones el puerto que tengas ssh #En USER colocas tu nombre de usuario del servidor
Por el contrario si a ssh tu ingresas con un archivo key en lugar de lo anterior haces lo siguiente:
sudo nano /usr/bin/knock #Alli dentro pegas KNOCK='7000 8000 9000' HOST='example.com' PORT='22' KEY='/home/tu/.ssh/rsa.key' USER='root' echo 'Conectando...' for x in $KNOCK ; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x $HOST &gt; /dev/null ; done ssh -p $PORT -i $KEY $USER@$HOST #Si los puertos que configuraste en el firewall no son #7000 8000 y 9000 en KNOCK colocas los que pusiste tu #En HOST colocas la ip o tu dominio #En PORT pones el puerto que tengas ssh #En KEY pones la ruta a tu key #En USER colocas
En ambos casos:
#Guardas, sales y luego haces sudo chmod +x /usr/bin/knock
En el servidor hacemos lo siguiente:
#Reinicias por las dudas así el modo #depuración te da 5 minutos mas sudo csf -r
Ahora en Local haces lo siguiente:
#En consola escribes knock y presionas enter knock #Te deberia aparecer Conectando... #Luego de demorar un poquito deberia abrirte la sesion ssh Linux srv01 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Dec 26 18:42:49 2017 from XXX.XXX.XXX.XXX root@example.com:~$
Si todo funciono correctamente ahora debes sacar al firewall de modo debug, para eso en el servidor haces lo siguiente:
sudo nano /etc/csf/csf.conf #Cambias TESTING = "1" #por TESTING = "0" #Guardas, sales y luego csf -r
Todo Listo, ya tienes otro mecanismo mas de seguridad.
Administrador de Sistemas, Programador, Docente y ahora resulta que también Blogger (peor es ser tictoker). Más de 20 años de experiencia en computación atendiendo nabos y resolviendo problemas que sino fuera por estos nabos no habrían ocurrido en primer lugar. Escribo más que nada sobre tecnología y herramientas en general además de algunos artículos con opiniones tan subjetivas como irrelevantes, así que si no te gustan mejor madura.