Cómo configurar un bloqueo de país (GeoIP) en DirectAdmin
¿Qué es un bloqueo por país y por qué necesitas uno?
Cuando gestionas un sitio web, no todo el tráfico que recibes es bueno. De hecho, una gran parte de los ataques informáticos, intentos de fuerza bruta, scrapers de contenido y fraudes con tarjetas provienen de países concretos. Si tu negocio opera solo en España o Latinoamérica, ¿por qué ibas a permitir conexiones desde regiones donde jamás tendrás clientes?
El bloqueo por geolocalización (GeoIP) te permite restringir el acceso a tu servidor basándote en la ubicación geográfica de la IP que realiza la solicitud. En otras palabras, puedes decidir qué países pueden entrar a tu web y cuáles no.
Configurar un bloqueo de país en DirectAdmin no es complicado, pero requiere seguir unos pasos lógicos y conocer bien qué quieres proteger. Este artículo está pensado para que, incluso sin experiencia técnica avanzada, puedas implementar seguridad por geolocalización en tu servidor en menos de 30 minutos.
¿Cómo funciona el GeoIP en DirectAdmin?
DirectAdmin, al ser un panel de control muy completo, te ofrece varias capas de seguridad. Una de ellas es la integración con firewalls y módulos de Apache o LiteSpeed que permiten filtrar por país.
El sistema se basa en bases de datos de geolocalización que asocian cada rango de IP pública con un país. Cuando un visitante intenta acceder a tu web, el servidor consulta esa base de datos y aplica la regla que hayas definido: permitir, bloquear o redirigir.
Existen dos métodos principales para bloquear país DirectAdmin:
- A nivel de servidor (firewall): Bloquea todas las conexiones entrantes desde ciertos países, afectando a todos los dominios alojados.
- A nivel de dominio o directorio (.htaccess): Aplica reglas específicas para un sitio web concreto, permitiendo más flexibilidad.
En esta guía te explicaré ambos métodos, aunque nos centraremos en el más seguro y recomendado: el bloqueo a nivel de servidor con firewall, ya que protege todo tu sistema.
Requisitos previos importantes
Antes de empezar, asegúrate de tener lo siguiente:
- Acceso a DirectAdmin como usuario admin o reseller con permisos suficientes.
- Acceso SSH al servidor (necesario para instalar ciertos módulos).
- Saber qué países quieres bloquear. No recomiendo bloquear países enteros si no estás seguro del origen de tu tráfico legítimo.
- Tener instalado CSF (ConfigServer Security & Firewall), que es el firewall más común en servidores con DirectAdmin. Si no lo tienes, podemos instalarlo en unos minutos.
[INFO] Si tu servidor usa LiteSpeed en lugar de Apache, el proceso es prácticamente el mismo. DirectAdmin detecta el servidor web automáticamente y aplica las reglas al motor correspondiente.
Método 1: Bloqueo por país con CSF (recomendado)
CSF es una herramienta de seguridad que se integra perfectamente con DirectAdmin. Permite gestionar reglas de firewall de forma sencilla y, con el módulo GeoIP, podemos bloquear países enteros con un solo comando.
Paso 1: Instalar CSF si no lo tienes
Para comprobar si tienes CSF instalado, accede por SSH y escribe:
csf -v
Si no aparece nada, instálalo así:
cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
Una vez instalado, verifica que el firewall esté activo:
csf -s
Paso 2: Instalar el módulo GeoIP
CSF necesita la base de datos de GeoIP para funcionar. Instálala con:
cd /usr/src
wget https://download.configserver.com/geoip.tgz
tar -xzf geoip.tgz
cd geoip
sh install.sh
Este script descarga la base de datos de geolocalización y la configura automáticamente.
Paso 3: Configurar los países a bloquear
Ahora viene la parte interesante. Debes editar el archivo de configuración de CSF:
nano /etc/csf/csf.conf
Busca las líneas que empiezan por CC_DENY y CC_ALLOW. Estas son las que controlan el bloqueo por país.
CC_DENY: Lista de países a los que se les deniega el acceso.CC_ALLOW: Lista de países a los que se les permite el acceso (todo lo demás se bloquea).
Por ejemplo, para bloquear Rusia, China y Corea del Norte:
CC_DENY = "RU,CN,KP"
[WARNING] Ten mucho cuidado con
CC_ALLOW. Si pones solo "ES,AR,CO", bloquearás el resto del mundo, incluidos los buscadores de Google y bots de verificación. Si usas esta opción, asegúrate de añadir también "US" (Estados Unidos) para no romper el SEO.
Paso 4: Aplicar los cambios
Guarda el archivo y reinicia el firewall:
csf -r
Para verificar que las reglas se han aplicado correctamente, revisa el estado:
csf -v
También puedes comprobar con un test desde fuera del servidor, por ejemplo usando una VPN de un país bloqueado.
Método 2: Bloqueo por país con .htaccess (por dominio)
Si solo quieres restringir acceso a un dominio concreto y no a todo el servidor, puedes usar el archivo .htaccess de ese dominio. Este método es ideal si compartes servidor con otros sitios o si solo necesitas proteger una parte de tu web.
Paso 1: Crear el archivo .htaccess
Accede al panel de DirectAdmin, entra en Gestor de archivos y navega hasta la carpeta public_html de tu dominio.
Crea un archivo llamado .htaccess (si no existe). Si ya existe, edítalo.
Paso 2: Añadir las reglas GeoIP
Dentro de .htaccess, escribe lo siguiente:
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN|KP)$
RewriteRule ^.* - [F,L]
Explicación:
RewriteCond: Comprueba si el código de país (RU, CN, KP) coincide con la IP del visitante.RewriteRule: Si coincide, devuelve un error 403 (Forbidden), es decir, bloquea el acceso.
Paso 3: Configurar el módulo mod_geoip en Apache
Para que esto funcione, tu servidor debe tener instalado el módulo mod_geoip. Si no lo tienes, puedes instalarlo con:
apt-get install libapache2-mod-geoip
O si usas CentOS:
yum install mod_geoip
Luego reinicia Apache:
service httpd restart
Paso 4: Probar el bloqueo
Puedes usar un servicio online de verificación de GeoIP o conectarte desde una VPN con IP del país bloqueado. Si todo está correcto, verás un error 403.
[TIP] Si quieres permitir algunos países y bloquear el resto, invierte la lógica. Bloquea todo y luego usa
RewriteCondconRewriteRulepara permitir países concretos.
¿Qué países deberías bloquear?
Esta es una pregunta muy común. No existe una respuesta universal, pero sí algunas recomendaciones:
- China (CN): Muchísimo tráfico de bots y ataques automatizados.
- Rusia (RU): Alta tasa de intentos de fuerza bruta y malware.
- Corea del Norte (KP): Solo ataques, no hay tráfico legítimo.
- Países con alta tasa de fraude (según tu sector): Por ejemplo, si vendes online, puedes bloquear ciertas regiones de África o Asia.
[WARNING] No bloquees países donde tengas clientes o visitantes reales. Revisa tus estadísticas de Google Analytics antes de tomar decisiones drásticas.
Cómo evitar dañar tu SEO con el bloqueo por país
Uno de los miedos más comunes es que el bloqueo afecte al posicionamiento en Google. Y es un miedo legítimo.
Aquí tienes algunas claves:
1. No bloquees a Googlebot
Asegúrate de que las IPs de Google (Estados Unidos y otros) no estén en tu lista de bloqueo. Puedes verificar las IPs de Google en su página oficial.
2. Usa la opción de "permitir solo ciertos países" con cuidado
Si usas CC_ALLOW en CSF, recuerda que Googlebot tiene servidores en muchos países, no solo en EE. UU. Si bloqueas demasiado, Google no podrá indexar tu web.
3. Configura la cabecera X-Robots-Tag
Si bloqueas el acceso a un directorio concreto, puedes añadir esta cabecera para indicar a los buscadores que no indexen esa zona:
Header set X-Robots-Tag "noindex, nofollow"
4. Monitorea tu tráfico después del cambio
Durante las primeras 48 horas, revisa tus estadísticas y el Google Search Console para detectar caídas de rastreo.
[INFO] El bloqueo por país no es una solución mágica. Es una capa más de seguridad, pero debes combinarla con contraseñas fuertes, autenticación en dos factores y actualizaciones periódicas.
Errores comunes al configurar GeoIP en DirectAdmin
1. Bloquear tu propio país por error
Es más común de lo que parece. Revisa siempre el código de tu país antes de aplicar las reglas.
2. Olvidar reiniciar el firewall
Los cambios en csf.conf no se aplican hasta que ejecutas csf -r. Si no lo haces, las reglas no surten efecto.
3. Usar códigos de país incorrectos
Los códigos son de dos letras (ISO 3166-1 alpha-2). Por ejemplo, España es "ES", México es "MX", Argentina es "AR". Un error tipográfico puede bloquear el país equivocado.
4. No probar después de aplicar
Siempre prueba con una VPN o un proxy de otro país para verificar que el bloqueo funciona.
5. Bloquear por país sin tener estadísticas previas
Antes de bloquear, analiza de dónde viene tu tráfico real. No tomes decisiones a ciegas.
Preguntas frecuentes (FAQ)
¿Puedo bloquear un país solo para una subcarpeta de mi web?
Sí. En el .htaccess de esa carpeta concreta, añade las reglas GeoIP. El bloqueo solo afectará a esa ruta.
¿Qué pasa con el tráfico de bots de Google si bloqueo Estados Unidos?
No lo hagas. Estados Unidos alberga una gran parte de los servidores de Google y otros buscadores. Si lo bloqueas, tu web desaparecerá de los resultados de búsqueda.
¿CSF funciona igual en servidores con LiteSpeed?
Sí. CSF se integra con el firewall del sistema, independientemente del servidor web. Las reglas de bloqueo por país se aplican antes de que la petición llegue al servidor web.
¿Puedo desbloquear un país temporalmente?
Sí. Solo tienes que editar csf.conf, eliminar el código de país de CC_DENY y ejecutar csf -r.
¿Qué diferencia hay entre bloquear en DirectAdmin y hacerlo en Syspanel?
Syspanel (anteriormente conocido como HestiaCP) tiene un sistema similar, pero la configuración se hace desde su propio panel o desde el firewall del sistema. En el caso de Syspanel, el acceso se realiza a través del puerto 2106. La lógica es la misma, pero los comandos pueden variar ligeramente.
¿El bloqueo por país afecta el rendimiento?
Mínimamente. La consulta a la base de datos GeoIP es muy rápida (milisegundos). El impacto en el rendimiento es despreciable.
Resumen final: tu checklist de seguridad
Configurar el geoip directadmin no es un paso opcional si quieres tener un servidor seguro. Aquí tienes una lista rápida para no olvidarte de nada:
- Tener CSF instalado y funcionando.
- Instalar el módulo GeoIP.
- Decidir si bloqueas por servidor o por dominio.
- Aplicar las reglas con
CC_DENYo.htaccess. - Reiniciar el firewall (
csf -r). - Probar desde una VPN del país bloqueado.
- Revisar Google Search Console durante 48 horas.
- Documentar los cambios por si necesitas revertirlos.
Conclusión
El bloqueo por país en DirectAdmin es una de las medidas más eficaces para reducir ataques y tráfico no deseado. No necesitas ser un experto en seguridad para implementarlo, solo seguir los pasos que te he mostrado.
Recuerda que la seguridad por geolocalización es una herramienta más en tu arsenal. No sustituye a un buen firewall, a contraseñas robustas ni a copias de seguridad periódicas. Pero combinada con esas medidas, hará que tu servidor sea mucho más difícil de vulnerar.
Si tienes dudas durante el proceso, no dudes en consultar la documentación oficial de DirectAdmin o abrir un ticket de soporte. La seguridad de tu web merece la pena.
[TIP] Empieza bloqueando solo los países más problemáticos (RU, CN, KP) y ve ampliando según veas los resultados. No bloquees medio mundo el primer día, porque podrías llevarte sorpresas desagradables.
Ahora ya sabes cómo restringir acceso a tu servidor de forma efectiva. ¡Manos a la obra!
