Configuración necesaria para restringir el acceso a directorios utilizando las directivas de Apache y el fichero .htaccess.
Este texto es un pequeño resumen de la manera de proteger el acesso a un directorio publicado con un servidor Apache. Es un mini-mini-howto... espero que sea de utilidad.
El modo básico es una comprobación de un archivo de contraseñas con formato user:passwd. La passwd está cifrada (por defecto) con la implementación estandar de crypt().
La transmisión de contraseñas se realiza de forma plana, es solamente un pequeño impedimento pero no una medida de seguridad.
Este sistema está ampliamente soportado por la mayoria de los navegadores.
El modo resumen tiene el mismo formato que el anterior modelo pero este utiliza un cifrado haciendo uso de MD5.
Las autentificaciones está basada en resumenes, lo que evita el problema de los sniffers.
Este sistema tiene poco soporte, seguramente será necesario aplicar un parche en el navegador.
El fichero .htaccess tiene los siguentes campos:
Este ejemplo es para utilizar la autentificación básica de usuarios y grupos:
AuthType Basic
AuthName "Webcam personal"
AuthUserFile /home/chernando/testing/users
AuthGroupFile /home/chernando/testing/groups
require group amigos
Este ejemplo es para utilizar resumen MD5 de un archivo de usuarios:
AuthType Digest
AuthName "Registro de visitantes"
AuthDigestFile /home/chernando/testing/digest
require valid-user
Mediante el comando htpasswd, incluido con apache. Se le especifica el archivo donde añadir las entradas y el nombre de usuario:
Siendo la opción -c es para crear un nuevo archivo, .htpasswd el fichero donde se guardaran los passwords y charlie el nombre de usuario a añadir.
chernando@acm$ htpasswd -c users charlie
New password:
Re-type new password:
Adding password for user charlie
chernando@acm$
En el fichero .htaccess el archivo de usuarios se declara con AuthUserFile <fichero>.
Para ello necesitamos htdigest .
La sintaxis y la creación es la misma que en el caso anterior. Se
añade la opción realm que es la misma que el valor ajustado
en AuthName .
chernando@acm$ htdigest -c digest "Registro de visitantes"
chernando
Adding password for chernando in realm Registro de visitantes.
New password:
Re-type new password:
chernando@acm$
En el fichero .htaccess el archivo de usuarios se declara con AuthDigestFile <fichero> .
Este fichero es muy sencillo de crear. Con un editor de textos
creamos el fichero de la siguiente forma:
grupo : Lista de usuarios (separados por
espacio).
amigos: charlie susan gregor
En el fichero .htaccess el archivo de grupos se declara con AuthGroupFile <fichero> (en autentificación básica) o AuthDigestGroupFile <fichero> (en autentificación por resumen).
Más información en Authentication, Authorization, and Access Control y Authentication, Authorization and Access Control (Apache 2.0).