Curso Redes Linex 3

download Curso Redes Linex 3

If you can't read please download the document

Transcript of Curso Redes Linex 3

Redes en gnuLinex

Configuracin de servicios (II)Antonio Durn

Introduccin a la autenticacin

En Linux, el sistema PAM lleva la autenticacin

Permite diferentes tipos de autenticacin:

Contra fichero de usuarios local, directorio LDAP, etc.

Antes de ver LDAP, vemos como funciona PAM en general

PAM

PAM = Pluggable Authentication Modules

Coleccin de libreras que permiten al administrador elegir como se autenticarn los usuarios.

Permite cambiar la autenticacin que usan las aplicaciones PAM sin necesidad de recompilarlas. Por ejemplo: login, gdm, etc.

PAM

Configuracin:

Configuracin basada en un solo fichero: /etc/pam.conf

Configuracin basada en directorios: /etc/pam.d/

Mdulos: /lib/security

PAM

PAM trata con cuatro tipos de tareas:

Gestin de autenticacin

Gestin de cuentas

Gestin de sesiones

Gestin de contraseas

PAM

Configuracin mediante un nico fichero

Una entrada por lnea en /etc/pam.conf

nombre_servicio tipo_modulo flag_control path_modulo args

nombre_servicio

El nombre del servicio asociado a la entrada. Suele ser el nombre del programa.

Puede ser 'other' para indicar una opcin por omisin para los programas que no tienen entrada especfica.

PAM

Configuracin

tipo_modulo

Uno de los 4 tipos de mdulos actuales:

auth

account

session

password

PAM

Tipos de mdulo

auth

Proporciona dos aspectos de la autenticacin de usuarios. Primero establece que el usuario es quien dice ser. Segundo, puede otorgar mebresas de grupo independientemente del fichero /etc/groups, u otros privilegios.

PAM

Tipos de mdulo

account. Se encarga de la gestin de cuentas no relacionada con la autenticacin. Suele usarse para permitir/denegar accesos basandose en la hora/da, recursos del sistema disponibles o la localizacin del usuario (por ej: root slo puede hacer login en la consola)

PAM

Tipos de mdulo

session. Principalmente este mdulo se encarga de las cosas que se deben hacer por el usuario antes/despus de que se le conceda el servicio. Estas actividades se refieren, por ejemplo, a la escritura de informacin de registro sobre la apetura/cierre de sesiones, el montaje de directorios, etc.

PAM

Tipos de mdulo

password. Es necesario para actualizar los tokens utilizados para la autenticacin. Normalmente hay uno para cada mdulo del tipo auth.

PAM

Configuracin

bandera de control

Se utiliza para indicar como reaccionar la librera PAM al tener xito o fracaso el mdulo al que est asociada.

Como los mdulos pueden ser apilados, la bandera de control representa la importancia relativa de cada mdulo.

La aplicacin no recibe el resultado de mdulos individuales, sino slo un resultado de la librera.

PAM

Configuracin

bandera de control

2 formas de especificar la bandera de control. Vemos slo la simple (la ms usada).

Representamos la bandera de control con una sola palabra que indica la severidad de un acierto o fracaso en el mdulo. Las cuatro opciones son:

required, requisite, sufficient, optional e include.

PAM

Configuracin

bandera de control

required: Indica que es necesario el xito de este mdulo.

requisite: como required, sin embargo si falla no se siguen ejecutando ms modulos.

suffcient: El xito de ste mdulo se considera como suficiente para conceder el permiso.

optional: No es crtico para el xito o fracaso de la aplicacin.

PAM

Configuracin

bandera de control

include: Indica al sistema PAM que incluya los contenidos del fichero indicado.

path_modulo

Ruta hacia el mdulo.

args

Argumentos que se pasan al mdulo.

PAM

Configuracin

Argumentos opcionales generales:

debug: informacin de debug en los logs.

no_warn: no dar mensajes de aviso a la aplicacin.

use_first_pass: El mdulo no debe pedir una contrasea al usuario. En cambio, debe usar la contrasea introducida anteriormente en el primer mdulo de tipo auth. Si no funciona, el acceso ser denegado.

PAM

Configuracin

Argumentos opcionales generales:

try_first_pass: El mdulo debe intentar la autentiaccin con la contrasea introducida anteriormente. Si no funciona, se pide otra contrasea al usuario.

