CSF es un firewall que es compatible con WHM. En el siguiente artículo veremos su instalación y configuracion para mejorar la seguridad en nuestro servidor.

Una vez que se contrata un servidor y se realiza la configuración inicial, se deben realizar configuraciones extas (que a veces ni sabíamos que debemos realizar) tales como las de seguridad, correo, certificados digitales, etc.

Para realizar las siguientes configuraciones e instalaciones de paquetes se debe tener acceso root al WHM así como acceso por SSH.

Firewall CSF

Un servidor, al igual que todo dispositivo conectado a Internet es objetivo de ataque. En un servidor se corre un riesgo mayor pues la gran capacidad que tiene es muy requerido para formar parte de redes zombies y lanzar un ataque dirigido en conjunto con otros nodos (DDoS).

Es por ello que una de las primeras cosas que debemos instalar y configurar es un firewall (cortafuegos) para bloquear conexiones entrantes y salientes, así como puertos y tener nuestras listas negras de ip’s.

Vamos a utilizar CSF de ConfigServer.

https://www.configserver.com/cp/csf.html

Para ello, vamos a instalarlo vía SSH. Así que nos conectamos a nuestro servidor.

ssh [email protected]

Donde IP es la IP de nuestro servidor.

Una vez que entramos vía SSH como root, estamos en home de root. (/root). Así que vamos a seguir las siguientes instrucciones.

#Nos cambiamos a la carpeta donde se va a instalar
cd /usr/src
#Eliminamos alguna versión anterior de csf
rm -fv csf.tgz
#Descargamos la última versión de csf
wget https://download.configserver.com/csf.tgz
#Descomprimimos el paquete
tar -xzf csf.tgz
#Entramos a la carpeta que descomprimió
cd csf
#Lo instalamos
sh install.sh

Nos tuvo que mostrar un mensaje “Installation Completed”.

Así que entramos a nuestro WHM y en el menú lateral, nos dirigimos a la última entrada (Programas adicionales) y podremos ver que ya está instalado.

ConfigServer en WHM

Es importante recalcar que recién instalado estará en modo prueba(Testing) por lo que debemos configurarlo antes de activo a modo producción.

CSF en WHM

Ahora vamos a revisar algunos elementos para configurar nuestro CSF.

Check Server Security

Check Server Security

Realiza una revisión básica de las opciones de seguridad en nuestro servidor.

Predeterminadamente, nuestro servidor no está configurado de una manera muy segura y nos dará una puntuación algo baja.

CSF score

Esto no necesariamente implica que haya una inseguridad en nuestro servidor, o que estemos en un grave peligro; así como una puntuación alta no implica que estemos muy seguros y que bajemos la guardia.

Es más bien una lista de cosas a revisar y que si no las requerimos activadas, las podamos desactivar (con lo que disminuímos la probabilidad de tener alguna brecha de seguridad).

Vamos a ver más elementos para configurar CSF, después vamos a configurar otros detalles del servidor y al terminar vamos a volver a verificar esta revisión de seguridad y debemos tener una puntuación má alta.

Check for IPs in RBLs

Check for IPs in RBLs

Si por desgracia el servidor envió spam, es muy común que la IP caiga en lista negra.

Esto hace que algunos otros servidores que revisan que a donde va su correo o de donde viene no esté en lista negra, bloqueen nuestros correos. Es muy grave para los dominios que envían muchos correos o les es vital la comunicación vía correo electrónico.

En esta opción, podemos verificar que las IPs del servidor no estén en alguna de las listas negras más conocidas.

CSF Quick Actions

CSF quick actions

Aquí es donde podremos agregar alguna IP a lista blanca (Quick Allow) o en lista negra (Quick Deny).

Por ejemplo, si un usuario intenta iniciar sesión varias veces con una clave eqivocada, entonces CPHulk (Lo veremos más adelante) lo agregará a lista negra y no podrá ni siquiera abrir una página web que esté en nuestro servidor.

Ponerlo en lista blanca, hará que lo quite de lista negra y aunque siga fallando su inicio de sesión, mientras el usuario no cambie de IP, entonces no lo bloqueará.

Para lista negra es que quien tenga esa IP no podrá usar correo electrónico, ver páginas web ni cualquier interacción con nuestro servidor.

Firewall Configuration

Esta es la parte fuerte ya que es la sección donde podemos configurar nuestro firewall y tiene muchas opciones.

