UD5 - Pràctica 1E - Autenticació en Apache
Autenticació i control d'accés
Pel que fa al procés d'autenticació d'usuaris en Apache 2, existeixen dos mètodes:
- Bàsic o Simple: l'usuari en el navegador web introdueix el seu login o nom d'usuari i s'envien al servidor sense xifrar.
- Digest: l'usuari en el navegador web introdueix el seu login y contrassenya i s'envien al servidor xifrats.
Aquests dos mètodes tan sols autentiquen a l'usuari quan intenta accedir a un recurs. Però en ningun dels dos mètodes les dades que a continuació s'intervanvien el servidor i el client van xifrades. Son mètodes que controlen l'accés als recursos, però no protegeixen la informació intercanviada a la comunicació client-servidor una vegada s'ha comprovat que l'accés és vàlid.
Autenticació bàsica
El mòdul que controla aquest mètode d'autenticació és auth_basic i té l'avantatge d'estar suportat per tots els navegadors web. Per la seua contra, té l'inconvenient de que el login i la contrassenya no van xifrats, com ja hem dit abans.
En el fitxer /etc/apache2/sites-available/000-default.conf, o en el fitxer relatiu al host virtual corresponent, haurem d'afegir un bloc
ApacheConf | |
---|---|
On:
- Haurem de subtituir
/var/www/html/privat
per el directori arrel del lloc que vullgam protegir. - AuthName: nom del domini d'autenticació. Defineix el conjunt de recursos que estaran subjectes als mateixos requisits d'autenticació. També és el text que apareixerà a la finestra que demana l'usuari i la contrassenya.
- AuthType: tipus d'autenticació.
- Basic: el login i contrassenya es negocia sense xifrar.
- Digest: el login i contrassenya es negocia xifrat/encriptat.
- AuthUserFile: ubicació del fitxer de text que contindrà els noms d'usuari i contrassenyes emprades a l'autenticació HTTP bàsica. Sol anomenar-se .htpasswd. Previament caldrà crear-lo i ubicar-lo al directori referenciat.
- Require: usuaris que tenen accés als recursos especificats. Opcions disponibles:
- valid-user: qualsevol usuari inclòs al fitxer de contrassenyes .htpasswd.
- user
: llistat d'usuaris d'*.htpasswd, separats per espais, que poden accedir.
Per tal de generar el fitxer .htpasswd amb els usuaris que tindran accés al recurs protegit, podem fer ús de la comanda htpasswd:
# htpasswd -c /etc/apache2/.htpasswd usuari1
L'opció -c permet crear el fitxer .htpasswd amb el primer usuari donat d'alta, que, a més a més, no te perquè ser un usuari existent al sistema.
Els permissos del fitxer .htpasswd haurien de ser 644, és a dir, lectura i escriptura per al propietari, que és root i lectura per al grup i altres.
Per tal de seguir donant d'alta usuaris al fitxer, no s'ha de posar l'argument -c perquè en compte d'afegir usuaris crearà de nou el fitxer amb l'últim usuari incorporat.
Amb tot açò, en accedir al recurs protegit veurem una finestra com aquesta:

Es pot protegir també d'un grup d'usuaris:
ApacheConf | |
---|---|
El fitxer .grpasswd s'haurà de crear mitjançant un editor (nano?) i estarà format per els noms dels grups i els seus corresponents membres. Per exemple:
S'haurà d'activar el mòdul authz_groupfile amb # a2enmod authz_groupfile
i reiniciar el servidor # service apache2 restart
.
Directiva Require
La directiva Require admet els paràmetres: valid-user (usuari autenticat), group nom_del_grup (grup d'usuaris autenticats) i user nom_usuari (per a únicament eixe usuari).