ConfigServer Firewall (CSF) es un Firewall para servidores Linux y sistemas BSD para controlar el tráfico entrante y saliente. Antes de entrar en detalles específicos sobre CSF, comprendamos qué es un cortafuegos y cómo funciona.
Un firewall actúa como un escudo que protege el sistema de un ataque externo. Algunos de ellos son cortafuegos con estado, puertas de enlace a nivel de circuito, cortafuegos de filtrado UDP/ICMP o filtros de capa de aplicación.
El firewall viene con un conjunto de reglas para filtrar el tráfico entrante y saliente. Y dependiendo de qué tipo de Firewall esté utilizando, decide si una IP puede acceder a la red o no. La lista de reglas se define para un sistema en particular y el firewall filtra el tráfico según las reglas.
ConfigServer Firewall (CSF) es uno de los firewalls de código abierto más utilizados en servidores Linux. CSF viene con una lista de funciones que se pueden usar para configurar las reglas. Por lo tanto, es muy potente y fácil de usar al mismo tiempo.
Requisitos
Para instalar y configurar CSF en Debian 11, debe tener:
- Un servidor que ejecute Debian 11 y su sistema deben estar conectados a Internet.
- Acceso raíz al servidor.
Actualizando su Sistema
Antes de instalar ConfigServer Firewall, debe actualizar su sistema. Ejecute el siguiente comando para actualizar su sistema.
sudo apt update
Una vez que se complete la actualización, ejecute los siguientes comandos para instalar las dependencias requeridas.
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 tenga una versión anterior de CSF instalada en su sistema, ejecute el siguiente comando para desinstalarlo primero. Como Debian 11 usa una nueva versión de Perl, la instalación de CSF puede causar conflictos con la instalación de CSF existente.
cd /etc/csf && sh uninstall.sh
Si está utilizando otro script de configuración de cortafuegos como UFW, debe desactivarlos antes de continuar.
sudo ufw disable
Instalando CSF Firewall en Debian 11
Ahora que ha instalado todos los requisitos previos necesarios, descarguemos e instalemos el cortafuegos CSF.
El repositorio de Debian 11 no contiene paquetes CSF. Por lo tanto, debe descargar la última versión del cortafuegos ConfigServer desde su sitio oficial.
Para hacer eso, emita el siguiente comando.
wget http://download.configserver.com/csf.tgz
Ahora ejecute el siguiente comando para extraer el archivo descargado.
sudo tar -xvzf csf.tgz
Una vez que haya extraído el archivo, instale CSF usando el siguiente comando.
cd csf && sh install.sh
Una vez completada la instalación, el cortafuegos debería estar instalado. Para iniciar el cortafuegos CSF, ejecute el siguiente comando.
sudo systemctl start csf
Ejecute el siguiente comando para asegurarse de que todo esté bien.
perl /usr/local/csf/bin/csftest.pl
Obtendrá una salida como se muestra a continuación. Este resultado confirma que CSF está funcionando.
Para permitir que el cortafuegos de CSF se inicie en el arranque, ejecute el siguiente comando.
sudo systemctl enable csf
Puede verificar el estado de CSF usando el siguiente comando.
sudo systemctl status csf
Esta salida confirma que CSF está funcionando. Ahora configuremos este cortafuegos.
Salida de muestra:
Configurar el cortafuegos CSF en Debian 11
Una vez que haya instalado el cortafuegos CSF, las reglas predeterminadas están activas y vienen con un archivo de configuración /etc/csf/csf.conf
Debe revisar este archivo de configuración para asegurarse de que esté configurado según sus necesidades. En este archivo, puede ver todas las reglas predeterminadas que están activas desde la perspectiva de su sistema. Echemos un vistazo más de cerca a algunos de ellos.
sudo nano /etc/csf/csf.conf
Cuanto menor sea el número de puertos abiertos, más seguro será el sistema. Pero siempre debe tener algunos puertos comunes abiertos. Puede ver todos los puertos que están abiertos de forma predeterminada en el archivo csf.conf como se muestra a continuación.
Como puede ver en el archivo de configuración, si desea permitir/bloquear cualquier puerto, debe agregar/eliminar el número de puerto en la lista respectivamente.
Por ejemplo, si desea bloquear el puerto 80, debe eliminarlo de la lista, como se muestra a continuación.
Si está utilizando IPv6, también debe actualizarlo en el archivo de configuración, ya que la mayoría de los ataques en la actualidad se realizan a través del protocolo IPv6. Debe configurar TCP6_IN, TCP6_OUT de manera similar a lo que hemos configurado anteriormente para los puertos IPv4.
Salida de muestra:
Ahora vamos a configurar los ajustes CONNLIMIT. CONNLIMIT es una función de seguridad en CSF que le permite limitar la cantidad de conexiones simultáneas que puede tener una conexión remota en un puerto específico. Esto ayuda a mitigar el riesgo de ataques DoS/DDoS.
Por ejemplo, si desea limitar cualquier IP con no más de 3 conexiones simultáneas, debe actualizarla como se muestra a continuación. Esta configuración permitiría solo 3 conexiones simultáneas en el puerto 22 y 3 conexiones simultáneas en el puerto 443.
A continuación, configuremos 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 marco de tiempo determinado.
Por ejemplo, si desea bloquear cualquier IP si se establecen más de 3 conexiones en el puerto 443 utilizando el protocolo TCP en 60 segundos, debe actualizarlo como se muestra a continuación. El bloqueo se eliminará automáticamente una vez que haya transcurrido el período de tiempo de 60 segundos desde la última conexión.
La característica más básica de cualquier firewall es bloquear y permitir direcciones IP. Puede agregar la dirección IP que desea bloquear agregándola manualmente en el archivo csf.deny o puede agregar un rango completo de direcciones IP en el archivo csf.deny.
Por ejemplo, puede bloquear todo el rango de IP 192.168.1.0/24.
O
Puede bloquear una sola IP de 192.168.2.0 agregándola en el archivo csf.deny como se muestra a continuación.
Abra el archivo csf.deny con el siguiente comando.
sudo nano /etc/csf/csf.deny
Agregue las siguientes líneas al final del archivo. Una línea a la vez.
192.168.2.0
192.168.1.0/24
Salida de muestra:
Una vez que haya terminado, guarde y cierre el archivo presionando CTRL+X , Y y Introducir .
Uno es opuesto al archivo csf.deny, el archivo csf.allow se usa para excluir una IP o un rango de IP de todos los filtros. Tenga en cuenta que incluso si ya agregó una IP al archivo csf.deny, la dirección IP bloqueada aún puede acceder a su servidor al agregarla en el archivo csf.allow.
sudo nano /etc/csf/csf.allow
CSF ofrece una amplia variedad de opciones para configurar su propio firewall, que está más allá del alcance de este tutorial. Puede consultar la documentación de ConfigServer sobre las configuraciones y cómo funcionan.
Una vez que termine de actualizar todas las configuraciones requeridas, guarde y cierre el archivo csf.conf presionando CTRL+X , Y y Introducir .
CSF también ofrece una función para ignorar una dirección IP de cualquier filtro. A diferencia de permitir una dirección IP en el archivo csf.allow, no puede ignorar una dirección IP si figuraba en el archivo csf.deny.
sudo nano /etc/csf/csf.ignore
Ahora que ha configurado todas las configuraciones en el archivo csf.conf, es hora de actualizar el conjunto de reglas para aplicar los cambios.
Para hacer eso, ejecute el siguiente comando.
sudo csf -r
Una vez que se complete la ejecución del comando anterior, podrá ver un mensaje como se muestra en la siguiente captura de pantalla. Si no se muestran mensajes de error, ¡felicidades! La configuración del cortafuegos de su servidor ahora está actualizada y lista para usar.
Conclusión
En este tutorial, ha aprendido a instalar ConfigServer Security &Firewall (CSF) en un servidor Debian 11. También aprendió a crear reglas de cortafuegos, agregando direcciones IP tanto a listas permitidas como bloqueadas mediante archivos de configuración CSF.
Si encuentra algún problema, siempre puede consultar la documentación de ConfigServer Firewall para obtener más información.