Cómo instalar el cortafuegos CSF en Debian 11
ConfigServer Firewall (CSF) es un cortafuegos para servidores Linux y sistemas BSD que permite controlar el tráfico de entrada y salida. Antes de entrar en detalles específicos sobre el CSF, vamos a entender qué es un cortafuegos y cómo funciona.
Un cortafuegos actúa como un escudo que protege al sistema de un ataque exterior. Algunos de ellos son los cortafuegos con estado, las pasarelas a nivel de circuito, los cortafuegos con filtro UDP/ICMP o los filtros de capa de aplicación.
El cortafuegos viene con un conjunto de reglas para filtrar el tráfico entrante y saliente. Y según el tipo de cortafuegos que utilices, decide si una IP puede acceder a la red o no. La lista de reglas se define para un sistema concreto, y el cortafuegos filtra el tráfico según las reglas.
ConfigServer Firewall (CSF) es uno de los cortafuegos de código abierto más utilizados en los servidores Linux. CSF viene con una lista de características que se pueden utilizar para configurar las reglas. Por lo tanto, es muy potente y fácil de usar al mismo tiempo.
Requisitos previos
Para instalar y configurar CSF en Debian 11, debes tener
- Un servidor que ejecute Debian 11 y su sistema debe estar conectado a Internet.
- Acceso root al servidor.
Actualizar tu sistema
Antes de instalar ConfigServer Firewall, debes actualizar tu sistema. Ejecuta el siguiente comando para actualizar tu sistema.
sudo apt update
Una vez completada la actualización, ejecuta los siguientes comandos para instalar las dependencias necesarias.
sudo apt install libio-socket-inet6-perl libsocket6-perl -y
sudo apt install sendmail dnsutils unzip libio-socket-ssl-perl -y
sudo apt install libcrypt-ssleay-perl git perl iptables libnet-libidn-perl -y
En caso de que tengas una versión anterior de CSF instalada en tu sistema, ejecuta el siguiente comando para desinstalarla primero. Como Debian 11 utiliza una nueva versión de Perl, la instalación de CSF puede causar conflictos con la instalación existente de CSF.
cd /etc/csf && sh uninstall.sh
Si estás utilizando otro script de configuración del cortafuegos, como UFW, deberías desactivarlo antes de continuar.
sudo ufw disable
Instalación del cortafuegos CSF en Debian 11
Ahora que has instalado todos los requisitos previos necesarios, vamos a descargar e instalar el cortafuegos CSF.
El repositorio de Debian 11 no contiene paquetes de CSF. Por lo tanto, tienes que descargar la última versión del cortafuegos ConfigServer desde su sitio oficial.
Para ello, ejecuta el siguiente comando.
wget http://download.configserver.com/csf.tgz
Ahora arruina el siguiente comando para extraer el archivo descargado.
sudo tar -xvzf csf.tgz
Una vez extraído el archivo, instala el CSF con el siguiente comando.
cd csf && sh install.sh
Una vez completada la instalación, el cortafuegos debería estar ahora instalado. Para iniciar el cortafuegos CSF, ejecuta el siguiente comando.
sudo systemctl start csf
Ejecuta el siguiente comando para asegurarte de que todo está bien.
perl /usr/local/csf/bin/csftest.pl
Obtendrás una salida como la que se muestra a continuación.Esta salida confirma que CSF está funcionando.
Para que el cortafuegos CSF se inicie en el arranque, ejecuta el siguiente comando.
sudo systemctl enable csf
Puedes comprobar el estado de CSF con el siguiente comando.
sudo systemctl status csf
Esta salida confirma que el CSF está en funcionamiento. Ahora vamos a configurar este cortafuegos.
Ejemplo de salida:
Configurar el cortafuegos CSF en Debian 11
Una vez que hayas instalado el cortafuegos CSF, se activarán las reglas por defecto que vienen con un archivo de configuración /etc/csf/csf.conf
Debes revisar este archivo de configuración para asegurarte de que está configurado según tus necesidades. En este archivo, puedes ver todas las reglas por defecto que están activas desde la perspectiva de tu sistema. Echemos un vistazo a algunas de ellas.
sudo nano /etc/csf/csf.conf
Cuanto menor sea el número de puertos abiertos, más seguro será el sistema. Pero siempre debes tener abiertos algunos puertos comunes. Puedes ver todos los puertos que están abiertos por defecto, en el archivo csf.conf como se muestra a continuación.
Como puedes ver en el archivo de configuración, si quieres permitir/bloquear algún puerto, debes añadir/eliminar el número de puerto en la lista respectivamente.
Por ejemplo, si quieres bloquear el puerto 80, debes eliminarlo de la lista, como se muestra a continuación.
Si utilizas IPv6, también debes actualizarlo en el archivo de configuración, ya que la mayoría de los ataques actuales se realizan a través del protocolo IPv6. Debes configurar TCP6_IN, TCP6_OUT de forma similar a lo que hemos configurado para los puertos IPv4 anteriormente.
Ejemplo de salida:
Ahora vamos a configurar los ajustes de CONNLIMIT. CONNLIMIT es una función de seguridad de CSF que te permite limitar el número de concurrencias que puede tener una conexión remota en un puerto concreto. Esto ayuda a mitigar el riesgo de ataques DoS/DDoS.
Por ejemplo, si quieres limitar cualquier IP con no más de 3 conexiones concurrentes, entonces debes actualizarla como se muestra a continuación. Esta configuración permitiría sólo 3 conexiones concurrentes en el puerto 22 y 3 conexiones concurrentes en el puerto 443.
A continuación, vamos a configurar los ajustes de PORTFLOOD. Esta opción nos permite configurar el número máximo de solicitudes de conexión permitidas en un puerto dentro de un plazo determinado.
Por ejemplo, si quieres bloquear cualquier IP si se establecen más de 3 conexiones en el puerto 443 utilizando el protocolo TCP en un plazo de 60 segundos, debes actualizarlo como se muestra a continuación. El bloqueo se eliminará automáticamente una vez que haya transcurrido el plazo de 60 segundos desde la última conexión.
La función más básica de cualquier cortafuegos es bloquear y permitir direcciones IP. Puedes añadir las direcciones IP que quieras bloquear añadiéndolas manualmente en el archivo csf.deny o puedes añadir todo un rango de IPs en el archivo csf.deny.
Por ejemplo, puedes bloquear todo el rango de IPs 192.168.1.0/24.
O
Puedes bloquear una sola IP de 192.168.2.0 añadiéndola en el archivo csf.deny como se muestra a continuación.
Abre el archivo csf.deny con el siguiente comando.
sudo nano /etc/csf/csf.deny
Añade las siguientes líneas al final del archivo. Una línea cada vez.
192.168.2.0
192.168.1.0/24
Ejemplo de salida:
Cuando hayas terminado, guarda y cierra el archivo pulsando CTRL+X, Y y Enter.
Al contrario que el archivo csf.deny, el archivo csf.allow se utiliza para excluir una IP o un rango de IPs de todos los filtros. Ten en cuenta que aunque ya hayas añadido una IP al archivo csf.deny, la dirección IP bloqueada podrá seguir accediendo a tu servidor si la añades en el archivo csf.allow.
sudo nano /etc/csf/csf.allow
CSF ofrece una gran variedad de opciones para configurar tu propio cortafuegos, lo que está fuera del alcance de este tutorial. Puedes consultar la documentación de ConfigServer sobre los ajustes y su funcionamiento.
Cuando termines de actualizar todos los ajustes necesarios, guarda y cierra el archivo csf.conf pulsando CTRL+X, Y y Enter.
CSF también ofrece la función de ignorar una dirección IP de cualquier filtro. A diferencia de permitir una dirección IP en el archivo csf.allow, no puedes ignorar una dirección IP si está incluida en el archivo csf.deny.
sudo nano /etc/csf/csf.ignore
Ahora que has configurado todos los ajustes en el archivo csf.conf, es el momento de actualizar el conjunto de reglas para aplicar los cambios.
Para ello, ejecuta el siguiente comando.
sudo csf -r
Una vez completada la ejecución del comando anterior, podrás ver un mensaje como el que se muestra en la siguiente captura de pantalla. Si no aparece ningún mensaje de error, ¡felicidades! La configuración del cortafuegos de tu servidor está ahora actualizada y lista para ser utilizada.
Conclusión
En este tutorial has aprendido a instalar ConfigServer Security & Firewall (CSF) en un servidor Debian 11. También has aprendido a crear reglas de cortafuegos, añadiendo IPs a las listas de permitidas y bloqueadas mediante los archivos de configuración de CSF.
Si te encuentras con algún problema, siempre puedes consultar la documentación de ConfigServer Firewall para obtener más información.