expose_account: da mas informacin al usuario sobre las cuentas.

PAM

Configuracin basada en directorios

Ms flexible

Usa los ficheros de /etc/pam.d

Cada fichero tiene el nombre de un servicio, que corresponde con la configuracin para ese servicio.

Formato de las lneas de cada fichero:

tipo_modulo bandera_control path_modulo args

PAM

Configuracin basada en directorios. Ventajas:

Menos propensa al error.

Ms facil de mantener.

Permite enlazar ficheros.

Ms rpido.

Mejor gestin de permisos.

Facilita la administracin de paquetes.

PAM

Configuracin basada en directorios.

Ficheros comunes:

common-account

common-auth

common-password

common-session

En lugar de una entrada other en pamd.conf, hay un fichero other que incluye estos cuatro.

PAM

Ejemplos de common-auth

Versin 1:

auth sufficient pam_unix.so

auth sufficient pam_ldap.so user_first_pass

Versin 2:

auth sufficient pam_unix.so

auth required pam_ldap.so user_first_pass

PAM

Descripcin de los mdulos

pam_unix: Mdulo de autenticacin estandar. Ficheros passwd y shadow.

pam_ldap: Autentiacin contra directorios LDAP.

pam_nologin: Encargado de la funcionalidad Unix nologin, que deshabilita la entrada de usuarios que no sean root.

pam_env: Para asignar valores a variables de entorno.

pam_unix_auth: Mdulo de autenticacin estandar.

Prctica

Observar la configuracin PAM actual

/etc/pam.d

Fichero gdm controla el acceso grfico

El fichero login controla el acceso por consola

Ambos incluyen los ficheros comunes

/etc/pam.d/common-auth

Fichero comn para la autenticacin

/etc/pam.d/other

Configuracin PAM para programas sin archivo de configuracin especfico

Autenticacin con LDAP

LDAP: Lightweight Directory Access Protocol.

LDAP es un protocol de acceso a un servicio de directorio.

Basicamente es como una base de datos, pero organizado jerrquicamente y basado en atributos.

Al usar autenticacin LDAP, simplemente sustituimos las consultas sobre usuarios a la BD local (ficheros passwd y shadow) por consultas al servidor LDAP. PAM se encarga de ello.

Autenticacin con LDAP

El servicio de directorio LDAP se basa en un modelo cliente-servidor.

Uno o ms servidores LDAP contienen los datos que conforman el rbol del directorio LDAP o base de datos troncal.

El cliente ldap se conecta con el servidor LDAP y le hace una consulta.

El servidor contesta con la respuesta correspondiente, o bien con una indicacin de dnde puede el cliente hallar ms informacin (normalmente otro servidor LDAP).

Autenticacin con LDAP

El modelo de informacin de LDAP est basado en entradas. Una entrada es una coleccin de atributos que tienen un nico y global Nombre Distinguido (DN).

El DN se utiliza para referirse a una entrada sin ambigedades. Cada atributo de una entrada posee un tipo y uno o ms valores.

Los tipos son normalmente palabras nemotcnicas, como cn para common name, o mail para una direccin de correo.

La sintaxis de los atributos depende del tipo de atributo. Por ejemplo, un atributo cn puede contener el valor Sergio Gonzlez.

Autenticacin con LDAP

En LDAP, las entradas estn organizadas en una estructura jerrquica en rbol.

Tradicionalmente, esta estructura reejaba los lmites geogrcos y organizacionales.

Las entradas que representan pases aparecen en la parte superior del rbol.

Debajo de ellos, estn las entradas que representan los estados y las organizaciones nacionales.

Autenticacin con LDAP

Debajo de ests, pueden estar las entradas que representan las unidades organizacionales, empleados, impresoras, documentos o todo aquello que pueda imaginarse.

En nuestro caso tenemos:

dc=ex

dc=instituto

ou=People, ou=Groups,cn=admin,cn=cliente

uid=alb | cn=ALE

dn: uid=alb,ou=People,dc=instituto,dc=ex

Autenticacin con LDAP

Autenticacin con LDAP

Programa servidor: slapd

Configuracin: /etc/ldap/slapd.conf

Para conocer todas las opciones:

$man 5 slapd.conf

Opciones importantes:

replogfile: Fichero de logs del servidor.

loglevel: Nivel de detalle en los logs. Dejar a 0 para mejorar el rendimiento.

