Tutorial - Proteger un directorio o el panel de administración de su sitio web con los archivos .htaccess y .htpasswd
Información sobre la traducción
Esta traducción ha sido generada de forma automática por nuestro partner SYSTRAN. En algunos casos puede contener términos imprecisos, como en las etiquetas de los botones o los detalles técnicos. En caso de duda, le recomendamos que consulte la versión inglesa o francesa de la guía. Si quiere ayudarnos a mejorar esta traducción, por favor, utilice el botón «Contribuir» de esta página.
Objetivo
Este tutorial explica cómo crear la autenticación "usuario/contraseña" para acceder a la totalidad o parte de su sitio web a través de un navegador de internet.
Utilizando dos archivos de configuración (HTTP) Apache que quiere situar en el espacio FTP de su alojamiento web:
- ".htaccess": para más información sobre las funcionalidades de este fichero, consulte nuestro tutorial sobre "Operaciones realizables con un fichero ".htaccess".
- ".htpasswd": además de este tutorial, consulte la documentación oficial de Apache relativa a este archivo.
La configuración, la gestión y la responsabilidad de los servicios que OVHcloud pone a su disposición recaen sobre usted. Por lo tanto, usted deberá asegurarse de que estos funcionan correctamente.
Ponemos a su disposición esta guía para ayudarle a realizar las tareas más habituales. No obstante, si necesita ayuda, le recomendamos que contacte con un proveedor especializado o con el editor del servicio. Nosotros no podremos asistirle. Más información en la sección "Más información" de esta guía.
Deberá configurar los siguientes ejemplos en archivos con los nombres ".htaccess" y ".htpasswd". Atención: Las reglas que usted establezca en estos archivos tienen consecuencias directas en su sitio web. Compruebe sistemáticamente las reglas que añade antes de aplicarlas a su sitio web.
Descubra cómo proteger un repertorio o el acceso a la parte de administrador de su sitio web mediante autenticación con los archivos ".htaccess" y ".htpasswd".
Requisitos
- Tener un plan de hosting.
- Disponer de las claves de conexión al espacio FTP de su alojamiento.
Procedimiento
La solución de seguridad propuesta aquí es solo una posibilidad técnica entre otras.
Tenga en cuenta, por ejemplo, que si utiliza un Conent Management System (CMS), existen otras soluciones de seguridad.
Si utiliza un CMS WordPress, OVHcloud también pone a su disposición un tutorial sobre cómo utilizar el archivo htaccess con WordPress.
Si tiene cualquier duda relativa a la creación, el uso o la programación de su sitio web, el soporte de OVHcloud no podrá ofrecerle soporte sobre estos temas.
Para ello, contacte con nuestra comunidad de usuarios o nuestros partners de OVHcloud.
A continuación explicamos los 4 pasos principales que debe seguir para proteger el acceso a un directorio o a la totalidad o parte de su sitio web:
-
Crear archivos "crypt.php", ".htaccess" y ".htpasswd".
-
Generar contraseñas codificadas con el archivo "crypt.php".
- Establecer usuarios y contraseñas codificadas con el archivo ".htpasswd".
- Configurar reglas en el archivo ".htaccess" y eliminar el archivo "crypt.php".
Los pasos que se indican a continuación optimizarán la seguridad de los datos alojados. Por lo tanto, si sus sitios web son compatibles, le recomendamos encarecidamente que utilice la versión de PHP más reciente posible.
Para modificar la versión de PHP de sus sitios web en su alojamiento web, consulte nuestra guía "Web hosting : entorno, versión PHP, .ovhconfig".
En efecto, los scripts e información descritos más abajo en este tutorial sólo funcionan con un entorno de ejecución y una versión PHP reciente.
En su defecto, le recomendamos que optimice su sitio web para hacerla compatible antes de realizar las acciones que se indican a continuación. Esto reducirá aún más el riesgo de piratear los datos mediante fallos de seguridad.
Etapa 1: crear los archivos "crypt.php", ".htaccess" y ".htpasswd"
Conéctese al espacio de almacenamiento FTP de su alojamiento web. Abra el "directorio raíz" hacia el que apunte su nombre de dominio.
Cree un archivo "crypt.php" en esta carpeta raíz.
Abra o cree la carpeta destinada a la protección de su sitio web. En nuestro ejemplo, esta es la carpeta "admin". Cree un archivo ".htpasswd" y un archivo ".htaccess" en este directorio.
Para utilizar correctamente los archivos ".htaccess" y ".htpasswd", debe conocer y respetar las siguientes reglas:
- un único fichero ".htaccess" y un único fichero ".htpasswd" por directorio o subdirectorio, para evitar conflictos entre diferentes ficheros ".htaccess" y diferentes ".htpasswd";
- los archivos ".htaccess" y ".htpasswd" son invisibles para los internautas que visitan su sitio web;
- las reglas declaradas en un archivo ".htaccess" se aplican a todo el directorio en el que está instalado el archivo ".htaccess", así como a todos los subdirectorios del mismo directorio.
- Los archivos ".htpasswd" y ".htaccess" pueden estar en carpetas diferentes. Solo puede utilizar un fichero ".htpasswd" para varios ".htaccess".
Etapa 2: completar el archivo "crypt.php"
Suba a la carpeta raíz en la que creó el archivo "crypt.php". Haga clic en Editar y sitúe las siguientes líneas:
Sustituya únicamente por plain_text_password por la contraseña en claro que desee cifrar.
Puede ajustar el script en función del número de contraseñas que desee cifrar.
- Ejemplo en el que el script PHP cifrará 3 contraseñas en una sola operación:
Sustituya únicamente por plain_text_password1, plain_text_password2 y plain_text_password3 por las contraseñas en claro* que desee cifrar.
Los dos scripts anteriores utilizan, en la fecha, el método de cifrado más seguro utilizando el algoritmo bcrypt recomendado por Apache.
Para más información sobre el asunto, consulte la documentación oficial Apache.
Si dispone de un alojamiento Pro o Performance, conéctese a su alojamiento web en SSH. Vaya a la carpeta "*raíz" en la que se encuentra su script "crypt.php".
Para ello, utilice el siguiente comando SSH:
Sustituya Name_of_your_root_folder por el nombre de su "carpeta raíz" para descender a la que está su script "crypt.php".
Si, por ejemplo, el archivo "crypt.php" está en una subcarpeta de su "carpeta raíz", utilice el siguiente comando SSH:
Sustituya Name_of_your_root_folder por el nombre de su "carpeta raíz" y sub_folder por el subdirectorio en el que se encuentra su script "crypt.php".
Una vez que esté presente en el nivel en el que se encuentra su script "crypt.php", ejecute el siguiente comando:
Por motivos de seguridad, se recomienda el uso del SSH. No obstante, si tiene un producto Perso en el que el SSH no está disponible, puede igualmente ejecutar el fichero "crypt.php" a través de su navegador web.
Para ello, introduzca la siguiente URL: https://domain.tld/crypt.php modificando domain.tld por su propio nombre de dominio. Esto se muestra directamente en la barra de direcciones de su navegador web.
Obtenga las contraseñas encriptadas sin copiar el "<br />" si ejecuta el comando "php crypt.php" en SSH:
Los valores de encrypted_password1, encrypted_password2 y encrypted_password3 deben, por ejemplo, parecerse al formato de la siguiente línea:
Compruebe que su(s) contraseña(s) haya(n) comenzado(n) bien por $2y$. Esto le confirmará que la contraseña se ha cifrado correctamente con el algoritmo seguro bcrypt.
Etapa 3: establecer los usuarios y las contraseñas codificadas con el archivo ".htpasswd"
El archivo ".htpasswd" contiene las contraseñas cifradas correspondientes a cada uno de los usuarios declarados en el archivo. Solo estos usuarios podrán conectarse al directorio del que quiera proteger el acceso.
Para ello, introduzca en el archivo una línea con el nombre de usuario y la contraseña numéricos, y haga clic en cada usuario:
Sustituya los valores user1, user2 y user3 de nuestro ejemplo por sus propios nombres de usuario.
Sustituya también los encrypted_password1, encrypted_password2 y encrypted_password3 por sus propias contraseñas encriptadas anteriormente.
Etapa 4: configurar las reglas en el archivo ".htaccess"
Bloquear el acceso a un directorio completo
Cree un archivo ".htaccess" con el siguiente código en el directorio que quiere proteger:
-"Indicates your login(s)" : corresponde al usuario o usuarios autorizados a acceder al directorio completo. Si tiene más de un usuario, diviértelos únicamente por un espace.
- your_ftp_login : el login FTP que utiliza para conectarse a su espacio de almacenamiento FTP. Para obtener su login FTP, consulte nuestra guía sobre conexión a su espacio FTP.
- root_folder/admin/.htpasswd : ruta de acceso de repertorio desde la raíz FTP de su alojamiento web hasta el archivo ".htpasswd" que debe utilizarse para autentificar a los usuarios autorizados por la regla presente en su fichero ".htaccess".
Bloquear el acceso a uno o más archivos
Para bloquear el acceso a uno o varios archivos específicos, añada una Directiva "Files" en el archivo ".htaccess":
En el script anterior, sustituya los siguientes elementos por sus propios valores:
test.php: Nombre del archivo específico o grupo de archivos que contiene, en el ejemplo, el término test.php (término para el que debe aplicarse la restricción de acceso). -"Indicates your login(s)": corresponde al usuario o usuarios autorizados a acceder a los archivos cuyos nombres contienen test.php. Si tiene varios usuarios, diviértelos por un espace.your_ftp_login: el login FTP que utiliza para conectarse a su espacio de almacenamiento FTP. Para obtener su login FTP, consulte nuestra guía sobre conexión a su espacio FTP.root_folder/admin/.htpasswd: ruta de acceso a la carpeta desde la raíz FTP de su alojamiento web hasta el archivo ".htpasswd" que debe utilizarse para autentificar a los usuarios autorizados por la directiva del fichero ".htaccess".
Deberá indicar una Directiva "Files" para cada archivo que quiera proteger.
Las directivas "Files" se aplican a todos los archivos del mismo nombre o que terminan con el nombre especificado. Siempre que estén contenidos en el mismo directorio que el ".htaccess" o en uno de sus subdirectorios.
En la configuración arriba indicada, como "new_test.php" contiene test.php en su nombre, la directiva "Files" se aplicaría también a un fichero "new_test.php" contenido en un subdirectorio de la carpeta "admin".
Además, mientras no se haya autenticado para acceder a los archivos afectados por la Directiva, estos pueden no aparecer y, por tanto, no pueden ser "listables" a través de una página "índex of".
Una vez que haya finalizado la instalación de los archivos ".htaccess" y ".htpasswd", elimine el archivo de cifrado "crypt.php" de su alojamiento web.
Más información
Conectarse al espacio FTP de un alojamiento web
Tutorial - Operaciones viables con un fichero ".htaccess"
Bloquear el acceso a mi sitio web para algunas direcciones IP a través de un archivo .htaccess
Reescribir la URL de acceso a mi sitio web gracias al mod_rewrite a través del archivo .htaccess
Para servicios especializados (posicionamiento, desarrollo, etc.), contacte con partners de OVHcloud.
Si quiere disfrutar de ayuda para utilizar y configurar sus soluciones de OVHcloud, puede consultar nuestras distintas soluciones pestañas de soporte.
Interactúe con nuestra comunidad de usuarios.