GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo configurar un cortafuegos con CSF en Debian 9

En este artículo, le mostraremos cómo instalar y configurar el firewall CSF en un VPS Debian 9, así como algunos consejos sobre cómo usar CSF.

ConfigServer Security &Firewall (CSF) es una herramienta de administración de firewall avanzada y gratuita basada en iptables. CSF proporciona un alto nivel de seguridad en su servidor y es muy sencillo, lo que facilita su configuración e instalación en todas las distribuciones de Linux compatibles. Usaremos Debian 9, que se encuentra entre las distribuciones de Linux compatibles. CSF tiene muchas funciones excelentes, como escaneo de puertos, inundaciones SYN y ataques de fuerza bruta para muchos servicios que pueden ayudarlo a proteger su servidor. Una de las características más interesantes de CSF es que proporciona una interfaz de usuario web integrada para administrar el firewall desde un navegador web. Esta integración de la interfaz de usuario es compatible con cPanel, DirectAdmin y funciona de forma independiente en su servidor.

La instalación de CSF también viene con otro servicio llamado Login Failure Daemon (LFD). LFD en realidad es un proceso que monitorea los archivos de registro y envía notificaciones por correo electrónico según las reglas de configuración de CSF. Comencemos con la instalación.

Paso 1:Conéctese a su servidor

Antes de comenzar, debe conectarse a su servidor a través de SSH como usuario raíz. Alternativamente, puede usar una cuenta de usuario con privilegios de sudo si no tiene acceso al usuario raíz. Para hacer esto, use el siguiente comando:

ssh root@IP_Address -p Port_Number

por supuesto, deberá reemplazar IP_Address y Port_Number con la dirección IP de su servidor real y el número de puerto SSH.

Una vez que haya iniciado sesión, asegúrese de que su servidor esté actualizado ejecutando los siguientes comandos:

apt update
apt upgrade

Paso 2:Instalar CSF/LFD

Una vez que haya actualizado correctamente su servidor, puede ejecutar los siguientes comandos para cambiar el directorio actual a /opt, descargar el código fuente de CSF más reciente y descomprimirlo en el mismo directorio.

cd /opt/
wget http://download.configserver.com/csf.tgz
tar xzf csf.tgz

Antes de continuar con la instalación, asegúrese de que no está utilizando otro firewall como UFW. Los siguientes dos comandos cambiarán el directorio a /opt/csf/ y ejecutarán el script de instalación.

cd /opt/csf
sh install.sh

La instalación del cortafuegos está completa, pero es mejor verificar si los módulos de iptables están disponibles y son necesarios para el correcto funcionamiento en CSF. Puedes hacerlo con el comando:

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

Salida:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

Si no se han informado errores fatales de sus pruebas, el firewall CSF funcionará correctamente.

Paso 3:Configuración básica

Si desea configurar el firewall CSF, debe editar el archivo de configuración 'csf.conf'. En este tutorial, usaremos nano como nuestro editor, pero puede usar libremente su editor favorito para editar el archivo de configuración.

nano /etc/csf/csf.conf

Lo primero que debemos verificar en los archivos de configuración son los puertos abiertos en su servidor. Normalmente, de forma predeterminada, los puertos más utilizados ya están abiertos, pero a veces necesitamos abrir un puerto específico en el servidor. La siguiente lista es de los puertos abiertos predeterminados por CSF:

# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

# Allow incoming UDP ports
UDP_IN = "20,21,53"

# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "20,21,53,113,123"

Si algunos de los servicios listados por defecto no están siendo usados ​​en su servidor, la mejor práctica es cerrarlos. Cuanto menos acceso haya a los puertos de su servidor, mejor será la seguridad de su servidor.

CSF ofrece muchas opciones diferentes en los archivos de configuración. Pero solo cubriremos algunas de las configuraciones más utilizadas.

ICMP_IN – Esta opción es para controlar la disponibilidad de tu servidor desde PING. De manera predeterminada, esta configuración se establece en 1 para que pueda permitir todas las solicitudes PING entrantes. Si elige deshabilitar esta opción, no podrá usar un sistema de monitoreo externo.

IGNORAR_PERMITIR – Si habilita esta opción, LFD ignorará todas las direcciones IP que se enumeran en csf.allow expediente. Esta opción puede ser útil si usa una dirección IP estática en casa o en su oficina y puede estar seguro de que esta dirección IP nunca será bloqueada por el firewall del servidor.