database: estilo de BD. Usamos ldbm.

Autenticacin con LDAP

Programa servidor: slapd

Configuracin: /etc/ldap/slapd.conf

Opciones importantes:

sufix: La base del directorio.

directory: donde se almacena fisicamente la BD.

access: indican permisos para diferentes acciones y usuarios.

Autenticacin con LDAP

Control de acceso. Indica:

Atributos a los que se concede acceso.

A que usuarios ser permite cada acceso.

El tipo de acceso concedido.

Vemos ejemplos en los ficheros de configuracin de un I.E.S.

Autenticacin con LDAP

Opciones de tunning:

maxthreads n: indica el nmero mximo de hilos simultneos que puede crear slapd. A este nmero se aade un hilo controlador y un hilo propio del uso de la librera de hilos estndar.

cachesize n: Nmero de entradas que se mantienen en la cach interna en memoria.

dbcachesize n: Tamao en bytes de la memoria cach interna asociada con cada fichero abierto.

Autenticacin con LDAP

Configuracin en los clientes

Instalacin del software necesario. Antes de poder autenticar a los usuarios a travs de un servidor LDAP, es necesario instalar algunas utilidades en el cliente, como pam_ldap y nss_ldap.

pam_ldap permite hacer uso de un servidor LDAP para la autenticacin de usuarios (comprobacin de claves) a aquellas aplicaciones que utilicen PAM.

Autenticacin con LDAP

Configuracin en los clientes

Instalacin del software necesario.

nss-ldap permite a un servidor LDAP actuar como un servidor de nombres. Esto significa que provee la informacin de las cuentas de usuario, los IDs de los grupos, la informacin de la mquina, los alias, los grupos de red y bsicamente cualquier cosa que normalmente se obtiene desde los archivos almacenados bajo /etc o desde un servidor NIS.

Autenticacin con LDAP

Configuracin en los clientes

/etc/nsswitch.conf

nsswitch.conf es el fichero de configuracin de las Bases de Datos del Sistema y del sistema de Conmutacin de los Servicios de Nombres (Name Service Switch).

En otras palabras, es un archivo que indica el orden y el procedimiento a seguir para la bsqueda de la informacin requerida, por ejemplo, para hacer bsquedas de hosts o usuarios.

Autenticacin con LDAP

Configuracin en los clientes

/etc/nsswitch.conf

La forma de configurar este archivo es muy simple:

Primero se especifica la base de datos sujeta a la bsqueda(primera columna) seguida del procedimiento que se va a emplear para realizar una bsqueda sobre la misma(columnas siguientes).

De esta forma, basta con configurar el procedimiento de bsqueda para que haga uso de LDAP en algn momento:

passwd: files ldap

Autenticacin con LDAP

Configuracin en los clientes

/etc/libnss-ldap.conf

Configuracin del servidor LDAP al que el cliente conectar. Opciones:

host: Indica la direccin del servidor LDAP.

base: Nombre distinguido de la base de bsqueda.

ldap_version: Nmero de versin LDAP a usar.

binddn: Nombre distinguido con el que hacer bind al servidor.

Autenticacin con LDAP

Configuracin en los clientes

/etc/libnss-ldap.conf

Configuracin del servidor LDAP al que el cliente conectar. Opciones:

bindpw: Las credenciales con las que hacer bind.

/etc/pam-ldap.conf

Mismo contenido que libnss-ldap.conf

Nueva opcin: pam_password. Indica el cifrado a realizar por el cliente antes de enviar la contrasea.

Configuracin de un servidor LDAP

Instalar paquetes necesarios

apt-get install slapd

Configurar el paquete

Omitir configuracin (N)

DNS Domain Name (pruebas)

Nombre organizacin (cpr)

admin password (admin)

Permitir LDAP v2 (s)

Configuracin de un servidor LDAP

Raz de nuestro directorio

dc=pruebas

Dn del usuario admin

cn=admin,dc=pruebas

Configurar el servidor: /etc/ldap/slapd.conf

Acceso total a todo para el administrador

Acceso de lectura a todo para el resto

Configuracin de un servidor LDAP

phpldapadmin

Acceso al servidor LDAP por interfaz web

login/password de admin

A la izquierda, podemos expandir el directorio, tal y como est ahora

Vamos a crear algunos elementos necesarios:

ou=Group, para agrupar los grupos

ou=People, par agrupar a los usuarios

