Cómo proteger el acceso a /admin de PrestaShop con IP en DirectAdmin
¿Cansado de que bots y curiosos intenten entrar al panel de administración de tu tienda PrestaShop? Es una preocupación muy común, y la buena noticia es que tiene una solución sencilla y muy efectiva. Vamos a aprender a restringir IP PrestaShop para que solo tú (o tu equipo) podáis acceder al directorio /admin. Lo haremos directamente desde el panel de control de tu hosting, DirectAdmin, usando un archivo llamado .htaccess. No necesitas ser un experto en informática, solo seguir los pasos con calma.
Este método es como poner una llave especial a la puerta de tu trastienda: aunque alguien tenga la cerradura (la URL de acceso), no podrá abrirla si no tiene la llave correcta (tu dirección IP). Es una de las mejores prácticas para proteger admin PrestaShop y una capa extra de seguridad que te recomendamos encarecidamente.
A lo largo de esta guía, te explicaré qué es una IP, por qué es importante proteger esta zona y, sobre todo, cómo hacerlo paso a paso con DirectAdmin .htaccess. Al final, tendrás tu tienda mucho más segura y dormirás más tranquilo.
¿Por qué es tan importante proteger el acceso a /admin de PrestaShop?
Piensa en tu tienda online como una casa. La fachada (tu catálogo de productos) es pública, pero la trastienda (tu panel de administración) contiene todo lo valioso: datos de clientes, pedidos, configuración de pagos, etc. Si alguien no autorizado accede a esa trastienda, podría causar un desastre.
PrestaShop, por defecto, ya tiene un sistema de contraseñas, pero la seguridad PrestaShop se basa en capas. Añadir una restricción por IP es una barrera adicional muy potente. ¿Por qué? Porque no solo pides una contraseña (algo que se puede robar o adivinar), sino que también exiges que la conexión provenga de un lugar específico y autorizado (tu IP). Es la combinación perfecta.
Imagina que los intentos de acceso a /admin son como llamadas a tu puerta. Con la restricción por IP, es como si el portero automático solo respondiera a los números de teléfono que tú has programado. Cualquier otro número, simplemente, no recibe respuesta.
Entendiendo los conceptos clave: IP, DirectAdmin y .htaccess
Antes de ensuciarnos las manos, vamos a aclarar tres conceptos para que no haya ninguna duda.
¿Qué es una dirección IP?
Una dirección IP (Protocolo de Internet) es un número único que identifica tu dispositivo (ordenador, móvil, etc.) en internet. Es como tu matrícula o tu dirección postal digital. Cuando te conectas a internet, tu proveedor te asigna una IP pública. Esta es la que verá el servidor de tu tienda. Es importante saber que, para muchos usuarios domésticos, esta IP puede ser dinámica, es decir, puede cambiar de vez en cuando (por ejemplo, al reiniciar el router). Si te pasa esto, tendrás que actualizar la regla de vez en cuando o usar una IP fija (algo que se puede contratar con tu proveedor).
¿Qué es DirectAdmin?
DirectAdmin es uno de los paneles de control de hosting más populares. Es la interfaz gráfica que te permite gestionar tu servidor y tu sitio web: crear correos, gestionar bases de datos, subir archivos y, por supuesto, editar configuraciones de seguridad. Es tu "cuarto de máquinas" particular. Piensa en él como el centro de mando de tu hosting. En este caso, lo usaremos para editar un archivo de configuración.
¿Qué es el archivo .htaccess?
Es un archivo de configuración muy especial que se coloca en el directorio raíz de tu web o en subcarpetas (como /admin). Le dice al servidor web (Apache) cómo debe comportarse en ese directorio. Es como una nota con instrucciones que el camarero (el servidor) lee antes de atender a los clientes. Nosotros vamos a escribir una instrucción en este archivo para que, si alguien que no es de la familia (tu IP) intenta entrar, se le dé la vuelta.
Importante: El archivo .htaccess empieza por un punto, lo que lo convierte en un "archivo oculto" en muchos sistemas. No te preocupes, te enseñaré a verlo y editarlo.
Paso 1: Descubre tu dirección IP pública
El primer paso es saber cuál es tu IP actual. Es muy fácil. Solo tienes que seguir estos pasos:
- Abre tu navegador web (Chrome, Firefox, etc.).
- Ve a un sitio web como
https://www.cual-es-mi-ip.neto simplemente busca en Google "¿cuál es mi IP?". - El resultado te mostrará una serie de números, algo así como
91.132.245.23. Ese es tu número de identificación. ¡Anótalo! Lo necesitarás más adelante.
[INFO] Si tu IP es dinámica (cambia), este método seguirá funcionando, pero tendrás que repetir el proceso de actualización cada vez que cambie. Si tienes una IP fija (típico de conexiones de empresa o contratando un servicio extra), no tendrás que preocuparte por esto.
Paso 2: Localizar el archivo .htaccess de tu PrestaShop en DirectAdmin
Ahora vamos a entrar en materia. Necesitamos encontrar el archivo correcto. No queremos tocar el .htaccess raíz de la web (aunque también es importante), sino el que está dentro de la carpeta admin. Sigue estos pasos:
- Inicia sesión en DirectAdmin. Normalmente accedes a través de una URL como
https://tudominio.com:2222o la que te haya proporcionado tu proveedor de hosting. - Una vez dentro, busca la sección "Administrador de archivos" o "File Manager". Suele estar en el menú principal o en la sección "Cuenta".
- Se abrirá una nueva ventana o pestaña con el gestor de archivos. Navega hasta la carpeta
public_html. Esta es la raíz de tu sitio web. - Dentro de
public_html, busca la carpeta de administración de PrestaShop. Por defecto se llamaadminoadmin123(aunque es muy recomendable que la hayas renombrado por seguridad). Entra en esa carpeta. - Una vez dentro, es posible que no veas el archivo
.htaccessporque está oculto. Busca un botón o casilla que ponga "Mostrar archivos ocultos" o "Show Hidden Files". Actívalo. - Ahora deberías ver un archivo llamado
.htaccess. Si no existe, no pasa nada, lo crearemos desde cero. Haz clic derecho sobre él y selecciona "Editar" o "Edit".
[WARNING] Es crucial que edites el archivo
.htaccessque está DENTRO de la carpeta de administración (/admin), no el de la raíz (public_html). Si editas el equivocado, podrías bloquear el acceso a toda tu tienda.
Paso 3: Añadir el código de restricción por IP
Ahora viene la parte mágica. Verás que el archivo .htaccess tiene algunas líneas de código. No te asustes, no vamos a tocar nada de eso. Simplemente añadiremos nuestro código al principio o al final del archivo.
Copia y pega el siguiente bloque de código:
# PROTEGER ADMIN POR IP #
<FilesMatch "\.(tpl|json|xml)$">
Require all denied
</FilesMatch>
<IfModule mod_authz_core.c>
Require ip TU_IP_AQUI
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Allow from TU_IP_AQUI
</IfModule>
# FIN PROTEGER ADMIN POR IP #
Es muy importante que sustituyas TU_IP_AQUI por la dirección IP que anotaste en el Paso 1. Por ejemplo, si tu IP es 91.132.245.23, la línea quedaría así: Allow from 91.132.245.23.
¿Qué hace este código?
Te lo explico fácil:
<FilesMatch ...>: Esta parte bloquea el acceso a archivos de configuración internos de PrestaShop (como los.tplde las plantillas o los.xml). Es una medida extra de seguridad para que no se puedan leer o ejecutar.<IfModule mod_authz_core.c>: Este bloque es para servidores Apache modernos (versión 2.4+). Le dice al servidor que solo permita el acceso (Require ip) a la dirección IP que le indiques.<IfModule !mod_authz_core.c>: Este bloque es para servidores Apache más antiguos (versión 2.2). Hace lo mismo que el anterior, pero con una sintaxis distinta (Allow from).
Al incluir ambos bloques, nos aseguramos de que la regla funcione sin importar la versión de Apache que use tu hosting. Es una forma de hacer el código "universal".
Paso 4: Guardar los cambios y probar
Una vez que hayas pegado el código y sustituido la IP, solo tienes que:
- Guardar el archivo. Busca el botón de "Guardar" o "Save" en la parte superior del editor de archivos de DirectAdmin.
- Cerrar el editor.
Ahora viene la prueba de fuego.
- Abre una ventana de incógnito en tu navegador (o prueba desde otro dispositivo, como tu móvil con datos móviles, para que no use tu Wi-Fi).
- Intenta acceder a la URL de tu administración de PrestaShop (por ejemplo,
https://tudominio.com/admin). - Resultado esperado: Deberías ver un error 403 Forbidden o una página en blanco. ¡Eso es genial! Significa que la restricción está funcionando.
- Ahora, desde tu ordenador habitual (con tu IP), intenta acceder de nuevo. Deberías poder entrar con normalidad y ver la pantalla de login de PrestaShop.
[TIP] Si al probar desde tu IP habitual también te da error 403, es posible que tu IP haya cambiado. Vuelve al Paso 1 para comprobarla y actualiza el valor en el archivo
.htaccess.
Paso 5: ¿Y si mi IP es dinámica? Añade un rango de IPs
Como mencioné antes, muchas conexiones domésticas tienen IP dinámica. Para no estar actualizando el archivo cada dos por tres, puedes permitir un rango de IPs. Por ejemplo, si tu IP suele empezar por 91.132, puedes permitir todas las IPs que empiecen por esos números.
En el código, en lugar de poner la IP completa, usarías un asterisco (*) como comodín. Quedaría así:
Require ip 91.132.*.*
Y en el bloque antiguo:
Allow from 91.132.*.*
Esto permitiría el acceso a cualquier dispositivo cuya IP empiece por 91.132. Es menos seguro que poner una IP exacta, pero mucho más práctico si tu IP cambia con frecuencia. Úsalo con precaución, ya que estás ampliando el número de direcciones que pueden acceder.
Preguntas Frecuentes (FAQ)
¿Qué pasa si me quedo fuera de mi propio panel de administración?
No te preocupes, tiene solución. Accede a DirectAdmin, ve al Administrador de archivos, navega a tu carpeta admin y edita el archivo .htaccess. Simplemente elimina las líneas que añadiste o corrige la IP. Es como volver a entrar en tu casa con una copia de la llave.
¿Puedo añadir varias IPs?
¡Por supuesto! Si tienes un equipo de trabajo o quieres acceder desde casa y desde la oficina, puedes añadir varias IPs. Solo tienes que añadir más líneas Require ip o Allow from en el bloque correspondiente. Por ejemplo:
Require ip 91.132.245.23
Require ip 82.213.101.45
¿Esto funciona si uso un CDN como Cloudflare?
Es un poco más complejo. Si usas Cloudflare, la IP que ve tu servidor es la de Cloudflare, no la del visitante. En ese caso, tendrías que usar un método diferente, como la autenticación por contraseña o un módulo específico de PrestaShop. Este método es perfecto si no usas CDN o si tu CDN te permite pasar la IP real del visitante (a través de cabeceras HTTP).
¿Es esta la única forma de proteger mi PrestaShop?
No, es una capa muy efectiva, pero no la única. Te recomiendo combinarla con otras prácticas de seguridad PrestaShop:
- Cambia el nombre de la carpeta
adminpor uno único y difícil de adivinar. - Usa contraseñas fuertes y cambia la del administrador periódicamente.
- Mantén PrestaShop y sus módulos siempre actualizados.
- Activa la autenticación en dos pasos (2FA) en el panel de administración si tu versión lo permite.
[INFO] Si en algún momento tu hosting usa el panel Syspanel (antes conocido como HestiaCP), el proceso es muy similar, pero accederás al gestor de archivos a través del puerto 2106 (por ejemplo,
https://tudominio.com:2106). El resto de la lógica para editar el.htaccesses idéntica.
Conclusión: Un paso sencillo para una gran tranquilidad
Proteger el acceso a /admin de tu PrestaShop con una restricción por IP es una de las medidas más inteligentes y efectivas que puedes tomar. Es un proceso de pocos minutos que te ahorrará muchos quebraderos de cabeza. Has aprendido a restringir IP PrestaShop usando DirectAdmin .htaccess, un método robusto y sin necesidad de instalar módulos adicionales.
Ahora tu trastienda tiene un portero automático que solo deja pasar a quien tú quieras. Es una barrera más que, sumada a una buena contraseña, hace que los atacantes lo tengan mucho más difícil. Espero que esta guía te haya sido de gran ayuda. Si tienes alguna duda, no dudes en consultar la documentación de tu hosting o buscar ayuda profesional. ¡Tu tienda y tus clientes te lo agradecerán!