Ten mucho cuidado al modificar estas configuraciones en un entorno de producción.

Initial Settings

Testing: Habilita o deshabilita el modo prueba del firewall.

Cuando se termina de configurar y se quiere activar el firewall entonces se deshabilita esta opción.

RESTRICT_SYSLOG : ConfigServer recomienda por cuestiones de seguridad, que esté en la opción 3 (Restrict syslog/rsyslog access to RESTRICT_SYSLOG_GROUP)

IPv4 Port Settings

TCP_IN: Puertos de entrada. Aquí van los puertos TCP de entrada al servidor. Es aquí donde se “abren” los puertos.

Se debe tener en especial cuidado al abrir puertos ya que es un medio de acceso hacia el servidor.

¿Qué puertos se deben colocar aquí? Los que requieras que se tenga acceso externamente.

Por ejemplo el puerto de MySQL (3306) si es que tienes aplicativos que utilicen esa base de datos, o un puerto alternativo para SSH (se verá más adelante).

TCP_OUT: Puertos TCP que serán de salida.

UDP_IN: Puertos UDP de entrada.

UDP_OUT : Puertos UDP de salida.

General Settings

SYSLOG_CHECK: Revisa que Syslog esté funcionando cada X segundos. ConfigServer sugiere que esté activada esta opción, se puede colocar 3600.

DENY_IP_LIMIT: Esta opción es importante. Indica el número máximo de IPs que estarán en lista negra.

Toda IP en lista negra se le negará todo servicio en el servidor: ni páginas web, ni correo, ni escaneo a puertos.

Por default tiene 200, pero un servidor conectado las 24 horas a Internet, solo es cuestión de tiempo para que sufra escaneos e intentos de iniciar sesión en cuentas de correos y ataques de denegación. Por experiencia puedo decir que hay momentos en que se reciben decenas de ataque por segundo y de manera distribuida, es decir, un host de una botnet intenta dar con la contraseña de una cuenta por medio de fuerza bruta, al ser colocado en lista negra, entonces el siguiente host de la botnet continúa el trabajo, y así consecutivamente.

Si la botnet tiene 200 mil host, entonces son ese número por la cantidad de intentos que un host puede intentar colocar una clave incorecta. Si el número es 5, entonces se harán un millón de intentos.

Por otro lado, si solo podemos bloquear a 200 de los 200 mil host, entonces nuestro bloqueo será inútil dado a que cuando se llega a 200, entonces elimina la IP mas vieja del bloqueo para agregar la más nueva.

Si dejamos la configuración predeterminada, tendremos un pétalo de una rosa para escudarnod e una lluvia.

Ahora bien, no podemos elegir un número muy alto porque entre más alto sea el número máximo de IPs bloqueadas, entonces utiliza más memoria. Esto impacta significativamente en servidores con muy poca RAM, por ejemplo en entornos virtualizados.

Se puede ir incrementando poco a poco el número y verificar que no repercute en la memoria del servidor.

Por ejemplo se puede iniciar con mil, y si está próximo a llegar al límite, subirlo a 5,000, después 10,000, etc.

Para saber cuantas IP’s están bloqueadas, puedes verificarlo desde la página principal de ConfigServer Security & Firewall dentro de WHM.

IPs bloqueadas en CSF WHM

Si ya tienes un servidor con CSF, entonces puedes copiar la lista negra del primero a tu servidor más reciente y así no pasar de nuevo por las notificaciones de ataques.

La ruta del archivo es: /etc/csf/csf.deny

SMTP Settings

SMTP_BLOCK: Bloquear envío de correo excepto para root, exim y mailman. Es una configuración que ayuda a luchar contra el spam. Se recomienda activarla.

Reporting Settings

LF_ALERT_TO: El correo a donde llegarán las notificaciones de seguridad. Ten en cuenta que serán miles de correos, pero es importante estar al tanto de lo que sucede en el servidor.

Login Failure Blocking and Alerts

LF_SSH_EMAIL_ALERT: Habilita o deshabilita el envío de correo cada vez que alguien entra al servidor por SSH.

Lo mejor sería que estuviese activado, pero si aumentamos la seguridad con respecto a SSH puede que la dejemos desactivada si es que nos conectamos mucho.

