SALE - Red Angus, Red Angus Breeding Stock, Red Angus Cattle
Red t3_practica_autenticacion_apache
-
Upload
garciadebora -
Category
Documents
-
view
403 -
download
1
Transcript of 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
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
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
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
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
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
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
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:
Redes Trimestre 1 Débora García García
8