Guía básica de configuraciones para WHM. Parte 1 (Firewall CSF)
En este nuevo tutorial de Con Soluciones te daremos una guía básica para la configuración WHM.
CSF es un firewall que es compatible con WHM. En el siguiente artículo veremos su instalación y configuración 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.
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 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.
Es importante recalcar que recién instalado estará en modo prueba(Testing) por lo que debemos configurarlo antes de activo a modo producción.
Ahora vamos a revisar algunos elementos para configurar nuestro CSF.
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.
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
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
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.
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
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.
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.
Tomado de: angelinux