SYNFLOOD , TARIFA_SUNFLOOD y SYNFLOOD_BURST – Esta opción debe usarse solo si su servidor está bajo un ataque de inundación SYN. Tenga en cuenta que no se recomienda habilitar esta opción porque ralentizará significativamente su servidor y algunos visitantes pueden tener un problema de conexión.

LF_ALERT_TO y LF_ALERT_FROM – Aquí es donde define las direcciones de correo electrónico que desea utilizar para las alertas.

PRUEBA – De manera predeterminada, TESTING está establecido en 1. Esto significa que CSF habilita un trabajo CRON que borra la configuración de iptables en caso de problemas de configuración cuando inicia CSF. Esta es una medida de precaución que debería ayudarlo a evitar quedarse sin acceso a su servidor. Una vez que esté completamente seguro de que todas las configuraciones están bien, puede establecer el valor en cero, lo que habilitará el servicio LFD.

Una vez que defina todas las configuraciones que prefiera, puede guardar el archivo de configuración y reiniciar y habilitar los servicios CSF y LFD, lo que hace que se inicien automáticamente al arrancar.

systemctl restart csf
systemctl enable csf
systemctl restart lfd
systemctl enable lfd

Paso 4:notificaciones CSF/LFD

Una de las muchas opciones del CSF LFD son las diversas notificaciones que pueden ayudarlo a monitorear los eventos en su servidor. En esta sección del artículo, le mostraremos cómo activar o desactivar algunas de estas notificaciones.

Comenzaremos con las alertas de integridad del sistema que verifican cambios en ciertos archivos del sistema. Estas notificaciones ayudan a detectar archivos comprometidos, pero también recibirá correos electrónicos cuando se realicen cambios con actualizaciones legítimas del sistema.

Puede dejar este tipo de notificaciones si desea realizar un seguimiento de los cambios realizados en su sistema. Si ha decidido no recibir estas notificaciones, puede desactivarlas buscando el LF_INTEGRITY en el archivo csf.conf y establezca su valor en 0, o simplemente puede ejecutar el siguiente comando:

sed -i 's/LF_INTEGRITY = "3600"/LF_INTEGRITY = "0"/g' /etc/csf/csf.conf

El segundo tipo de notificación del que nos gustaría hablar es la alerta de uso excesivo de recursos. Este tipo de notificaciones son probablemente las más comunes. LFD tiene una función que puede monitorear los procesos que se ejecutan en su servidor y enviarle correos electrónicos si usan demasiados recursos. El propósito de estas notificaciones es rastrear los procesos más intensivos que pueden causar problemas de carga en el servidor. Si ha decidido no recibir estas notificaciones, puede desactivarlas buscando el PT_USERMEM y PT_USERTIME en el archivo csf.conf y establezca su valor en 0 o simplemente puede ejecutar los siguientes comandos:

sed -i 's/PT_USERTIME = "1800"/PT_USERTIME = "0"/g' /etc/csf/csf.conf
sed -i 's/PT_USERMEM = "512"/PT_USERMEM = "0"/g' /etc/csf/csf.conf

La opción Seguimiento de procesos examina archivos ejecutables sospechosos o puertos de red abiertos en su servidor. Estas notificaciones ayudan a detectar procesos potencialmente explotadores, incluso si estos procesos aparecen como servicios del sistema. Si ha decidido no recibir estas notificaciones, puede desactivarlas buscando el PT_LIMIT en el archivo csf.conf y establezca su valor en 0 o simplemente puede ejecutar el siguiente comando SSH:

sed -i 's/PT_LIMIT = "60"/PT_LIMIT = "0"/g' /etc/csf/csf.conf

El último tipo de notificaciones que cubriremos en este artículo son las alertas sobre el bloqueo de IP.

CSF/LFD tiene el poder de bloquear direcciones IP por ciertas razones. Cada vez que el sistema bloquee una dirección IP, se le notificará por correo electrónico con la dirección IP que fue bloqueada y la razón por la cual fue bloqueada. Si desea administrar este tipo de notificaciones, puede abrir su archivo csf.conf y encontrar las siguientes opciones:

