Instalar el Firewall CSF y la Protección de Fuerza Bruta LFD en Linux

instalar-el-firewall-csf-y-la-proteccion-de-fuerza-bruta-lfd-en-linux

Generalidades:

CSF Firewall es un popular cortafuegos basado en iptables para sistemas Gnu/Linux, nació para integrarse con el popular panel cPanel/WHM, pero fue tan grande su éxito que el desarrollador añadió una versión generica que corre hoy en día en las distros más populares.

CSF/LFD soporta los siguientes sistemas operativos:

  • RedHat v7.3, v8.0, v9.0
  • *openSUSE v10, v11
  • RedHat Enterprise v3, v4, v5 (32/64 bit)
  • *Debian v3.1, v4.0, v5.0
  • CentOS v3, v4, v5 (32/64 bit)
  • *Ubuntu v6.06 LTS, v8.10, v9.10, v10.04 LTS
  • Fedora Core v1 to v12(32/64 bit)
  • *Mandriva 2009, 2010
  • *Gentoo
  • *Slackware v12.2
  • (* pueden requerir patrones regex personalizados para algunas funciones)

A su vez, soporta los siguientes Servidores Virtuales:

  • ** Virtuozzo
  • **OpenVZ
  • VMware
  • UML
  • Xen
  • MS Virtual Server
  • VirtualBox
  • (** require la configuración correcta de iptables en el servidor)

