Asegure su sitio web con .htaccess de Apache
Utilice este tutorial para solicitar un nombre de usuario y una contraseña para un archivo y/o directorio específico en un sitio web basado en Apache.
No es necesario tener un software costoso o un título en ciencia forense para asegurar el acceso al sitio web de su empresa, todo lo que necesita es un servidor web Apache y .htaccess. Para mostrarle algunas de las funciones de seguridad de esta herramienta, a continuación le mostramos cómo proteger con contraseña su directorio http usando .htaccess.
archivo access.conf
Lo más probable es que esté usando la última versión de Apache usando el archivo access.conf. En mi distribución de Linux (Red Hat 8.0), este archivo está en /etc/httpd/conf.d. Si su distribución es diferente y no encuentra este archivo en el mismo lugar, simplemente ejecute localizar access.conf para averiguar dónde se encuentra access.conf. Eche un vistazo a este archivo, en él puede encontrar algo como:
Índice de opciones FollowSymLinks
AllowOverride AuthConfig
comando permitir, denegar
permitir a todos
El fragmento de código anterior define para Apache qué directorio (/var/www/html/admin en este caso) debe protegerse con contraseña.Este
- índice: si no se especifica DirectoryIndex, permite que el servidor genere una lista de directorios para el directorio
- FollowSymLinks: permite que el servidor siga enlaces simbólicos en este directorio
- AllowOverride: establece si las opciones pueden ser anuladas por declaraciones en el archivo .htaccess
- AuthConfig: permite el uso de directivas de autorización
- Orden: controla el orden en que se evalúan las directivas allow y deny.
- Permitir: especifica qué solicitante (nombre de dominio, dirección IP completa, dirección IP parcial, par red/máscara de red) puede acceder al directorio dado
Las directivas anteriores son las principales que utilizará para los directorios protegidos por contraseña. Lo que tienes que hacer es definir el directorio que quieres proteger con contraseña y cómo quieres protegerlo en una directiva similar a la anterior. Para hacer esto, debe su a root, editar el archivo, guardar el archivo y reiniciar httpd (esto se puede hacer con el comando de reinicio /etc/rc.d/init.d/httpd).
configuración de archivo
Una vez que se define el directorio, es hora de crear los archivos y contraseñas asociados con el directorio. Lo primero que tienes que hacer es cambiar al directorio que quieres proteger (en este caso diría /var/www/html/admin/). Ahora crea el archivo .htaccess con el comando touch .htaccess. Abra el archivo (usando su editor de texto favorito) e ingrese lo siguiente, donde NOMBRE DE USUARIO es el administrador o el nombre de usuario real con el que el usuario iniciará sesión:
AuthUserFile /var/www/html/admin/.htpasswd
AuthGroupFile /www.null
AuthName «autorización requerida»
Tipo de autenticación básico
Usuario NOMBRE DE USUARIO requerido
Aquí verás las siguientes instrucciones:
- AuthUserFile es la ruta al archivo de contraseñas que crearé ahora.
- AuthGroupFile es la ruta al archivo de contraseña del grupo.
- AuthName crea un dominio protegido que permite a un usuario acceder a cualquier dominio definido por el mismo dominio después de un inicio de sesión exitoso.
- AuthType es el tipo de autorización a establecer (debe establecerse en Básico).
- En el interior
Solo definirá etiquetas para quién puede acceder a este directorio en particular.
Establecer contraseña .htaccess
Para completar la configuración de .htaccess, se debe usar el comando htpasswd para crear una contraseña para el usuario. Este comando creará una contraseña para el usuario especificado y creará el archivo de contraseña necesario (como se configuró en la directiva AuthUserFile en la sección anterior).
La sintaxis de este comando es htpasswd password_file_name user. En este caso, no solo está creando la contraseña de usuario, sino también el archivo de contraseñas, por lo que debe agregar el indicador -c (crear). Por lo tanto, el usuario será OBED y el archivo de contraseña (.htpasswd) se ubicará en el directorio /var/www/html/admin/. Para que este proceso suceda, debe ejecutar el comando htpasswd -c /var/www/html/admin/.htpasswd OBED.en golpe [Enter] Se le pedirá la contraseña asociada con el usuario, y ahora solo el usuario puede acceder al directorio en el archivo .htpasswd.
grupo de uso
El uso de archivos de un solo usuario es menos conveniente cuando tiene muchos usuarios que necesitan acceder a un directorio específico. Si necesita permitir que un grupo acceda a un directorio específico, debe usar la directiva AuthGroupFile en el archivo .htaccess. En el mismo archivo, reemplazará el usuario de requisitos NOMBRE DE USUARIO con el grupo de requisitos NOMBRE DE GRUPO. También puede usar una combinación de usuarios y grupos, o incluso múltiples entradas de uno (o una combinación). Por ejemplo, puede incluir las siguientes directivas en su archivo .htaccess:
Usuario NOMBRE DE USUARIO requerido
Grupo GRUPO1 GRUPO2 requerido
El siguiente paso para trabajar con grupos es crear un archivo de grupo. Un archivo de grupo consiste en un nombre de grupo, dos puntos y una lista separada por espacios de los usuarios contenidos. Suponga que tiene un grupo llamado personal que incluye a los usuarios buffy, willow, giles, xander y Dawn.La entrada en el archivo de grupo del grupo se ve así
Personal: Buffy Liu Giles Xander Dawn
El tamaño del grupo está limitado a 8 KB (u 8000 caracteres).
Con el archivo de grupo, aún necesita usar .htaccess para crear contraseñas para los miembros del grupo (como se muestra arriba). Ahora, para dar acceso a un nuevo usuario a un directorio específico, solo necesita agregar su nombre de usuario al archivo del grupo.
Iniciando sesión
Cuando el usuario intenta acceder a la página restringida, recibe un inicio de sesión, como se muestra en la Figura A.
Figura A |
¿Buscas algo más grande?
Si sus necesidades se vuelven tan grandes que los archivos de base de datos de texto sin formato son insuficientes, puede usar la herramienta dbmmanage para crear archivos de formato de base de datos estándar para usar con .htaccess. Se requiere más información para este método, que se puede encontrar en el sitio web de Apache.