Post on 13-Jun-2015
IES GRAN CAPITÁN
Apache 4 Autenticación
ROBERTO ALMENA 2 ASIR
[SERVICIOS DE RED]
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
1 | ROBERTO ALMENA
Índice:
INTRODUCCIÓN ............................................................................................................................. 2
AUTENTICACIÓN mediante BASE DE DATOS ................................................................................. 3
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
2 | ROBERTO ALMENA
INTRODUCCIÓN
Hemos visto en clase que una manera de acceder a un sitio web de Apache es
mediante autenticación contra un servidor LDAP.
Investiga otras maneras mediante las que nos podríamos autenticar en un sitio web de
Apache, pruébalas y haz un artículo en tu blog.
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
3 | ROBERTO ALMENA
AUTENTICACIÓN mediante BASE DE DATOS
Primero tenemos que crear la base de datos.
Dentro de ésta crearemos la tabla “usuarios” donde insertaremos dos campos (login y pwd).
Utilizaremos dos usuarios con contraseñas encriptadas.
Para encriptar las contraseñas utilizaremos el cifrado Crypt.
Para ello dentro de nuestra base de datos vamos a insert y añadimos:
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
4 | ROBERTO ALMENA
Vemos que nos encripta la contraseña de los usuarios al utilizar la función encrypt:
Ya tenemos creada nuestra base de datos con usuarios y contraseñas encriptadas.
Creamos en /var/www/ una carpeta llamada “privada”. Dentro de ésta creamos un archivo
“index.html” donde pondremos el contenido que no podremos ver a no ser que nos
autentifiquemos.
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
5 | ROBERTO ALMENA
Ahora configuraremos el VirtualHost.
Creamos un archivo “mysql” en /etc/apache2/sites-available y lo modificamos quedando de la
siguiente forma:
Donde:
AuthName “Autenticacion” será el texto que aparecerá
AuthMySQL_DB autenticacion es el nombre de la base de datos
AuthMySQL_User root es el usuario de la base de datos
AuthMySQL_Password usuario1 es la contraseña del usuario de la BD
AuthMySQL_Password_Table usuarios es el nombre de la tabla
AuthMySQL_Username_Field login es la fila de los nombres
AuthMySQL_Password_Field pwd es la fila de las contraseñas
AuthMySQL_Encryption_Types Crypt es el tipo de cifrado que utilizaremos
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
6 | ROBERTO ALMENA
Tenemos que activar el sitio “mysql” con a2ensite
En /etc/hosts crearemos un Server Name llamado “www.autenticacion.com” con nuestra IP.
Éste será el que utilicemos para acceder a la web donde tendremos que autenticarnos.
El nombre del Server Name tiene que coincidir con el que pongamos en el archivo mysql de
sites-available mostrado en la captura anterior.
Levantamos el servicio auth_digest con sudo a2enmod auth_digest
También utilizaremos el módulo libapache2-mod-auth-mysql, que tendremos que instalarlo.
Este módulo sirve para configurar un sitio virtual cuyo acceso sea autentificado mediante
usuarios guardados en una tabla Mysql
Lo descargamos de los repositorios y lo activamos de la siguiente manera:
aptitude install libapache2-mod-auth-mysql
a2enmod auth_mysql
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
7 | ROBERTO ALMENA
Reiniciamos apache con /etc/init.d/apache2 restart
Y ya solo queda acceder y comprobar que funciona.
Abrimos el navegador y entramos a www.autenticacion.com
Vemos que nos pide usuario y contraseña para poder acceder.
Si utilizamos alguna que no esté almacenada dentro de la base de datos nos volverá a pedir la
identificación correcta.
Si no la ponemos nos aparecerá el siguiente mensaje diciéndonos que se requiere
autorización.
[IMPLANTACIÓN DE APLICACIONES WEB] APACHE 4 Autenticación
8 | ROBERTO ALMENA
Probamos a introducir cualquiera de los dos usuarios que tenemos creados en nuestra base de
datos (usuario1 o usuario2)
Y comprobamos que tenemos acceso a la web privada.