Lo hacemos con el enlace Crear nuevo objeto

Configuracin de un servidor LDAP

phpldapadmin

Crear ou=Group

Plantilla: Organizational Unit

Ou: Group

Nos queda su dn: ou=Group,dc=pruebas

Crear ou=People

Plantilla: Organizational Unit

Ou: People

Nos queda su dn: ou=People,dc=pruebas

Configuracin de un servidor LDAP

Pasar la informacin de la base de datos local de usuarios y grupos a LDAP

Instalar paquete necesario

apt-get install migrationtools

Configurar los datos de nuestro servidor en las utilidades de migracin

/usr/share/migrationtools/migrate_common.ph

DEFAULT_BASE= dc=pruebas

Configuracin de un servidor LDAP

Pasar la informacin de la base de datos local de usuarios y grupos a LDAP

Convertir los datos de passwd y group al formato LDIF:

cd /usr/share/migrationtools

./migrate_passwd.pl /etc/passwd usuarios.ldif

./migrate_group.pl /etc/group grupos.ldif

Obtenemos los ficheros usuarios.ldif y grupos.ldif

Configuracin de un servidor LDAP

Fragmento de fichero ldif:

dn: uid=root,ou=People,dc=pruebas

uid: root

cn::cm9vdA==

objectClass: account

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword: {crypt}$1$btERS/EE$l6bMnEg3Yiyt4g0D7u6Yq.

shadowLastChange: 12809

shadowMax: 99999

Configuracin de un servidor LDAP

Pasar la informacin de los ficheros ldif al servidor LDAP

/usr/bin/ldapadd -x -c -D "cn=admin,dc=pruebas" -w admin -h IP_SERVIDOR -f usuarios.ldif

/usr/bin/ldapadd -x -c -D "cn=admin,dc=pruebas" -w admin -h IP_SERVIDOR -f grupos.ldif

Configuracin de un servidor LDAP

Salimos y volvemos a entrar en phpldapadmin, y vemos que ahora People y Group tienen multitud de entradas cada una. Seleccionando una, vemos sus detalles:

Grupo: gid

Usuario: uid, gid, directorio personal, contrasea

Configuracin de un servidor LDAP

Ahora modificamos la entrada del usuario que vamos a usar para las pruebas: test

Enlace Buscar

Introducimos test en la bsqueda por uid

Seleccionamos el resultado para acceder a su entrada

Modificamos el valor de homeDirectory a /var/home/test (porque no vamos a usar NFS)

Configuracin de un cliente LDAP

Instalacin de los paquetes necesarios

apt-get install libpam-ldap libnss-ldap

Configuracin

/etc/nsswicth.conf

shadow: files ldap

/etc/pam_ldap.conf

host: IP servidor LDAP

base: dc=pruebas

Configuracin de un cliente LDAP

Pasos:

Instalacin de los paquetes necesarios

Configuracin de nsswicth y LDAP

Creacin del directorio personal para el usuario de prueba

Reiniciar

Comprobar la autenticacin

Configuracin de un cliente LDAP

Configuracin

/etc/libnss-ldap.conf

host: IP servidor LDAP

base: dc=pruebas

Creacin del directorio home del usuario test:

mkdir /var/home/test

chmod 777 /var/home/test

Autenticacin con LDAP

Funcionamiento del protocolo LDAP

Cliente -> ServidorBIND REQUEST

Servidor -> Cliente BIND RESULT

Cliente -> ServidorSEARCH REQUEST

Servidor -> ClienteSEARCH ENTRY

Servidor -> Cliente SEARCH RESULT

Mas informacin: RFC 2251

Autenticacin con LDAP

Funcionamiento del protocolo LDAP

Operacin BIND.

Sirve para conectar a un servidor LDAP. Normalmente protegemos el acceso al servidor LDAP, de modo que solo clientes que conocen la bind password (bindpw) pueden conectarse.

Si el par usuario/contrasea suministrada al servidor no coincide con las credenciales definidas para hacer bind (en slapd.conf), no se permitir el acceso.

Autenticacin con LDAP

Funcionamiento del protocolo LDAP

Operacin SEARCH REQUEST

El cliente pide informacin al servidor

Operacin SEARCH ENTRY

El servidor entrega informacin al cliente

Operacin SEARCH RESULT

El servidor indica al cliente el resultado de la operacin de bsqueda.