Yo me conecto muchas veces al día para implementar actualizaciones de mis sistemas, pero aumenté la seguridad SSH cambiando el puerto que viene por default y configurando que solo se pueda entrar a través de un certificado, no por contraseña.

Estas opciones se verán más adelante.

LF_CPANEL_ALERT: Habilita o deshabilita el envío de correo cada vez que alguien inicia sesión en cPanel de una lista de usuarios, por ejemplo root.

Si tienes contraseñas fuertes, las cambias a menudo y aumentas la seguridad en tu servidor, puede que no requieras que te avise cada vez que se inicia sesión en cPanel.

LF_SCRIPT_ALERT: Habilita la opción de escaneo por scripts que manden correo y nos lo notifica por correo electrónico. Conviene habilitarlo.

CloudFlare

CF_ENABLE: Habilita la interacción con el firewall de Cloudflare.

Cloudflare es un proxy que entre muchas ventajas, nos permite mantener en línea nuestras páginas web estáticas aunque el servidor esté caido, nos permite que todas las solicitudes se conviertan a HTTPS y es una capa extra de seguridad contra ataques de denegación de servicio.

Más adelante veremos como configurarlo.

Por el momento no modificaremos estas opciones pues se realizarán una vez que instalemos el plugin de Cloudflare.

Distributed Attacks

LF_DISTATTACK : Esta opción hace que, si recibimos un ataque distribuido, como anteriormente se explicó; que varios host de diferentes paises lancen un ataque en contra de nuestro servidor, cuando se detecte ese ataque (por ejemplo contra una cuenta de correo) entonces se bloqueen a todas las IP’s que participaron en el ataque. Conviene activarlo.

Relay Tracking

RT_RELAY_LIMIT, RT_AUTHRELAY_LIMIT, RT_POPRELAY_LIMIT, RT_LOCALRELAY_LIMIT, RT_LOCALHOSTRELAY_LIMIT: En ésta sección se revisa el número de correos enviados por hora. Es una manera de estar pendiente de que no se esté mandando spam.

Aquí depende mucho de nuestros servidores. Si tenemos dominios que manden un gran volumen de correos, entonces un número bajo nos va a estar alertando muy, muy seguido. Lo mejor es dejar el número default y si vemos que están llegando muchas alertas y son correos que no son spam, entonces irlo subiendo.

Process Tracking

PT_ALL_USERS: Nos permite monitorear a todas las cuentas de Linux en lugar de sólo las de cPanel. Es útil para detectar si nuestro servidor Linux ha sido comprometido. Conviene activarla.

lfd – Login Failure Daemon

LFD CSF WHM

Regresando a la pantalla principal. Tenemos un combo donde podemos seleccionar y editar la lista de procesos que queremos excluir del monitoreo constante.

Por default, CSF va a escanear procesos que pueden estar consumiendo mucha memoria o que se ejecutan por mucho tiempo o algunos que sean sospechosos.

Si tenemos sistemas implementados en nuestros servidores, entonces nos mostrarán muchos falsos posisitivos. Si queremos evitarlo, podemos editar el archivo csf.pignore (como se muestra en la imagen, arriba) y agregar la ruta del archivo que queremos que sea ignorado.

pignore csf

Como podemos ver, tenemos la posibilidad de indicar que ignore un proceso indicando su archivo ejecutable, todos los procesos de un usuario o un proceso con un comando en específico.

Si lo que queremos es evitar el monitoreo en un archivo de nuestro sistema en PHP entonces podemos ver la notificación que nos llega a correo, ahí indica la ruta cmd, la agregamos a este archivo y de aquí en adelante no nos mostrará esa alerta.

Hasta aquí son algunas de las opciones que debemos tener en cuenta para mejorar la seguridad denuestro servidor con CSF.

Se recomeinda invertir tiempo en leer la documentación de todas las opciones para tener un mejor control y adcuanción de nuestro firewall.

En las siguientes partes de ésta guía se verán más elementos a configurar de WHM.


angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana. Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

1 Comment

Guía básica de configuraciones para WHM. Parte 2 (Cloudflare) · 17 diciembre, 2019 a las 11:44

[…] Como se habló anteriormente es de suma importancia configurar y aumentar la seguridad en nuestro servidor. Con WHM/cPanel es mucho más fácil pero aún así, nos hace falta algunas herramientas extras. En éste caso veremos Cloudflare. […]

Deja un comentario