LF_EMAIL_ALERT – Enviar una alerta por correo electrónico si una dirección IP está bloqueada por uno de los activadores [*]

LF_PERMBLOCK_ALERT – Si una dirección IP se bloqueó varias veces (para configurar, use LF_PERMBLOCK_COUNT ), esta opción enviará una notificación por correo electrónico cuando la dirección IP se bloquee de forma permanente.

LF_NETBLOCK_ALERT – Si se bloqueó una clase de red IP, recibirá una notificación por correo electrónico.

LF_DISTFTP_ALERT – Si LF_DISTFTP se activa, recibirá una notificación por correo electrónico con las direcciones IP que se han bloqueado con el motivo de estar involucrado en un ataque distribuido por FTP.

LF_DISTSMTP_ALERT – Si LF_DISTSMTP se activa, recibirá una notificación por correo electrónico con las direcciones IP que se han bloqueado con el motivo de estar involucrado en un ataque distribuido SMTP.

LT_EMAIL_ALERT – Si una cuenta supera la cantidad de inicios de sesión diarios por dirección IP, recibirá una alerta por correo electrónico.

CT_EMAIL_ALERT – Si una dirección IP está bloqueada debido al seguimiento de la conectividad, recibirá una alerta por correo electrónico. Estos tipos de alertas por correo electrónico son activados por CT_LIMIT rasgo. El CT_LIMIT La opción está destinada a proteger su servidor de los ataques de DOS.

Si elige no recibir estas notificaciones, puede desactivarlas buscándolas en el archivo csf.conf y configurando sus valores en 0, o simplemente puede ejecutar los siguientes comandos:

sed -i 's/LF_EMAIL_ALERT = "1"/LF_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_PERMBLOCK_ALERT = "1"/LF_PERMBLOCK_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_NETBLOCK_ALERT = "1"/LF_NETBLOCK_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_DISTFTP_ALERT = "1"/LF_DISTFTP_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_DISTSMTP_ALERT = "1"/LF_DISTSMTP_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LT_EMAIL_ALERT = "1"/LT_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/CT_EMAIL_ALERT = "1"/CT_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf

Una vez que se hayan realizado los cambios, debe reiniciar CSF y LFD con los siguientes comandos systemctl:

systemctl restart csf 
systemctl restart lfd

Paso 5:Administre CSF desde la línea de comandos

Puede administrar CSF desde la línea de comandos o a través de la interfaz de usuario web integrada. En esta parte del tutorial, haremos una breve lista de comandos útiles que pueden ayudarlo a administrar CSF desde su línea de comandos.

Iniciar, detener y reiniciar/recargar CSF:

csf -s : Start csf
csf -f : Stop csf
csf -r : Reload/Restart csf

Permitir una IP y agregarla a csf.allow (lista blanca de una IP):

csf -a 123.45.67.89

Salida:

Adding 123.45.67.89 to csf.allow and iptables ACCEPT...
ACCEPT all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Eliminar y eliminar una IP de csf.allow:

csf -ar 123.45.67.89

Salida:

Removing rule...
ACCEPT all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Denegar una IP y agregar a csf.deny (lista negra de una IP):

csf -d 123.45.67.89

Salida:

Adding 123.45.67.89 to csf.deny and iptables DROP...
DROP all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Eliminar y borrar una IP de csf.deny (Desbloquear dirección IP):

csf -dr 123.45.67.89

Salida:

Removing rule...
DROP all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89

Eliminar y desbloquear todas las direcciones IP de csf.deny:

csf -df

Salida:

DROP all opt -- in !lo out * 123.45.67.88 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.88 
DROP all opt -- in !lo out * 123.45.67.89 -> 0.0.0.0/0 
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 123.45.67.89 
csf: all entries removed from csf.deny

Busque una coincidencia de patrón en iptables, por ejemplo:IP, CIDR, número de puerto:

csf -g 123.45.67.89

Salida:

Table Chain num pkts bytes target prot opt in out source destination
filter DENYIN 1 0 0 DROP all -- !lo * 123.45.67.89 0.0.0.0/0
filter DENYOUT 1 0 0 LOGDROPOUT all -- * !lo 0.0.0.0/0 123.45.67.89

Muestra la lista actual de entradas de IP permitidas y denegadas temporales con su TTL y comentario:

csf -t

