Cómo configurar un bloqueo de IP por país en Plesk o DirectAdmin
¿Por qué bloquear un país en tu servidor?
Imagina que tienes una tienda física y de repente entran cien personas a la vez que no van a comprar nada, solo a mirar y tocar todo. Eso, en el mundo digital, es lo que ocurre cuando recibes ataques masivos desde países donde no tienes clientes. Bloquear IP por país es una de las medidas de seguridad regional más efectivas que puedes implementar, especialmente si tu negocio opera solo en España o Latinoamérica.
El bloqueo geográfico no es una solución milagrosa, pero reduce drásticamente el ruido de bots, intentos de fuerza bruta y tráfico malicioso. En esta guía te enseñaré a configurarlo tanto en Plesk como en DirectAdmin, dos de los paneles de control más usados en hosting compartido y VPS. La buena noticia: no necesitas ser un hacker ni saber programar. Solo seguir estos pasos.
[INFO] Este artículo está pensado para usuarios de hosting con panel Plesk o DirectAdmin. Si tu proveedor usa otro panel como Syspanel (antes HestiaCP), el proceso es similar, y recuerda que el puerto de acceso a Syspanel es el 2106.
Antes de empezar: conceptos básicos que debes conocer
¿Qué es un bloqueo por país y cómo funciona?
Cada vez que alguien visita tu web, su IP tiene un origen geográfico. El bloqueo por país consulta una base de datos (generalmente MaxMind o GeoIP) que asocia cada dirección IP con una región. Si la IP pertenece a un país que está en tu lista negra, el servidor rechaza la conexión antes de que llegue a tu sitio.
¿Qué necesitas?
- Acceso al panel de control (Plesk o DirectAdmin).
- Permisos de administrador o root en el servidor.
- Saber qué países quieres bloquear (¡no bloquees tu propio país por error!).
- Unos minutos y paciencia.
¿Qué pasa si bloqueas un país entero?
Los países grandes tienen IPs dinámicas y compartidas. Es posible que bloquees a un usuario legítimo que usa una VPN o que su proveedor le asigne una IP de otro país. Por eso te recomiendo empezar con los países que claramente no son tu audiencia (por ejemplo, si vendes solo en México, puedes bloquear Rusia, China o Corea del Norte).
[WARNING] Bloquear países puede afectar el SEO si tienes visitas internacionales. Google entiende el bloqueo por IP como una señal de que tu contenido no es relevante para esa región. Úsalo con moderación.
Cómo bloquear IP por país en Plesk
Plesk tiene un módulo llamado ModSecurity y también permite configurar reglas de firewall a nivel de servidor. La forma más sencilla para un usuario no técnico es usar la herramienta Administrador de firewall integrada.
Paso 1: Accede al firewall de Plesk
- Inicia sesión en Plesk con tu cuenta de administrador.
- Ve a Herramientas y configuración (en el menú lateral izquierdo).
- Busca la sección Seguridad y haz clic en Administrador de firewall.
Este módulo te permite crear reglas de tráfico entrante y saliente. No te asustes con la interfaz, es más simple de lo que parece.
Paso 2: Crea una regla para bloquear un país
Plesk no tiene un botón mágico de "bloquear país" por defecto. Para lograrlo, necesitas usar listas de IPs por país que puedes descargar de servicios gratuitos como IP2Location o MaxMind. Te explico el método práctico:
- Descarga el archivo CSV con las IPs del país que quieres bloquear (por ejemplo,
CN.csvpara China). - En el firewall de Plesk, haz clic en Agregar regla.
- En el campo Dirección IP, pega el rango de IPs (puedes copiar varias separadas por comas si el archivo lo permite).
- En Acción, selecciona Denegar.
- Elige la interfaz (normalmente
eth0opublic) y el protocolo (todo). - Guarda la regla.
[TIP] Si el archivo CSV tiene miles de IPs, no las pegues una por una. Usa un script o herramienta como
ipsetpara gestionarlas. En Plesk, puedes crear un archivo de reglas personalizado en/etc/firewall/si tienes acceso SSH.
Paso 3: Verifica que la regla funcione
Después de guardar, Plesk aplica los cambios automáticamente. Puedes probar usando un servicio online de "ver mi IP" desde un VPN de ese país, o simplemente revisar los registros del firewall que aparecen en la misma sección.
Alternativa avanzada: ModSecurity
Si tu plan de Plesk incluye ModSecurity, puedes añadir una regla personalizada para bloquear países usando la variable GEO. Esto es más elegante pero requiere editar archivos de configuración. Te dejo un ejemplo:
SecRule REMOTE_ADDR "@geoLookup" "chain,id:1001,deny,msg:'País bloqueado'"
SecRule GEO:COUNTRY_CODE "@streq CN"
Este código va en el archivo de reglas de ModSecurity. Si no sabes dónde colocarlo, pide ayuda a tu proveedor de hosting.
Cómo bloquear IP por país en DirectAdmin
DirectAdmin es más ligero que Plesk, pero igualmente potente. Para bloquear por país, usaremos el firewall del sistema (CSF, ConfigServer Security Firewall) que es la herramienta estándar en la mayoría de servidores con DirectAdmin.
Paso 1: Instala o verifica CSF
Accede por SSH a tu servidor (necesitas root). Si no tienes CSF instalado, ejecuta:
cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
Una vez instalado, verifica que esté activo:
csf -v
Paso 2: Configura el bloqueo por país en CSF
CSF tiene una función nativa llamada CC_DENY (Country Code Deny). Es tan fácil como editar un archivo.
- Abre el archivo de configuración:
nano /etc/csf/csf.conf
- Busca las líneas que dicen
CC_DENYyCC_ALLOW. Verás algo así:
# Country Code to CIDR conversions
CC_DENY = ""
CC_ALLOW = ""
- En
CC_DENY, escribe los códigos de país que quieres bloquear, separados por comas. Por ejemplo, para bloquear Rusia, China y Ucrania:
CC_DENY = "RU,CN,UA"
- Guarda el archivo (Ctrl+O, luego Enter, luego Ctrl+X).
Paso 3: Aplica los cambios
Ahora debes reiniciar el firewall para que tome la configuración:
csf -r
CSF automáticamente descargará las listas de IPs de esos países y las bloqueará en el firewall. Puedes verificar con:
csf -l | grep DENY
[TIP] DirectAdmin también permite gestionar CSF desde su panel gráfico: Administración → Administración de plugins → Firewall (CSF). Ahí puedes editar
CC_DENYsin usar SSH.
Paso 4: Excepciones importantes
Si tienes clientes en esos países que usan tu web legítimamente, puedes añadirlos a CC_ALLOW para que no se vean afectados. Por ejemplo:
CC_ALLOW = "RU,CN"
Pero ojo: si los pones en ambos, gana la regla de permitir.
Comparación rápida: Plesk vs DirectAdmin vs cPanel
| Panel | Método | Dificultad | ¿Nativo? |
|---|---|---|---|
| Plesk | Firewall manual + listas CSV | Media | No (requiere listas externas) |
| DirectAdmin | CSF con CC_DENY | Baja | Sí (integrado) |
| cPanel | ConfigServer Security & Firewall | Baja | Sí (plugin) |
Si tu proveedor usa cPanel IP, el proceso es idéntico al de DirectAdmin porque ambos usan CSF. En cPanel, ve a Plugins → ConfigServer Security & Firewall → Country Deny y añade los códigos.
Errores comunes y cómo solucionarlos
1. Bloqueé mi propio país por error
Es el fallo más típico. Si ves que no puedes entrar a tu web, revisa la configuración y quita tu código de país de la lista. En CSF, ejecuta csf -r después del cambio.
2. El bloqueo no funciona
Puede deberse a que el tráfico pasa por un CDN (como Cloudflare). Si usas Cloudflare, las IPs que llegan a tu servidor son las de Cloudflare, no las del visitante. En ese caso, el bloqueo por país debe hacerse en Cloudflare, no en el servidor.
[WARNING] Si usas Cloudflare, configurar bloqueo por país en Plesk o DirectAdmin servirá de poco. Deberías usar las reglas de firewall de Cloudflare para bloquear países, que es mucho más efectivo.
3. El archivo CSV de IPs es enorme
Para países como China o EE.UU., hay millones de rangos IP. Pegarlos manualmente en Plesk es inviable. Usa CSF (DirectAdmin/cPanel) que gestiona esto automáticamente. Si estás en Plesk, considera migrar a un VPS con DirectAdmin.
Preguntas frecuentes (FAQ)
¿Puedo bloquear un país sin afectar a los usuarios de VPN?
No completamente. Las VPNs pueden enmascarar el país de origen. El bloqueo por país solo funciona con IPs reales. Si un usuario usa VPN, no podrás detectar su ubicación real.
¿Esto afecta el rendimiento de mi web?
Mínimamente. El firewall consulta la base de datos GeoIP en cada conexión, pero es un proceso muy rápido. Notarás una mejora porque eliminas tráfico basura.
¿Cuánto tarda en aplicarse el bloqueo?
Con CSF, es inmediato. Con Plesk, unos segundos. En ambos casos, no necesitas reiniciar el servidor.
¿Puedo desbloquear un país más adelante?
Sí, simplemente elimina el código de país de la configuración y aplica los cambios. No hay ningún riesgo permanente.
Conclusión y recomendaciones finales
Bloquear IP por país es una estrategia de seguridad regional que todo administrador de hosting debería dominar. Tanto Plesk como DirectAdmin ofrecen caminos viables, aunque DirectAdmin con CSF es claramente más amigable para principiantes.
Mi recomendación personal:
- Si usas DirectAdmin o cPanel, ve directo a CSF y usa
CC_DENY. Es lo más simple y eficiente. - Si usas Plesk, plantéate migrar a un VPS con DirectAdmin si el bloqueo por país es crítico para ti. La opción manual con CSV funciona, pero es engorrosa.
No olvides monitorizar tu tráfico después del bloqueo. Puedes usar herramientas como Google Analytics para ver si hay caídas relevantes. Y recuerda: el bloqueo por país no es un sustituto de un buen firewall de aplicaciones (WAF) ni de contraseñas seguras. Es una capa más de protección, no la solución definitiva.
[TIP] Combina el bloqueo por país con otras medidas: autenticación de dos factores, límites de intentos de login y actualizaciones periódicas de tu CMS. La seguridad nunca es demasiada.
Espero que esta guía te haya sido útil. Si tienes dudas, consulta con tu proveedor de hosting antes de hacer cambios drásticos. ¡Buena suerte y que tu web esté más segura!
