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.