Red t3_practica_autenticacion_apache

9
Formas de autenticarse en un sitio web Apache - Ubuntu Redes Trimestre 1 2º ASIR Débora García García

Transcript of Red t3_practica_autenticacion_apache

Page 1: Red t3_practica_autenticacion_apache

Formas de autenticarse en un sitio web Apache - Ubuntu Redes Trimestre 1 2º ASIR

Débora García García

Page 2: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

1

Índice

OBJETIVOS ................................................................................................................................ 2

INTRODUCCIÓN: Métodos de autenticación en Apache............................................................. 2

Autenticación Basic ................................................................................................................... 3

Apache2.conf ........................................................................................................................ 3

Creación del archivo authgroups ........................................................................................... 4

Autenticación Digest ................................................................................................................. 6

Page 3: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

2

OBJETIVOS

Hemos visto en clase una manera de acceder a un sitio web de Apache, mediante

autenticación contra un servidor LDAP. Investiga otras maneras, pruébalas y haz un artículo en

tu blog.

INTRODUCCIÓN: Métodos de autenticación en Apache

Una instalación por defecto del servidor Web Apache es que soporta dos tipos de

autenticación básica:

Basic.

Digest (instalada pero no habilitada).

Otras (mediante módulos específicos).

Otras (adaptadas a interactuar con programas concretos como: MYSQL).

Aquí podemos buscar los modulos “auth”: http://modules.apche.org/search.php

Cada módulo de atenticación tiene su forma particular de ser activado y gestionado.

Estas dos formas de autenticación nos sirven como base para hacernos una idea de cómo

manejar el resto.

Hay mucho tipos de autenticación que son front-ends (del lado del usuario) que trabajan con

estas dos formas básicas de autenticación, por eso es importante hacer uso de SSL para

hacerlas seguras, dado a que se envía información importante.

En los ejemplos que veremos en este documento utilizaremos archivos:

.htaccess (con el mismo efecto se puede lograr con directivas <Directory> o <Location>

ubicados en los archivos de configuración principales de Apache).

Los ficheros de autenticación nunca deben estar en el “path” designado por “DocumentRoot”,

ya que podrán descargarse por cualquier usuario y esté romper nuestro sistema de

autenticación.

Más información:

http://www.linuxsecurity.com/content/view/133913/171/ http://www.brennan.id.au/13-Apache_Web_Server.html#users (página que incluye

autenticación en directorios personales public_html de usuarios) http://httpd.apache.org/docs/2.0/howto/auth.html http://blog.innerewut.de/2007/6/26/apache-2-2-authentication-with-

mod_authnz_external http://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html

Page 4: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

3

http://www.howtoforge.com/apache_mod_auth_shadow_debian_ubuntu

Otras páginas interesantes donde podemos encontrar más métodos de autenticación:

http://humanliks.wordpress.com/manual-de-instalalacion-y-configuracion-de-apache-

autenticado-con-radiuslinux-debian-lenny/

http://gnburgos.blogspot.com/2009/11/configuracion-de-autenticacion-con.html

http://blog.unlugarenelmundo.es/2010/03/13/autenticacion-en-apache-basica-y-

pam/

Para terminar, podemos considerar que otra de las opciones que primero se puede considerar

es intentar autenticar usuarios a partir del fichero de claves del S.O “/etc/shadow”.

Esto se puede conseguir por medio del módulo “mod_shadow”:

http://httpd.apache.org/docs/1.3/misc/FAQ.html#passwdauth

O La autenticación como hemos nombrado en otro manual con LDAP:

http://www.sahw.com/wp/archivos/2009/06/08/autenticacion-en-apache-mediante-

mod_authnz_ldap-soporte-openldap/

En el siguiente enlace podemos encontrar guías y procedimientos sobre cómo gestionar

distintos tipos de autenticación:

http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html

Autenticación Basic Vamos a implementar en el directorio “/var/www/básica” de una web una autenticación

básica para personas que pertenecen a un grupo concreto.

Apache2.conf

Page 5: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

4

El fichero “authgroups” debe contener un listado de usuarios que han sido creados

expresamente para esta clase de autenticación, distribuidos en una serie de grupos que

también aparecen en el mismo. Esto permite crear varias áreas de acceso en diversas partes de

la web, donde un mismo grupo puede tener diferentes privilegios o bien sólo algunos pueden

acceder a los contenidos.

Cuando se comprueba las credenciales de un usuario que accede, ha de comprobarse a que

grupo pertenece para ver si está autorizado o no.

La directiva “Require group private” hace que sólo los usuarios de este grupo tengan acceso a

ese directorio web.

No te olvides que has de crear el directorio en “/var/www/”:

Mkdir básica

Los permisos también es importante ponerlo para poder acceder a la carpeta o no:

Esta carpeta sólo contiene un “index.html”

Creación del archivo authgroups

Empezaremos por crear este archivo en la carpeta “/etc/apache2/authgroups”.

El contenido será nombregrupo: usuario1 usuario2 ….

De igual forma el archivo “authusers” contiene una lista de usuarios y una hash de su

password, comprobado cada vez que se requiera autorización.

La directiva “Required valid-user” se usa cuando no existen grupos de usuarios con accesos

diferenciados, por eso cuando entran en la web es necesario conocer las credenciales de los

usuarios de este fichero.

El usuario sobre el que Apache se ejecuta por defecto es www-data. Esto influye a la hora de

acceder a ciertos archivos con usuarios y claves, como el que estamos usando, ya que este

usuario podría no tener privilegios. Para que funcione lo podemos poner en una localización

independiente del resto de las webs, dándole unos permisos adecuados. Otra opción es

Page 6: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

5

crearlo en el directorio de instalación Apache. Por motivos de seguridad haremos la primera

opción.

Para terminar debemos de construir las password de los usuarios que creamos anteriormente

en el fichero de los grupos:

Las claves generadas:

Agregamos la url al archivo hosts:

Reiniciamos apache para guardar los cambios:

/etc/init.d/apache2 restart

Nos dirigimos al navegador para probar que nos ha salido bien la autenticación:

Usuario no válido

Page 7: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

6

Usuario valido

Autenticación Digest

Haremos unos pasos similares a los anteriores.

Hay que habilitar este tipo de autenticación :

A2enmod auth_digest

Reiniciamos apache:

/etc/init.d/apache2 restart

Page 8: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

7

Tenemos que crear un espacio web nuevo:

Mkdir /var/www/digest

Dentro creamos un fichero “.htaccess” con el siguiente contenido:

Creamos un “index.html”.

El parametro AuthName o realm es una descripción del equipo al que se quiere acceder mediante esta clase de autenticación. Esta información se usa para calcular las hash de las claves enviadas y que será mostrada al usuario cuando se conecte al servidor. Más información:http://en.wikipedia.org/wiki/Digest_access_authentication

Ahora tendremos que crear un fichero en “/etc/apache2/.htdigestusers” :

Contraseña generada, debe ir en la ruta “/etc/apache2/”:

Añadir al archivo host la url:

Comprobamos por el navegador si todo sale correctamente:

Page 9: Red t3_practica_autenticacion_apache

Redes Trimestre 1 Débora García García

8