CSF (ConfigServer Security & Firewall) es uno de los firewalls más utilizados en servidores con cPanel/WHM. Permite gestionar el acceso al servidor de forma avanzada, bloqueando o permitiendo direcciones IP desde la línea de comandos.
En este artículo aprenderás a bloquear, desbloquear, consultar y gestionar direcciones IP en CSF mediante SSH, incluyendo un método para bloqueo masivo de múltiples IPs de forma eficiente.
Requisitos previos
- Acceso SSH al servidor con privilegios de root.
- CSF instalado y activo en el servidor. Puedes verificarlo con el comando
csf -v.
Bloquear una IP
Para bloquear (denegar) una dirección IP individual, ejecuta:
csf -d 1.2.3.4
Opcionalmente puedes agregar un comentario para identificar el motivo del bloqueo:
csf -d 1.2.3.4 "Ataque de fuerza bruta detectado"
Bloquear un rango de IPs (CIDR)
CSF permite bloquear rangos completos de IPs utilizando notación CIDR. Ejecuta cualquiera de los siguientes comandos de acuerdo con tus necesidades:
csf -d 111.0.0.0/8
csf -d 111.111.0.0/16
csf -d 111.111.111.0/24
Diferencia entre rangos CIDR
/8 — Bloquea todas las IPs que comparten el primer octeto. Ejemplo: 111.0.0.0/8 bloquea desde 111.0.0.0 hasta 111.255.255.255 (más de 16 millones de IPs). Es el rango más amplio./16 — Bloquea todas las IPs que comparten los primeros dos octetos. Ejemplo: 111.111.0.0/16 bloquea desde 111.111.0.0 hasta 111.111.255.255 (65,536 IPs)./24 — Bloquea todas las IPs que comparten los primeros tres octetos. Ejemplo: 111.111.111.0/24 bloquea desde 111.111.111.0 hasta 111.111.111.255 (256 IPs). Es el rango más específico y el más utilizado.
Bloquear múltiples IPs de forma masiva
Cuando necesitas bloquear una gran cantidad de IPs, existen dos métodos:
Método 1: Archivo TXT con for loop
- Crea un archivo de texto con las IPs que deseas bloquear (una IP por línea):
nano block.txt
Ejemplo de contenido del archivo:
1.2.3.4
5.6.7.8
9.10.11.12
- Ejecuta el siguiente comando para bloquear todas las IPs del archivo de una sola vez:
for i in $(cat block.txt); do csf -d $i; done
Método 2: Editar csf.deny directamente (recomendado para listas grandes)
Si necesitas bloquear cientos o miles de IPs, el método anterior puede ser lento porque CSF reinicia las reglas de iptables con cada IP. Una alternativa más eficiente es agregar las IPs directamente al archivo de denegación y reiniciar CSF una sola vez:
- Agrega las IPs al archivo
csf.deny:
cat block.txt >> /etc/csf/csf.deny
- Reinicia CSF para aplicar los cambios:
csf -r
Importante: Asegúrate de que el archivo block.txt contenga únicamente IPs válidas (una por línea, sin espacios ni líneas vacías adicionales) antes de agregarlo a csf.deny.
Bloqueo temporal
Si deseas bloquear una IP por un tiempo específico y que se desbloquee automáticamente, utiliza la opción -td. El tiempo se especifica en segundos:
csf -td 1.2.3.4 3600 -p 80 "Bloqueo temporal 1 hora"
En este ejemplo, la IP 1.2.3.4 será bloqueada durante 3600 segundos (1 hora) en el puerto 80. Puedes omitir -p 80 para bloquear todos los puertos.
Desbloquear una IP
Para remover una IP de la lista de bloqueo permanente:
csf -dr 1.2.3.4
Para remover una IP de la lista de bloqueo temporal:
csf -tr 1.2.3.4
Permitir una IP (whitelist)
Para asegurarte de que una IP nunca sea bloqueada (por ejemplo, la IP de tu oficina o de un servicio externo), agrégala a la lista de permitidos:
csf -a 1.2.3.4 "IP de oficina"
Para remover una IP de la lista de permitidos:
csf -ar 1.2.3.4
Consultar el estado de una IP
Antes de bloquear una IP, es útil verificar si ya se encuentra en alguna lista de CSF (bloqueada, permitida o temporal):
csf -g 1.2.3.4
Este comando mostrará en qué listas aparece la IP y las reglas de iptables asociadas a ella.
Listar todas las IPs bloqueadas
Para ver todas las IPs bloqueadas permanentemente:
cat /etc/csf/csf.deny
Para ver las IPs bloqueadas temporalmente:
csf -t
Para ver las IPs permitidas (whitelist):
cat /etc/csf/csf.allow
Referencia rápida de comandos
csf -d IP — Bloquear IP permanentemente.csf -dr IP — Desbloquear IP permanente.csf -td IP segundos — Bloquear IP temporalmente.csf -tr IP — Desbloquear IP temporal.csf -a IP — Permitir IP (whitelist).csf -ar IP — Remover IP de whitelist.csf -g IP — Consultar estado de una IP.csf -t — Listar bloqueos temporales.csf -r — Reiniciar CSF.csf -v — Ver versión de CSF.
Recomendaciones
- Siempre verifica el estado de una IP con
csf -g antes de bloquearla para evitar duplicados o conflictos con la whitelist. - Utiliza bloqueos temporales (
csf -td) cuando no estés seguro de que el tráfico sea permanentemente malicioso. - Para listas de más de 50 IPs, prefiere el método de editar
csf.deny directamente y reiniciar CSF una sola vez. - Agrega siempre la IP de tu oficina o conexión principal a la whitelist con
csf -a para evitar bloquearte a ti mismo. - Revisa periódicamente
csf.deny para limpiar bloqueos antiguos que ya no sean necesarios. - CSF tiene un límite predeterminado de entradas en
csf.deny (controlado por DENY_IP_LIMIT en /etc/csf/csf.conf). Si bloqueas muchas IPs, verifica que este valor sea suficiente.