Busque actualizaciones de csf y actualice si está disponible:

csf -u

Deshabilite CSF y LFD por completo:

csf -x

Habilite CSF y LFD si se deshabilitaron anteriormente:

csf -e

Mostrar la versión CSF:

csf -v

Salida:

csf: v13.04 (generic)

Para obtener más opciones, puede consultar el siguiente comando:

csf -h

Paso 6:habilite la interfaz de usuario web de CSF Firewall

En este paso, le mostraremos cómo habilitar la interfaz de usuario web de CSF. Este paso es opcional y solo debe usarse si no usa un panel de control que admita la interfaz de usuario de CSF (por ejemplo, WHM/cPanel, DirectAdmin, Webmin, etc.)

La interfaz de usuario de CSF requiere la instalación de varios módulos de Perl en su servidor. Puede cumplir con estos requisitos instalando los módulos de Perl con el siguiente comando:

apt install libio-socket-ssl-perl libcrypt-ssleay-perl libnet-libidn-perl libio-socket-inet6-perl libsocket6-perl

Lo siguiente es habilitar la interfaz de usuario web de CSF. Puede habilitar la interfaz web de CSF editando el archivo csf.conf:

nano /etc/csf/csf.conf

y actualice los siguientes valores:

# 1 to enable, 0 to disable web ui 
UI = "1"

# Set port for web UI. The default port is 6666, but
# I change this to 7171 for easy access. The default port creates some issue
# with the chrome and firefox browsers (in my case)

UI_PORT = "7171"

# Leave blank to bind to all IP addresses on the server 
UI_IP = ""

# Set username for authetnication 
UI_USER = "admin"

# Set a strong password for authentication 
UI_PASS = "Str0n9_PasSw0rD"

Siéntase libre de cambiar los valores de nuestro ejemplo con valores apropiados. Una vez que realice y guarde los cambios, puede incluir su dirección IP pública en la lista blanca editando el archivo de configuración ui.allow.

Reemplace 'Your_Public_IP_Address ‘ con su dirección IP real y ejecute el comando:

sudo echo "Your_Public_IP_Address" >> /etc/csf/ui/ui.allow

Para aplicar los cambios que ha realizado, debe reiniciar el servicio LFD. Reinicie el demonio LFD en su servidor usando el siguiente comando:

sudo service lfd restart

Ahora debería poder acceder a la interfaz de usuario de CSF en su navegador con la dirección IP de su servidor y el puerto específico que usó en el archivo csf.conf. En nuestro ejemplo, usamos el puerto 7171.

https://Your_Public_IP_Address:7171

Después de iniciar sesión correctamente, debería poder ver la interfaz de usuario de CSF.

Permitir rápido, Denegar rápido o Desbloquear rápido pueden ser opciones muy útiles desde la interfaz de usuario de CSF.

En este artículo, le mostramos cómo instalar y configurar un Firewall con CSF en Debian 9, además de repasar brevemente el uso de CSF. Ahora puede usar el conocimiento de esta guía y comenzar a crear sus propias reglas de firewall CSF que lo ayudarán a proteger su servidor.

Por supuesto, si usted es uno de nuestros clientes de Debian Hosting, no tiene que configurar su firewall con CSF en su servidor; simplemente pregunte a nuestros administradores, siéntese y relájese. Nuestros administradores configurarán las reglas del cortafuegos en su servidor inmediatamente.

PD. Si le gustó esta publicación sobre cómo configurar un Firewall con CSF en Debian 9, compártala con sus amigos en las redes sociales usando los botones de compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.


Debian
  1. Cómo configurar un cortafuegos con UFW en Debian 10

  2. Cómo configurar un cortafuegos con UFW en Debian 9

  3. Cómo instalar el cortafuegos del servidor de configuración (CSF) en Debian 11

  4. Cómo configurar un cortafuegos con UFW en Debian 9

  5. Cómo instalar y configurar el cortafuegos CSF en Debian 11

Cómo instalar el cortafuegos del servidor de configuración (CSF) en Debian 11

Cómo configurar LAMP con Debian 11

Cómo configurar bind con Debian 11

Cómo configurar el servidor Samba con Debian 11

Cómo instalar Nginx con PHP-FPM en Debian 11

Cómo configurar el CSF del cortafuegos en Debian 10