Acceso individual a Apache 2

Para restringir el acceso a un directorio, en primer lugar será necesario crear un archivo de contraseñas. Será este archivo el que almacene las contraseñas de los usuarios autorizados. Este archivo se deberá colocar en un directorio que no sea accesible desde la web. Por ejemplo, si los documentos son publicados en la raíz de documento /usr/local/apache/htdocs/, se podría crear un directorio /usr/local/apache/passwd/ para guardar los archivos de contraseñas.

Para crear un archivo de contraseñas, se debe utilizar la herramienta htpasswd que viene con Apache. Esta utilidad se encuentra en el directorio /bin de la estructura de directorios del servidor. Para crear un archivo de contraseñas (llamado passwords) se debe escribir lo siguiente:

htpasswd -c /usr/local/apache/passwd/passwords nombreUsuario

htpasswd pedirá la contraseña y, acto seguido, la confirmación de ésta:

#htpasswd -c /usr/local/apache/passwd/passwords nombreUsuario
New password: mypassword
Re-type new password: mypassword
Adding password for user nombreUsuario

El siguiente paso es configurar el servidor para que solicite un contraseña, e indicarle qué usuarios tienen acceso. Esto se puede hacer editando el archivo httpd.conf o utilizando un archivo .htaccess Por ejemplo, si se desea proteger el directorio /usr/local/apache/htdocs/secret/, se pueden usar las siguientes directivas, bien colocándolas en el archivo /usr/local/apache/htdocs/secret/.htaccess, o en httpd.conf dentro de una sección <Directory /usr/local/apache/htdocs/secret></Directory>

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user nombreUsuario

La directiva AuthType establece el método que se va a utilizar para autentificar al usuario. El método más común es Basic, que está implementado en el módulo mod_auth. Hay que tener en cuenta un hecho importante: el método basic envía la información sin encriptar, lo que supone un riesgo de seguridad. Pero Apache soporta otro método de autentificación: AuthType Digest. Este método está implementado en el módulo mod_auth_digest, y es mucho más seguro.

La directiva AuthName establece el Dominio (Realm) que se usará en la autentificación. El dominio cumple dos funciones importantes: primera, el cliente muestra esta información en el cuadro de diálogo de la contraseña; segundo, es usado por el cliente para determinar qué contraseña enviar para un área autentificada dada. Por ejemplo, si el usuario se ha autentificado en el área "Restricted Files", automáticamente se volverá a tratar de usar la misma contraseña en cualquier área del mismo servidor que esté marcado con el Dominio (Realm) "Restricted Files".

La directiva AuthUserFile establece la ruta al archivo de contraseña que acabamos de crear con htpasswd. Si tiene un gran número de usuarios, sería bastante lento buscar por medio de un archivo en texto plano para autentificar al usuario en cada solicitud. Apache también tiene la capacidad de almacenar la información del usuario en archivos rápidos de bases de datos. El módulo mod_auth_dbm proporciona la directiva AuthDBMUserFile. Estos archivos pueden ser creados y manipulados con el programa dbmmanage.

Finalmente, la directiva Require proporciona la parte de la autorización del proceso estableciendo el usuario al que se le permite acceder a ese área del servidor.

« Apache 2 | Acceso en Apache 2

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License