You are on page 1of 11

SMR2SR: SERVIDOR WEB

ACTIVIDADE 4: CONTROL DE ACCESO

Nesta actividade imos ver como preparar un sitio web para controlar os usuarios que poden acceder a ela,
utilizando o modo de autenticación Basic. Para isto partiremos do sitio web creado na actividade anterior e
configurarémolo para que só certos usuarios teñan acceso.

Para isto seguiremos os seguintes pasos:

1. Habilitaremos o módulo auth_basic para que o noso servidor apache poida realizar a autenticación
mediante o método Basic.
Para isto crearemos un link simbólico do .load da carpeta /etc/apache2/mods-available/ a
/etc/apache2/mods-enabled/. Esto podemos facelo usando o comando a2enmod e reiniciando despois
o servidor.
$ sudo a2enmod auth_basic
$ sudo service apache2 restart

2. Crearemos un ficheiro de usuarios e passwords para o acceso ao sitio


Debido a que o ficheiro contén información sensible, localizarémolo nun directorio fóra do sitio web, no
noso caso en /etc/apache2. Será importante tamén establecer os permisos do ficheiro para controlar
quen pode modificalo.
O nome do arquivo pode ser calquera e con calquera extensión, nós imos chamarlle passwords.basic.
Para engadir un usuario usaremos o comando htpasswd. A primeira vez usaremos a opción -c para
indicar que hai que crear o arquivo.
Engadiremos aos usuarios usu1, usu2 e usu3, co passwords (pídenolas despois) pas1, pas2 e pas3
respectivamente.
$ sudo htpasswd -c /etc/apache2/passwords.basic usu1
$ sudo htpasswd /etc/apache2/passwords.basic usu2
$ sudo htpasswd /etc/apache2/passwords.basic usu3
Se todo foi correcto mostraranos unha mensaxe informando de que se engadiu o usuario.
Pega unha captura de pantalla mostrando o contido do arquivo passwords.basic.

3. Establecer a configuración do apache para restrinxir o acceso aos usuarios usu1 e usu2 e para validar
os seus contrasinais contra o ficheiro de passwords.
Para isto definiremos unha sección <Directory> cun ámbito de aplicación de contedores para cada host
virtual, e nel usaremos as directivas:
◦ AuthType: Tipo de autenticación que se usará, neste caso será Basic.
◦ AuthName: Nome identificador que se lle dará á autenticación; no noso caso “Acceso por usuario”.
◦ AuthBasicProvider: Tipo de provedor de autenticación de tipo Basic; neste caso será file.
◦ AuthUserFile: Ruta do ficheiro de passwords (creado no paso 2); no noso caso /etc/apache2.
◦ AuthGroupFile: Ruta do ficheiro de grupo de usuarios, se o houbese; no noso caso non a poñemos.
◦ Require: Requirimentos que se deben cumprir para garantir o acceso; no noso caso indicaremos
que só os usuarios usu1 e usu2 poden acceder: Require user usu1 usu2
Por tanto, no ficheiro /etc/apache2/sites-avaliable/www.srvweb.com.conf engadirase o seguinte
contido:

...
<Directory "/var/www/html/segura">
...
AuthType Basic
AuthName "Acceso por usuario"
AuthBasicProvider: file
AuthUserFile /etc/apache2/passwords.basic
Require user usu1 usu2
</Directory>

...
<Directory "/var/www/html/insegura">
...
AuthType Basic
AuthName "Acceso por usuario"
AuthBasicProvider: file
AuthUserFile /etc/apache2/passwords.basic
Require user usu1 usu2
</Directory>

Despois reiniciaremos o servidor e comprobaremos que se executa con normalidade.

Nótese que tamén sería posible aplicar unha configuración de acceso global. Para isto o bloque
<Directory> incluiríase no ficheiro de configuración xeral do apache.
4. Probaremos a configuración establecida desde a máquina cliente.
Ao tratar de acceder ao sitio desde o navegador debería aparecer unha ventá emerxente, que nos pide
as credencias do usuario para poder acceder ao sitio. Unha vez introducida accederemos con
normalidade.
Para cada sitio web pega unha captura de pantalla nas que se mostre o navegador intentando acceder
ao sitio web e a ventá solicitando a autenticación (sitúa a ventá de forma que non tape a barra do
navegador).
Comprobaremos que os usuarios usu1 e usu2 poden acceder, mentres que o usuario usu3 non pode.
Para cada sitio web pega unha captura mostrando o que pasa se intentas acceder co usuario usu3, e
outra mostrando o que pasa se intentas acceder co usuario usu1.
Pega unha captura do ficheiro de log do apache no que se mostren estes intentos de accesos.
Como podemos comprobar a continuación, só poden acceder “usu1” e “usu2”;
“usu3” non pode acceder.
5. Habilitar a autenticación por grupos:
a2enmod authz_groupfile
6. Crear un ficheiro de grupo cos usuarios aos que se permite acceder ao sitio.

O uso dun ficheiro de grupo evita ter que modificar o ficheiro de configuración do sitio web, .htaccess.
Tamén evita ter que reiniciar o servidor para engadir ou quitar usuarios.

Unha autenticación de grupo é un nome de grupo asociado a unha lista de nomes de usuarios, que se
garda nun arquivo de grupo na mesma localización que o ficheiro de passwords.

O formato do arquivo de grupo consiste nun nome de grupo seguido de dous puntos (:) e seguido á súa
vez dunha lista cos nomes dos membros do grupo separados por espazos.
No noso caso chamaremos ao grupo autorizados e incluiremos aos usuarios usu2 e usu3.

$ sudo nano /etc/apache2/groups.basic

Contido:

autorizados: usu2 usu3

7. Modificar a configuración do servidor Apache para que requira que os usuarios autorizados pertenzan
ao grupo. Para isto:

◦ Usaremos a directiva AuthGroupFile para indicar a ruta do ficheiro de grupo de usuarios, no


noso caso /etc/apache2/groups.basic

◦ Modificaremos a directiva Require para indicarlle que só os usuarios do grupo autorizados


poden acceder.

Por tanto, o ficheiro /etc/apache2/sites-available/www.srvweb.com.conf ficará:

...
<Directory "/var/www/html/segura">
...
AuthType Basic
AuthName "Acceso por grupo"
AuthBasicProvider: file
AuthUserFile /etc/apache2/passwords.basic
AuthGroupFile /etc/apache2/groups.basic
Require group autorizados
</Directory>

...
<Directory "/var/www/html/insegura">
...
AuthType Basic
AuthName "Acceso por usuario"
AuthBasicProvider: file
AuthUserFile /etc/apache2/passwords.basic
AuthGroupFile /etc/apache2/groups.basic
Require group autorizados
</Directory>
Despois reiniciaremos o servidor e comprobaremos que se executa con normalidade.

8. Probaremos a configuración establecida desde a máquina cliente.

Ao tratar de acceder ao sitio desde o navegador debería aparecer unha ventá emerxente, que nos pide
as credenciais do usuario para poder acceder ao sitio.

Pega unha captura de pantalla na que se mostre o navegador intentando acceder ao sitio web e a ventá
solicitando a autenticación (sitúa a ventá de forma que non tape a barra do navegador).

Comprobaremos que os usuarios usu2 e usu3 poden acceder, mentres que o usuario usu3 non pode.

Para cada sitio web pega unha captura mostrando o que pasa se intentas acceder co usuario usu3, e
outra mostrando o que pasa se intentas acceder co usuario usu1.
Pega unha captura do ficheiro de log do apache no que se mostren estes intentos de accesos.

You might also like