Protege tu servidor con CSF y IPTables

Social

Queda claro que cuando contratas un servidor, un VPS, o pones una maquina visible en Internet, es totalmente necesario protegerla frente ataques y accesos no deseados.
Para ello, es imprescindible un Firewall. GNU/Linux utiliza el famoso software IPTABLES, también muy usado en otros dispositivos como routers, dada su eficacia y simplicidad.
Pero para un usuario o administrador que lleva mil temas en la cabeza, no es fácil recordad la sintaxis de Iptables, así que existen herramientas que nos facilitan mucho la vida. Yo, por ejemplo, uso CSF.

Es un software muy simple que recoge toda la configuración en algunos archivos, y luego crea las reglas con Iptables en nuestro equipo de manera automática, incluso pudiendo habilitar una interfaz gráfica, pese a que no os lo recomiendo.

Instalación

Para utilizarlo, lo primero es descargar la ultima versión de su sitio web, y para ello usamos wget:

wget https://download.configserver.com/csf.tgz

Ahora lo descomprimimos:

tar -xzf csf.tgz

Entramos en la carpeta que acaba de crear, y ejecutamos la instalación:

sh csf/install.sh

Al acabar, debería mostraros el siguiente mensaje:

Installation Completed

Podemos comprobarlo con el siguiente comando:

perl /usr/local/csf/bin/csftest.pl

Y deberiais tener este resultado:

RESULT: csf should function on this server

Si es así, ya tenemos CSF correctamente instalado.

Configuración

Lo primero que recomiendo hacer antes de hacer modificaciones y arrancar el firewall, es agregar tu IP a la Whitelist, por si te equivocas en bloquear algún puerto, no te deje fuera.
Para ello, solo tenemos que agregar las IP’s que queramos, una por linea, en el archivo /etc/csf/csf.allow

nano /etc/csf/csf.allow

Ahora, podemos ir al archivo de configuración y modificar lo que necesitemos para adaptarlo a nuestro servidor.

nano /etc/csf/csf.conf

Aquí veremos muchos parámetros, pero lo más relevante, son los puertos y el modo testing.

La primera opción que vemos es TESTING = “1”. Si lo dejamos así, pese que arranquemos el servidor, no se aplicaran los cambios. Debemos ponerlo a 0 cuando tengamos toda la configuración hecha.
Para testear la configuración, puedes usar la opción TESTING_INTERVAL = “”, para probar la configuración tantos minutos como le indiquemos, antes de deshacerla.

Ahora veremos las opciones por defecto para permitir puertos tanto en TCP o en UDP. En el archivo se incluyen de esta manera, que podemos modificar fácilmente añadiendo o quitando los puertos:

TCP_IN = “20,21,22,25,53,80,110,143,443,465,587,993,995”
TCP_OUT = “20,21,22,25,53,80,110,113,443”
UDP_IN = “20,21,53”
UDP_OUT = “20,21,53,113,123”

Una vez hayamos modificado todos los parámetros, podemos arrancar o reiniciar el servicio con este comando:

csf -r

Os recomiendo miraros muy bien toda la configuración, ya que tiene muchas posibilidades.

Ahora, podéis comprobar que los puertos están abiertos o cerrados tal y como habéis configurado con nmap (recuerda hacerlo desde una IP que no tengas en la whitelist).

sudo nmap -sT -O  IP_DE_TU_SERVIDOR

¡Espero que os haya servido!

Xavi Gonzalez Autor

Técnico en explotación de sistemas informáticos y Técnico Superior de Administración de sistemas en red y de Desarrollo de Aplicaciones Web. Actualmente como Responsable técnico y desarrollador web en Egardata Informàtica, en Terrassa.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*