(II) Protección de un directorio en Apache2
Existe una forma de proteger un directorio de los ojos indiscretos a través de la tupla login/contraseña. Seguiremos los siguientes pasos:
1) Crear un archivo con claves y usuarios:
htpasswd -c /etc/passwd.apache username
con la opción -c estamos indicando la ruta del archivo de claves ( que es recomendable que esté fuera del árbol web público para que nadie se lo pueda bajar). Además estamos poniendo el username o nombre de usuario que queremos crear en dicho archivo, que puede ser uno que esté en el sistema o no, es independiente. Nos pedirá la contraseña para dicho usuario.
Con el fin de establecer la seguridad necesaria, cambie los atributos de lectura y escritura solo para el usuario apache:
chmod 600 /etc/passwd.apache
chown apache:apache /etc/passwd.apache
Si más tarde querríamos añadir más usuarios a dicho archivo para que puedan acceder al recurso web:
htpasswd /etc/passwd.apache username
2) Crear otro archivo descriptivo del recurso a proteger:
Posteriormente, en el directorio web que queramos proteger, deberemos crear un archivo oculto llamado .htaccess con el siguiente contenido:
AuthName Privado AuthType Basic AuthUserFile /etc/passwd.apache Require valid-user
3) Hacer que el Apache proteja dicho recurso:
Por último, deberemos indicar a Apache que para dicho directorio busque el archivo .htaccess que en la configuración por defecto, habíamos puesto en la directiva AllowOverride None para que no lo hiciera. Entonces, si el directorio a proteger es /var/www/privado/ deberemos añadir en /etc/apache/httpd.conf algo como:
AllowOverride AuthConfig
y recargar la configuración del servidor.