Proyecto de fin de curso dedicado al análisis de búsquedas / End of course project based on search analysis.

domingo, 29 de noviembre de 2015

Acceso restringido con apache

ACCESO RESTRINGIDO CON APACHE

Podemos restringir el acceso a determinados directorios de nuestro servidor, de manera que cuando accedamos a ellos con el navegador se nos pedirá un nombre de usuario y una clave. Esos usuarios y esas claves no van a guardar ninguna relación con los del sistema Linux.
Queremos que cuando accedamos al directorio /var/www/restringido (http://localhost/restringido) nos pida un usuario y un password para ver su contenido.
1.- Creamos el directorio clavesapache donde vamos a guardar el fichero de usuarios y claves llamado .clavesapache y le damos permiso de lectura, escritura y ejecución para el usuario www-data, que es el usuario por defecto de apache, lectura y ejecución para el grupo www-data y sin permisos para el resto de usuarios:
Iniciar sesión de terminar en modo superusuario (sudo su)
mkdir /var/www/clavesapache
chown www-data:www-data /var/www/clavesapache
chmod 750 /var/www/clavesapache

Vamos a añadir diferentes claves en el directorio /var/www/clavesapache y determinamos el propietario y permisos:
htpasswd -c /var/www/clavesapache/.clavesusuarios usuario1
(introducimos el password y la verificación de su password, por ejemplo)
chown www-data:www-data /var/www/clavesapache/.clavesusuarios
chmod 640 /var/www/clavesapache/.clavesusuarios

Podemos añadir más usuarios (sin el -c, ya que ya existe el fichero .clavesusuarios):
htpasswd /var/www/clavesapache/.clavesusuarios usuario2
Vemos que hemos creado los usuarios con sus respectivas claves encriptadas en el fichero oculto .clavesusuarios:
cat /var/www/clavesapache/.clavesusuario
usuario1:$apr1$e4xMiIKy$9NzX8TEmqWiMTkqGHp.0G0
usuario2:$apr1$YC5LjTlX$IyXaaKqNK997HSV78BtUF1



2.- Editamos el fichero /etc/apache2/sites-available/default para que nos solicite un password. Para ello sustituimos AllowOverride None por AllowOverride AuthConfig:
<Directory /var/www/> Options Indexes
FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>


3.- Creamos el directorio restringido y dentro creamos el fichero /var/www/restringido/.htaccess con el siguiente contenido:



mkdir /var/www/restringido
gedit /var/www/restringido/.htaccess



AuthType Basic
AuthName "Acceso Restringido"
AuthUserFile /var/www/clavesapache/.clavesusuarios
Require user usuario1




Además creamos el fichero index.html con una página de bienvenida y les damos permisos con el usuario y grupo www-data.
cd /var/www/restringido
chown www-data:www-data /var/www/restringido/.htaccess
chown www-data:www-data /var/www/restringido/index.html
chown www-data:www-data /var/www/restringido

4.- Reiniciamos y probamos:
/etc/init.d/apache2 restart
5.- Entramos en el navegador a localhost/restringido e introducimos el usuario y password.