Las características de CSF/LFD son:

  • Script de firewall basado en iptables SPI directas
  • Proceso tipo demonio que verifica fallas en la autenticación por login para:
  • Courier imap, Dovecot, uw-imap, Kerio
  • openSSH
  • cPanel, WHM, Webmail (sólo servidores cPanel)
  • Pure-pftd, vsftpd, Proftpd
  • Páginas web protegidas por contraseña (htpasswd)
  • Fallas de Mod_security (v1 y v2)
  • Fallas Suhosin
  • Exim SMTP AUTH
  • Fallas de login personalizados con archivos log separados y coincidencia de expresiones regulares.
  • Seguimiento de login POP3/IMAP para reforzar los login por hora
  • Notificación de login por SSH
  • Notificación de login SU
  • Bloqueo de conexión excesiva
  • Integración con la interfaz Web para cPanel, DirectAdmin y Webmin
  • Actualizaciones sencillas entre versiones dentro de cPanel/WHM, DirectAdmin ó Webmin
  • Actualizaciones sencillas entre versiones por SSH
  • Pre-configurado para trabajar con cPanel con todos los puertos de cPanel abiertos
  • Pre-configurado para trabajar con DirectAdmin con todos los puertos de DirectAdmin abiertos
  • Auto-configuración del puerto SSH si se esta utilizando un puerto no estándar
  • Bloqueo del tráfico en las direcciones IPs no utilizadas en el servidor para disminuir riesgos
  • Alerta cuando scripts de usuarios envian emails excesivos po hora para identificar spam
  • Reporte de procesos sospechosos indicando exploits potenciales ejecutándose en el servidor
  • Reporte de procesos de usuario excesivos
  • Reporte de procesos de usuario de uso excesivo y terminación opcional
  • Reporte de archives sospechosos para indicar archives poteciales de exploit en /tmp y directorios similares.
  • Vigilancia de directories y archivos, reportando cuando un directorio o archivo vigilado cambia
  • Bloquea el tráfico que este registrado en las listas de DShield Block y Spamhaus DROP
  • Protección de paquetes BOGON
  • Parámetros pre-configurados para seguridad Baja, Media o Alta (sólo para servidores cPanel)
  • Trabaja con multiples dispositivos ethernet
  • Verificación de la seguridad del servidor. Verifica aspectos básicos de seguridad y parámetros del servidor (a través de la interfaz web de cPanel/DirectAdmin/Webmin)
  • Permite direcciones IP con DNS Dinámicos, permitiendo el acceso desde su IP siempre aún cuando su IP cambie cuando se conecta a la Internet.
  • Envío de Alerta si el promedio de carga permanence alto por un determinado período de tiempo
  • Reporte del log de mod_security (si está instalado)
  • Seguimiento de Email relay (verifica todos los emails enviados a través del servidor y emite alertas por uso escesivo ” sólo para servidores con cPanel)
  • Sistema de Detección de Intrusiones IDS (la última línea de detección alerta acerca de cambios del sistema y archivos binarios de aplicaciones
  • Protección de SYN Flood
  • Protección de Ping of death
  • Bloqueo y seguimiento de rastreo de puertos
  • Bloqueo permanente y temporal de Ips (con TTL)
  • Verificación de Exploits
  • Seguimiento de modificaciones de cuentas (envía alertas si un registro de cuenta es modificado. Ejm: si se cambia la contraseña o el acceso por SSH)
  • Toma en cuenta el syslog compartido
  • Servicio de Messenger. Le permite redireccionar solicitudes de conexiones desde IPs bloqueadas hacia páginas de texto o html preconfiguradas para informar al visitante que ha sido bloqueado por el firewall. Esto puede ser muy útil para aquellos con una gran base de usuarios y ayuda en el proceso de solicitudes de soporte en forma más eficiente.
  • Bloqueo por código de país. Le permite denegar o permitir el acceso desde códigos de país ISO
  • Detección y mitigación de Port Flooding (por IP y Puerto, para evitar ataques DoS)
  • Notificación de acceso al WHM root (solo para servidores con cPanel)
  • Clustering en LFD. Permite que los bloques de IPs se propaguen automáticamente alrededor de un grupo de servidores ejecutando LFD. Esto permite el manejo de LFD en clusters.
  • Arranque Rápido CSF. Arranque diferido por LFD para servidores con listas de permitidos y bloques muy largos
  • Detección de Ataques de Fallas de Login Distribuido
  • IPs Permitidas temporales (con TTL)
  • Soporte IPv6 con ip6tables (BETA)

Demonio de Fallas de Logins (LFD)

Para complementar el CSF, se utiliza el demonio LFD que se ejecuta como un proceso continuo que se ejecuta cada ciertos segundos y rastrea las entradas a los archivos log buscando intentos de accesos con logins fallidos en forma contínua en un corto período de tiempo. Dichos intentos se denominan “Ataques por Fuerza Bruta” y el proceso del demonio responde muy rápidamente a tales patrones bloqueando las IP’s.

Instalación:

Para realizar la instalación debemos:

Ejecutar:

cd /usr/local/src
wget http://www.configserver.com/free/csf.tgz
tar -zxvf csf.tgz
cd csf

Antes de instalarlo debemos saber que CSF/LFD no debe coexistir con APF/BFD ya que traerá múltiples inconvenientes. Si estamos instalado CSF/LFD en un servidor donde previamente se había instalado APF/BFD entonces debemos ejecutar una aplicación que permite eliminar el APF/BFD con el siguiente comando:

sh /etc/csf/remove_apf_bfd.sh

Ahora podemos instalarlo con:

sh install.sh

Al culminar mostrará:

*** SSH port XXXXX added to the TCP_IN port list
TCP ports currently listening for incoming connections:
21,25,53,80,110,143,443,465,765,993,995,2077,2078,2082,2083,2086,2087,2095,2096,3306,8009,8080,XXXXX
UDP ports currently listening for incoming connections:
53,631,759,762,5353,53491,57363
Note: The port details above are for information only, csf hasn't been auto-configured.
Don't forget to:
1. Configure the TCP_IN, TCP_OUT, UDP_IN and UDP_OUT options in the csf configuration to suite your server
2. Restart csf and lfd
3. Set TESTING to 0 once you're happy with the firewall
Adding current SSH session IP address to the csf whitelist in csf.allow:
Adding 190.205.209.35 to csf.allow only while in TESTING mode (not iptables ACCEPT)
*WARNING* TESTING mode is enabled - do not forget to disable it in the configuration

Luego de instalado debemos ejecutar el siguiente commando para realizar la prueba:

perl /etc/csf/csftest.pl

Si todo esta OK entonces el firewall ha sido instalado y si refrescamos la pantalla del WHM lo veremos al final del menú en el área de Plugins.

Debemos ir a:

WHM > Plugins > ConfigServer Security&Firewall y hacer clic en el botón Firewall Configuration

Buscar los siguientes campos y colocar los valores indicados:

TESTING colocarlo en 0
SMTP_BLOCK colocarlo en 1
LF_SCRIPT_ALERT colocarlo en 1
PT_ALL_USERS colocarlo en 1
SAFECHAINUPDATE colocarlo en 1
IPV6 colocarlo en 1
LT_POP3D colocarlo en 120
PT_DELETED colocarlo en 0
TCP_IN =
20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2089,2095,2096,XXXXX,1433,3306,8080
TCP_OUT =
20,21,22,25,37,43,53,80,110,113,443,587,873,2087,2089,2703,1433
UDP_IN =
20,21,53
UDP_OUT =
20,21,53,113,123,873,6277

Clic en el botón Change y Luego clic en el botón Restart.

LISTO

Adicionalmente, para evitar que el LFD envíe emails constantes en referencia a procesos asocidados al spamd, awstats y tomcat, se debe ingresar al CSF vía Web y editar el archivo “csf.pignore”, agregando al final:

cmd:spamd child
pcmd:.*/usr/local/cpanel/3rdparty/bin/awstats\.pl.*
pcmd:.*/usr/local/cpanel/base/awstats\.pl.*
exe:/usr/local/jakarta/apache-tomcat-5.5.28/bin/jsvc
pcmd:cpdavd.*
exe:/usr/X11R6/bin/xfs

Luego de guardar el archivo se debe reiniciar el LFD.

Por otra parte, para evitar reportes de directorios sospechosos que en realidad son correctos debemos editar “csf.fignore”, agregando al final:

/tmp/.horde/*

Por otro lado, debemos cambiar las plantillas de email de CSF para que estén en Español. Debemos cargar los archivos en el directorio /etc/csf.

Para facilitar esto en los servidores de producción ingresamos por SSH y usamos SFTP para crear la carpeta:

/home/adminXX/plantillascsf

Luego cargamos en la misma los archivos txt con las plantillas previamente traducidas al español y finalmente ejecutamos por SSH:

cp /home/adminXX/plantillascsf/*.txt /usr/local/csf/tpl

A su vez, podemos editarlos directamente por el WHM con:

WHM > Plugins > ConfigServer Security & Firewall

Al final esta una caja de selección con los nombres de las plantillas de email comenzando con alert.txt y a su lado tiene el botón Edit con el cual se pueden editar.

En el caso de que estemos utilizando Webmin podemos instalar el módulo de CSF para este panel, siguiento estos pasos:

Webmin > Configuración de Webmin > Módulos de Webmin > install from: Desde archivo local > /etc/csf/csfwebmin.tgz > instalar módulo.

Después en:

Webmin > Sistema

Se mostrará ConfigServer Security & Firewall con su logo.

Por otro lado, es importante conocer los comandos del CSF que pueden ser ejecutados por consola (SSH) que listamos a continuación:


Comando Descripción
csf -d [IP] Comentario Bloquear/Denegar el acceso a una IP permanentemente y agregarla al archivo /etc/csf/csf.deny
csf -td [IP] Bloqueo Temporal
csf -dr [IP] Desbloquear una IP y sacarla del archivo /etc/csf/csf.deny
csf -g [IP] Verificar si una IP está bloqueada
csf -s Inicar las reglas del firewall
csf -f Hacer Flush/Parar las reglas del firewall (nota: lfd puede reiniciar csf)
csf -r Reiniciar las reglas del firewall
csf -a [IP] Permitir acceso a una IP y agregarla al archivo /etc/csf/csf.allow
csf -tr [IP] Sacar una IP de la lista de bloqueos temporales o de la lista de permitidos
csf -tf Hacer Flush de todas las IPs de la lista de IPs bloqueadas temporalmente
csf -df Sacar y desbloquear todas las IPs que están en el archivo /etc/csf/csf.deny
csf -t Mostrar la lista de las IP permitidas temporalmente y denegar las IP’s con su TTL y comentario

Deja una respuesta

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