xestión de dominios con linux

44
Xestión de dominios con Linux Os dominios permiten centralizar a xestión de usuarios e manexar os recursos compartidos da rede dunha forma moito máis eficiente. En Linux existen diversos mecanismos para crear dominios, tanto en redes con equipos Linux como Windows: o Alternativas para crear un dominio con Linux o Configurar un dominio con NIS o Configurar un dominio con Samba o Configurar un dominio con OpenLDAP o Integración de Samba con LDAP o Montar as carpetas persoais dos usuarios do dominio Existen distintos servizos para crear dominios con Linux. Neste apartado analizaremos as distintas posibilidades polas que podemor optar e as características de cada unha delas. Contenido 1 Servidores de dominio en Linux o 1.1 Servidor NIS o 1.2 Servidor LDAP o 1.3 Servidor Samba 2 Servidor NIS con Samba 3 Servidor LDAP con Samba Servidores de dominio en Linux Os principais servizos de autentificación de usuarios que podemos instalar nun servidor Linux son:

Upload: vicente-blanco-barizo

Post on 12-Jun-2015

144 views

Category:

Education


8 download

TRANSCRIPT

Xestión de dominios con Linux

Os dominios permiten centralizar a xestión de usuarios e manexar os recursos compartidos da rede dunha forma moito máis eficiente. En Linux existen diversos mecanismos para crear dominios, tanto en redes con equipos Linux como Windows:

o Alternativas para crear un dominio con Linux o Configurar un dominio con NIS o Configurar un dominio con Samba o Configurar un dominio con OpenLDAP o Integración de Samba con LDAP o Montar as carpetas persoais dos usuarios do dominio

Existen distintos servizos para crear dominios con Linux. Neste apartado analizaremos as distintas posibilidades polas que podemor optar e as características de cada unha delas.

Contenido

1 Servidores de dominio en Linux o 1.1 Servidor NIS o 1.2 Servidor LDAP o 1.3 Servidor Samba

2 Servidor NIS con Samba

3 Servidor LDAP con Samba

Servidores de dominio en Linux

Os principais servizos de autentificación de usuarios que podemos instalar nun servidor Linux son:

Servidor NIS O servizo de NIS (Network Information System) permite a autentificación de

usuarios centralizada cando tanto os clientes como o servidor do dominio son equipos con Linux.

O seu funcionamento é bastante simple, e básicamente consiste en compartir os ficheiros de configuración do servidor de usuarios, claves, grupos,... (poden compartirse outros ficheiros como nomes de máquinas, etc.) nunhas estruturas na memoria chamadas mapas de NIS ás que acceden os clientes.

O servizo NIS+ é unha mellora do servidor NIS con características adicionais, pero non está dispoñible para Linux.

Servidor LDAP LDAP é un protocolo para o acceso a servizos de directorio, moi utilizado para

centralizar a autentificación de usuarios en todo tipo de servizos. Unha das súas grandes vantaxes é que se trata dun protocolo estándar respectado

por toda a industria do software, incluíndo Microsoft que implementa o servidor LDAP no Active Directory.

OpenLDAP é unha implementación libre do protocolo LDAP que permite centralizar con este servizo de directorio a autentificación de usuarios nun servidor Linux.

Os clientes utilizarán o cliente LDAP para validar as credenciales dos usuarios contra o servidor LDAP.

O servizo LDAP é moi potente e flexible, pode configurarse con distintos niveis de seguridade e permite unificar a autentificación de todos os distintos servizos que haxa na rede (Intranet, servidor de correo, etc.)

Servidor Samba Samba é unha implementación para Linux do protocolo NetBIOS utilizado polas

redes Windows para compartir carpetas e impresoras, formar un dominio ou un grupo de traballo, etc.

Ademais de compartir carpetas de impresoras entre equipos Windows e Linux, Samba permite configurar un equipo Linux como controlador de dominio dunha rede Windows.

Basicamente a idea é a de "enganar" aos equipos Windows facéndolles crer que o servidor Linux é un servidor de Windows, e que o utilicen como controlador de dominio.

Dado que hoxe en día é moi difícil contar nun centro con unha rede só con clientes Linux, a combinación de Samba con NIS ou LDAP é imprescindible para poder ter un dominio híbrido con cliente Linux e Windows.

Servidor NIS con Samba

Unha alternativa simple para montar un dominio con un servidor Linux no que se combinen clientes Windows e Linux é utilizar o servidor de NIS xunto co servidor de Samba.

O esquema de funcionamento desta alternativa pode ser similar ao mostrado no diagrama:

Por un lado, os clientes Linux autentifícanse co cliente de NIS contra os mapas de NIS do servidor. Estes mapas son creados polo servidor de NIS cada vez que arranca a partir dos ficheiros de configuración de usuarios, claves, etc. do servidor de dominio.

Polo outro lado, os clientes Windows autentifícanse contra o servidor de samba, que toma os usuarios dun ficheiro de configuración propio.

Hai que ter en conta que se queremos manter un único login e clave para o usuario nos clientes Windows e Linux, é necesario establecer un mecanismo que manteña sincronizadas as credenciais do ficheiro do sistema co de Samba, e pola parte do servidor de NIS recargar a información dos mapas cando se produzan cambios.

Ademais destas problemas, esta solución ten a carencia de ter que integrar os dous servizos no mesmo equipo servidor e non poder centralizar a autentificación de outros servizos, como Intranet, correo electrónico, etc.

Por todas estas razóns, esta alternativa resulta adecuada para unha rede con tamaño e necesidades medias; en caso contrario será mais recomendable optar pola seguinte alternativa.

Servidor LDAP con Samba

Nesta alternativa, o servidor LDAP realiza a función de almacén principal de usuarios, que xa non se toman dos ficheiros de configuración do equipo servidor se non do almacén propio da base de datos LDAP.

Os clientes Linux utilizan o cliente LDAP para autentificarse directamente contra o servidor LDAP.

Os clientes Windows autentifícanse contra o servidor de Samba, que á súa vez utiliza o servidor LDAP para autentificar aos usuarios.

O servidor de Samba e LDAP poden estar na mesma máquina ou en máquinas distintas.

Con esta configuración evitamos o problema de ter que manter distintos almacéns de usuarios sincronizados (o ficheiro de usuarios do sistema, o de samba e os mapas de NIS) do caso anterior.

O servidor LDAP ofrece características de configuración e seguridade maiores que o servidor de NIS, á vez que favorece unificar a autentificación de distintos servizos e aplicacións da rede.

Os pasos que teremos que realizar para configurar un dominio con NIS son os seguintes:

1 Instalación e configuración do servidor de NIS 2 Instalación e configuración do cliente de NIS 3 Actualizar os mapas de NIS 4 Actividade: Creación dun dominio con NIS 5 Configurar o acceso ás carpetas persoais dos usuarios do dominio 6 Actividade: Compartir recursos no dominio 7 Ficheiros de configuración máis importantes 8 Comandos para testar o servizo de NIS

Instalación e configuración do servidor de NIS

O primeiro paso para montar un dominio con NIS é configurar un equipo como servidor de NIS:

Instalación dos paquetes necesarios

Instalamos o paquete nis usando o xestor de paquetes synaptic:

Na mesma instalación do paquete arrancará un asistente que nos pedirá a información básica para configurar o servizo de NIS, que simplemente é o nome do dominio:

Configuración do equipo como servidor de NIS

Ubuntu utiliza o ficheiro de configuración /etc/default/nis para establecer o comportamento do servizo de NIS, isto é, como cliente ou como servidor.

Deberemos editar este ficheiro (como root) e establecer os datos para que o equipo actúe como servidor de NIS, xa que por defecto actúa como cliente:

NISSERVER=true NISCLIENT=false

Unha vez feitos estes cambios, debemos reiniciar o servizo de NIS.

Os grupos de sistema de Ubuntu con NIS

Ubuntu xestiona os acceso dos usuarios a moitos recursos do sistema (audio, discos extraíbles, etc.) por medio dunha serie de grupos que ten predefinidos e no que deben estar incluídos os usuarios para poder facer uso deles.

O problema é que por defecto o servidor de NIS non exporta os usuarios e grupos con identificador inferior a 1000, e polo tanto estes grupos non aparecerán nos clientes.

Para solucionalo, deberíamos modificar no ficheiro /var/yp/Makefile os parámetros, MINUID (identificador de usuario mínimo a exportar) e MINGID (identificador de grupo mínimo para exportar), deixando por exemplo:

MINUID = 4MINGID = 4

Para que o servizo de NIS funcione correctamente, debemos configurar tamén estes dous servizos para que establecer a conexión entre cliente e servidor.

o O firewall debe permitir todas as conexións que veñan das máquinas clientes.

o O servizo de portmap debe estar executándose porque é o encargado de redirixir as peticións dos clientes ao servidor de NIS.

Instalación e configuración do cliente de NIS

A continuación debemos configurar os clientes Linux para que se autentifique contra este dominio NIS:

o Instalación e configuración do cliente de NIS en Ubuntu: En primeiro lugar debemos instalar o paquete nis da mesma

maneira que na instalación do servidor, poñendo o nome do dominio ao que queremos engadir o equipo.

Por defecto o paquete nis de Ubuntu ven configurado como cliente, polo que non teremos que facer xa ningún cambio.

Para que o sistema de autentificación do sistena utilice faga uso de nis, deberemos editar o ficheiro /etc/nsswitch.conf e establecer que para buscar os usuarios, claves e grupos use os ficheiros locais en primeiro lugar e despois nis:

passwd: compat nisgroup: compat nisshadow: compat nis

Actualizar os mapas de NIS

Un dos problemas máis importantes que ten o servidor de NIS é o feito de que non actualice automaticamente os mapas exportados aos clientes cando se produza un cambio nos ficheiros de configuración que estes exportan.

Isto provoca que, por exemplo, se damos de alta un novo usuario no servidor, este usuario non poderá ser usado nos clientes ata que non actualicemos os mapas de NIS.

Para forzar a actualización dos mapas, deberemos executar o script de xeneración dos mapas de NIS:

make -C /var/yp

Actividade: Creación dun dominio con NIS

1. Crea un dominio NIS chamado nome_do_teu_centro.local.2. Une a este dominio un equipo cliente.3. Crea no servidor de NIS o usuario alumno01, con clave abc123. e a carpeta persoal en /homes/alumno01. Actualiza os mapas de NIS para que tomen este novo usuario.4. Comproba que podes iniciar unha sesión en modo texto no equipo cliente co usuario alumno01.5. Comproba se podes iniciar unha sesión gráfica no equipo cliente co usuario alumno01.

Configurar o acceso ás carpetas persoais dos usuarios do dominio

Podemos comprobar que se pretendemos entrar nun equipo cliente cun usuario do dominio o contorno gráfico informará dunha serie de erros e non poderemos iniciar a sesión.

Este problema é debido a que o equipo cliente non pode acceder á carpeta persoal do usuario, e deberemos configurar tanto cliente como servidor para montar nos equipos clientes as carpetas persoais dos usuarios do dominio.

Actividade: Compartir recursos no dominio

1. Crea no servidor a carpeta /comun e ponlle permiso de lectura e escritura para todos os usuarios.2. Comparte no servidor as carpetas /homes e /comun por NFS.3. Monta no cliente a carpeta /comun do servidor sobre /comun, e a /homes sobre /homes.3. Comproba se podes iniciar unha sesión gráfica no equipo cliente co usuario alumno01.4. Comproba que a carpeta persoal do usuario reside realmente no servidor, e que podes acceder en /comun á carpeta /comun do servidor e escribir nela.

Ficheiros de configuración máis importantes

Os ficheiros básicos de configuración do cliente e servidor de NIS son: o /etc/ypserv.conf : Ficheiro de configuración do servidor de NIS. Nel

podemos definir regras de acceso para determinadas máquinas cliente ou para determinados mapas de NIS.

o /var/yp/Makefile: Ficheiro Makefile que xenera os mapas de NIS. Nel se establecer a maioría dos parámetros importantes do servizo de NIS, como o nome do dominio, os mapas a exportar, os ficheiros dos que se toman os datos para os mapas, etc.

o /var/yp/securenets: Este ficheiro pode utilizarse para indicar as direccións IP de máquinas ou redes que están autorizadas a obter información do servidor de NIS. Se este ficheiro non existe, o servidor de NIS permitirá o acceso a todas as máquinas.

o /etc/yp.conf : Ficheiro de configuración do cliente de NIS. Nel podemos establecer o dominio no que se inclúe o cliente e a dirección IP do servidor de NIS.

Porén, aínda que estes son os ficheiro de configuración estándares definidos no servizo de NIS, cada distribución pode definir outros ficheiros de configuración para optimizar o rendemento do sistema ou facilitar a súa configuración.

o Por exemplo, Ubuntu inclúe o ficheiro de configuración /etc/default/nis onde se pode modificar de forma centralizada o comportamento do servizo de NIS, xa sexa o equipo un cliente ou un servidor.

Comandos para testar o servizo de NIS

Existen varios comandos útiles para poder comprobar dende un equipo cliente se a configuración do servizo NIS é correcta:

o ypcat: Visualza o contido da táboa de NIS que se lle indique como parámetro. Podemos utilizalo como se ve no seguinte exemplo:

ypcat passwd.byname

o ypwhich: Devolve o nome do servidor de NIS do dominio. o yptest: Realiza unha serie de peticións de proba sobre o servidor de NIS.

Poderemos ver a información obtida e ver se algún dos test produciu algún erro.

o getent: Este comando devolve as entradas dunha das bases de datos do sistema (definidas no ficheiro /etc/nsswitch.conf). Polo tanto, se o usamos sobre a base de datos de usuarios, debería mostrar os usuarios do dominio:

getent passwd

Configurar un dominio con Samba

Contenido

1 Configurar o servidor de samba como controlador de dominio 2 Engadir un cliente Windows XP ao dominio 3 Iniciar sesión no dominio 4 Actividade: Configurar un dominio con Samba 5 Configurar scripts para o inicio de sesión 6 Ocultar os ficheiros e directorios non permitidos 7 Sincronizar os usuarios do sistema cos usuarios Samba 8 Actualizar a clave do usuario dende un equipo Windows 9 Actividade: Xestión de usuarios e cartafoles compartidos 10 Ficheiros de configuración de Samba

Configurar o servidor de samba como controlador de dominio

O primeiro paso será configurar no servidor o servizo de samba para que actúe como controlador dun dominio Windows.

Contenido

1 Definir os parámetros básicos do servidor de samba 2 Configuración como controlador de dominio 3 Engadir o usuario root como usuario samba 4 Compartir as carpetas persoais dos usuarios 5 Crear grupo de usuarios para o dominio

Definir os parámetros básicos do servidor de samba

Os parámetros básicos podemos establecelos con webmin, no módulo de xestión de samba (en Servidores->Compartición de archivos de Windows mediante Samba) e dentro del no apartado de Rede de Windows:

Os datos máis importantes son: o Grupo de traballo: Este será o nome do dominio Windows que imos

crear; neste caso OMEUDOMINIO. o Nome do servidor: Este é o nome que terá este equipo na rede Windows

e, polo tanto, o nome do controlador do dominio. o Seguridade: Debe estar a Nivel de usuario.

Configuración como controlador de dominio

Editamos o ficheiro de configuración de samba directamente dende o webmin

e introducimos dentro da sección [global] os seguintes parámetros:

domain logons = Yesos level = 64domain master = Yeswins support = Yes

Engadir o usuario root como usuario samba

Por defecto, na configuración de samba de Ubuntu deshabilita o acceso de root por samba, e o habilitaremos porque usaremos o usuario root para engadir equipos no dominio. Quitaremos do ficheiro de configuración a liña:

invalid users = root

Podemos importar o usuario root dende a opción do webmin de Convertir usuarios de Unix a usuarios de samba:

NOTA: Para engadir o usuario root, deberemos indicar no rango de usuarios exluídos de 1 a 499, xa que root é o usuario 0:

Compartir as carpetas persoais dos usuarios

Por defecto, o configuración de samba en Ubuntu non comparte os directorios persoais dos ususuarios; compartirémolas co webmin, picando en Crear nueva compartición de archivo:

Finalmente, convén reiniciar o servizo samba para asegurarnos de que se activan todos os cambios realizados

Crear grupo de usuarios para o dominio

Crearemos un grupo de usuarios Linux co mesmo nome que o dominio, que usaremos para inluír nel os usuarios que teremos que crear para representar ás máquinas do dominio:

Engadir un cliente Windows XP ao dominio

Para engadir un equipo cliente con Windows XP no dominio samba seguiremos os seguinte pasos:

Debemos engadir un usuario Linux co nome do equipo cliente que imos engadir no dominio engadindo o símbolo $ no final. Se o equipo ten por nome clientexp, engadiremos o usuario clientexp$

Imos engadir este usuario como usuario samba, pero indicando que este usuario é unha conta dunha estación de traballo. Usaremos o comando smbpasswd:

smbpasswd -a -m clientexp

No equipo Windows XP, entraremos como administrador e engadiremos o equipo no dominio. Cando nos pida o usuario e clave para engadir o equipo no dominio, introduciremos root e a clave do usuario root en samba:

O usuario xa disporá automaticamente da súa carpeta persoal conectada na unidade Z:. Poderiamos cambiar a letra desta unidade en swat co parámetro logon drive:

Os usuarios tamén dispoñen automaticamente de perfís móbiles, xa que por defecto samba fai que Windows use o cartafol profile que está dentro do directorio persoal para almacenar o perfil. Deste xeito, se o usuario inicia sesión noutro equipo cliente do dominio, manterá a súa configuración persoal. Poderiamos cambiar a localización do perfil dos usuarios en swat co parámetro logon path.

Actividade: Configurar un dominio con Samba

1. Crea un dominio Samba chamado nome_do_teu_centro.2. Une a este dominio un equipo cliente.3. Comproba que podes iniciar sesión no dominio dende o equipo cliente co usuario alumno01, coa clave que teña este usuario en samba.

Configurar scripts para o inicio de sesión

Cando nun dominio Windows temos un controlador con Windows Server, podemos configurar scripts para que se executen de forma automatica no inicio de sesión dos usuarios.

Estes scripts son moi útiles para: o Conectar unidades de rede (co comando net use). o Sincronizar a hora dos equipos clientes co servidor (comando net time). o Facer que se abra un documento cando os usuarios inicien sesión

(comando start). o Modificar algún valor no rexistro de Windows para cambiar o

comportamento dalgún programa (comando regedit). o Etc.

Estes scripts de inicio de sesión almacénanse nun cartafol compartido co nome netlogon no controlador de dominio.

O xeito de configurar scripts de inicio de sesión en samba é similar: o En primeiro lugar, compartiremos un cartafol co nome netlogon:

o Neste cartafol creamos un ficheiro inicio.bat co seguinte texto:

REM Ficheiro de inicio de sesion net use t: \\controlador\temp

o Entraremos en swat ou editaremos o ficheiro de configuración para introducir no parámetro logon script o nome do script, inicio.bat.

Ocultar os ficheiros e directorios non permitidos

Unha opción que pode ser moi interesante cando compartimos carpetas de uso común mediante samba, é a de ocultar os ficheiros e directorios dentro destas carpetas aos que o usuario non teña acceso de lectura.

Por exemplo, desta forma podemos ter unha carpeta compartida comun e dentro unha carpeta profes que só verán os profes.

Para establecer este comportamento, modificaremos con swat o parámetro hide unreadable a yes

Sincronizar os usuarios do sistema cos usuarios Samba

O problema que temos coa configuración dos usuarios de samba é que se damos de alta un novo usuario en Linux, o modificamos (por exemplo, cabiámoslle a clave) ou o borramos, estes cambios non se trasladarán aos usuarios de samba, xa que son usuarios independentes.

Para facilitar a xestión dos usuarios, webmin inclúe a opción de poder sincronizar os usuarios de samba cos usuarios de Linux:

Con esta utilidade poderemos facer que os usuarios samba se creen, modifiquen e borren cada vez que se fan estes cambios sobre os usuarios de Linux, sempre que os cambios nos usuarios de Linux se fagan co wenmin:

Actualizar a clave do usuario dende un equipo Windows

Coa configuración por defecto de samba, un usuario do dominio pode cambiar a súa clave, pero este cambio de clave só afectará ao usuario de samba, mentres que o correspondente usuario de Linux seguirá tendo a clave anterior.

Podemos configurar samba para que cambie automaticamente a clave de Linux dese usuario cada vez que se cambia a clave dende Windows.

O que fará samba para facer esta actualización é executar o comando passwd como root no servidor para cambiarlle a clave ao usuario en Linux.

Para activar esta posibilidade, entraremos na opción de Autentificación do módulo de xestión de samba do webmin:

Os parámetos que hai que configurar son os seguintes: o Change Unix password as well? = Si

Desta forma lle dicimos ao servidor de samba que cada vez que se cambie a clave de samba automaticamente sincronice a clave de Linux.

Este parámetro no ficheiro de configuración chámase unix password sync

o Programa de claves de acceso = /usr/bin/passwd %u Este parámetro dille ao servidor de samba onde está o programa

que ten que usar para cambiar a clave de usuario (normalmente debe estar aí en calquera distribución). Hai que ter en conta que samba executará este comando como root e que substituirá %u polo login do usuario que cambiou a clave.

No ficheiro de configuración correspóndese co parámetro passwd program

o Charla para cambiar la clave de acceso Este parámetro indica como é o intercambio de mensaxes entre o

servidor de samba e o comando passwd. O valor que deberemos poñer varía dependendo da distribución e o idioma do sistema. No noso caso deberemos poñer:

En Ubuntu:

*Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully*

Correspóndese no ficheiro de configuración co parámetro passwd chat

Actividade: Xestión de usuarios e cartafoles compartidos

1. Activa no webmin a sincronización dos usuarios de samba cos usuarios de Linux.2. Crea co webmin un usuario Linux profesor01 con clave abc123..3. Crea no servidor en /comun os seguintes cartafois: 3.1./comun/apuntes onde profesor01 pode ler e escribir, e o resto dos usuarios só poden ler. 3.2./comun/profes onde só pode ler e escribir profesor01, e o resto dos usuarios non poden acceder.4. Comparte no servidor por samba a carpeta /comun co nome comun para lectura e escritura de todos os usuarios.5. Activa no servidor a opción que oculta os ficheiros non accesibles aos usuarios.6. Crea un script de inicio de sesión que conecte a carpeta comun na unidade R:7. Inicia sesión cos usuarios alumno01 e profesor01 no cliente Windows XP e comproba que na unidade R: aparecen accesibles as carpetas que corresponden ao tipo de usuario, e que os permisos son correctos (o usuario alumno01 non debería poder escribir en apuntes, pero profesor01 si).

Ficheiros de configuración de Samba

Os ficheiro de configuración básico de samba é smb.conf, normalmente almacenado no directorio /etc/samba. Neste ficheiro establécense todos os parámetros de comportamento do servizo e os recursos compartidos.

Outros ficheiros importantes son smbpasswd e smbusers, que almacenan a información dos usuarios de samba, as súas claves e a correspondencia dos usuarios de samba cos usuarios de Linux

Configurar un dominio con OpenLDAP

Os pasos que teremos que realizar para configurar un dominio con OpenLDAP son:

Contenido

1 Instalación e configuración do servidor de OpenLDAP 2 Xestionar o LDAP con LDAP Account Manager

o 2.1 Configurar LDAP Account Managero 2.2 Xestión dos usuarios e grupos do LDAP con LDAP Account

Manager 3 Instalación e configuración do cliente LDAP

4 Configurar o acceso ás carpetas persoais dos usuarios do dominio 5 Actividade: Creación dun dominio con LDAP 6 Cambiar o contrasinal do usuario nun dominio con LDAP 7 Migrar os usuarios do sistema ao LDAP 8 Ficheiros de configuración máis importantes

Instalación e configuración do servidor de OpenLDAP

O primeiro paso é configurar un equipo como servidor de LDAP:

Instalación dos paquetes necesarios

Deberemos instalar no servidor os seguintes paquetes:

slapd, ldap-utils: Paquetes básicos para o funcionamento e manexo do servizo LDAP.

libnss-ldap, libpam-ldap: Necesarios para xestionar a autentificación do sistema por medio do servidor LDAP

ldap-account-manager, php5-mhash: Necesarios para LDAP Account Manager, ferramenta web de xestión dos usuarios e grupos do LDAP.

Na instalación dos paquetes xa introduciremos os datos necesarios para configurar o LDAP.

Servidor LDAP (paquete slapd): Introducimos a clave para o administrador do LDAP

Configuración necesaria para o servizo LDAP

Realizaremos os cambios necesarios directamente no ficheiro de configuració do servidos OpenLDAP, slapd.conf que se atopa no cartafol /etc/ldap.

En primeiro lugar no ficheiro poderemos ver os esquemas incluídos no servidor LDAP. Comprobaremos os esquemas que están incluidos, e veremos que non está o esquema de samba. Imos copialo ao directorio de configuración de LDAP:

# cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/# gunzip /etc/ldap/schema/samba.schema.gz

Finalmente, estarán incluidos os esquemas seguintes:

include /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/nis.schemainclude /usr/share/openldap/schema/samba.schema

Os parámetros que cambiaremos serán os que definen o nome do dominio LDAP. Os máis importantes son suffix e rootdn, que establecen o sufixo da árbore LDAP e o distinguished name ou identificador do usuario que utilizaremos como administrador do LDAP.

Por defecto o sufixo establecido é dc=nodomain. O máis cómodo é facer unha substitución en todo o ficheiro deste texto polo sufixo do noso dominio, por exemplo dc=omeudominio,dc=local. Deste xeito, os parámetros quedarán:

suffix "dc=omeudominio,dc=local"rootdn "cn=manager,dc=omeudominio,dc=local"

Tamén debemos establecer a clave do administrador do LDAP no parámetro rootpw. Podemos introducir esta clave en claro ou cifrada, o que é máis

recomendable. Podemos cifrar a clave que imos copiar neste parámetro co comando slappasswd:

slappasswdNew password: (introducimos clave)Re-enter new password: (introducimos clave){SSHA}fE+wFAPFPDxb2SMrTPh3+uBRuDKyropX

E no ficheiro de configuración copiamos a clave:

rootpw {SSHA}fE+wFAPFPDxb2SMrTPh3+uBRuDKyropX

Por último, comprobamos que no ficheiro de configuración están definidos o índices de búsquedas LDAP, no que se indica como debe o servidor buscar segundo os distintos parámetros dos obxectos.

Deberán estar incluídos os índices de búsqueda polos atributos de samba (sambaSID, sambaDomainName, displayName). Incluiremos os seguintes índices:

index cn,mail,surname,givenname eq,subinitialindex uidNumber,gidNumber,memberuid,member,uniqueMember eqindex uid eq,subinitialindex sambaSID,sambaDomainName,displayName eq

Xa podemos arrancar o servidor LDAP lanzando o servizo slapd.

Para que o servizo de LDAP funcione correctamente, debemos configurar o firewall para que permita as conexións dos clientes polo portos 389 e 636 (para conexión segura).

Xestionar o LDAP con LDAP Account Manager

LDAP Account Manager é unha ferramenta web para a xestión dos usuarios dun servidor LDAP.

Para poder utilizala teremos que ter lanzado o servidor web apache no equipo, polo que deberemos lanzar antes de nada o servizo httpd.

Configurar LDAP Account Manager Con un navegador conectarémonos á dirección:

http://localhost/lam (En Ubuntu)

Accedemos á páxina inicial da ferramenta:

Picaremos sobre LAM configuration para configurar o funcionamento básico de LAM (siglas de LDAP Account Manager):

Na opción de Edit general settings accedemos a parámetros de configuración de seguridade de LAM, como cambiar a clave principal da ferramenta (por defecto é lam), establecer que só certas máquinas poidan acceder ou o nivel de logging ou rexistro das accións realizadas.

A opción de Edit server profiles permite configurar os parámetros do servidor LDAP que imos xestionar. Introduciremos os datos do noso dominio:

Xa podemos intentar acceder ao noso servidor LDAP. Accederemos poñendo na pantalla inicial a clave do administrador.

Cando entremos por primeira vez, LAM detectará que o LDAP está baleiro e nos dará a opción de crear os cartafoles principais (en LDAP chamados Unidades Organizativas ou OUs) onde almacenar os usuarios, grupos, máquinas e dominios no LDAP.

Pero se nos fixamos nas estruturas que vai crear, non corresponden ao sufixo da nosa árbore LDAP senón ao sufixo por defecto dc=my-domain,dc=com. Isto é debido a que LAM trae por defecto configurado este sufixo.

Para resolver este problema, reemprazaremos no ficheiro de configuración de LAM o texto dc=my-domain,dc=com por dc=omeudominio,dc=local,

Este ficheiro, en Ubuntu en /usr/share/ldap-account-manager/config/lam.conf quedaría cos seguintes valores:

types: suffix_user: ou=People,dc=omeudominio,dc=localtypes: suffix_group: ou=group,dc=omeudominio,dc=localtypes: suffix_host: ou=machines,dc=omeudominio,dc=localtypes: suffix_smbDomain: ou=domains,dc=omeudominio,dc=local

Se agora volvemos a entrar en LAM, a páxina xa nos indicará:

Agora si que accedemos a crealas e nos atoparemos na páxina principal de LAM:

Xestión dos usuarios e grupos do LDAP con LDAP Account Manager

Nas distintas opcións superiores de Users, Groups, Hosts e Samba domains podemos administrar os usuarios, grupos, máquinas e dominios de samba almacenados no LDAP respectivamente.

LAM está orientada a xestionar un servidor LDAP que autentifique tamén a un dominio samba, e non nos permitirá crear usuarios ou grupos sen antes crear un dominio samba ao que asignalos.

Polo tanto, en primeiro lugar crearemos un dominio samba, que será xa o que utilicemos despois cando integremos samba con LDAP. Picamos en Samba domains:

Para obter o SID do dominio, executamos como root no servidor de samba o comando:

net getlocalsid

A continuación podemos crear un grupo de usuarios (necesario para poder crear un usuario), picando en Groups:

E por último podemos crear un usuario:

Instalación e configuración do cliente LDAP

A continuación debemos configurar os clientes Linux para que se autentifique contra o servidor LDAP:

Instalación e configuración do cliente de LDAP en Ubuntu: o Deberemos instalar os seguintes paquetes:

libnss-ldap, libpam-ldap: Necesarios para xestionar a autentificación do sistema por medio do servidor LDAP. Na configuración dos paquetes seguiremos os mesmos pasos que no servidor, pero cambiando localhost pola dirección IP do servidor LDAP.

o Configuración do ficheiro /etc/nsswitch.conf:

passwd: files ldapgroup: files ldapshadow: files ldap

o Configuración de PAM (Sistema de autentificación modular de Linux) para que utilice LDAP para autentificar aos usuarios. O contido destes ficheiros quedaría da seguinte forma:

Ficheiro /etc/pam.d/common-auth: auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure try_first_passFicheiro /etc/pam.d/common-session: session optional pam_mkhomedir.so skel=/etc/skel umask=077 session sufficient pam_ldap.so session required pam_unix.so try_first_pass session optional pam_foreground.soFicheiro /etc/pam.d/common-password: password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5 try_first_passFicheiro /etc/pam.d/common-account:

account sufficient pam_ldap.so account required pam_unix.so try_first_pass

o A primeira liña incluída no ficheiro common-session serve para que se cree automaticamente o ficheiro persoal do usuario cando inicie sesión se non existe. Isto é necesario porque LDAP Account Manager non creará automaticamente os ficheiros persoais dos usuarios ao crealos.

Para poder xestionar o dominio correctamente, e conveniente que o servidor de dominio tamén se autentifique contra o LDAP, polo que sera necesario configurar tamén no servidor o cliente LDAP.

Configurar o acceso ás carpetas persoais dos usuarios do dominio

Podemos comprobar que se pretendemos entrar nun equipo cliente cun usuario do LDAP o contorno gráfico informará dunha serie de erros e non poderemos iniciar a sesión.

Este problema é debido a que o equipo cliente non pode acceder á carpeta persoal do usuario, e deberemos configurar tanto cliente como servidor para montar nos equipos clientes as carpetas persoais dos usuarios do dominio.

Actividade: Creación dun dominio con LDAP

1. Instala o servidor OpenLDAP e configúrao co dominio nome_do_teu_centro.local, é dicir, co sufixo dc=nome_do_teu_centro,dc=local.2. Instala no servidor a ferramenta LDAP Account Manager e configúraa para manexar este servidor LDAP.3. Crea no servidor LDAP o usuario alumno02, con clave abc123. e carpeta persoal en /homes/alumno02.4. Configura o servidor para que tome os usuarios do LDAP e comproba que podes iniciar sesión co usuario alumno02.5. Configura o equipo cliente para que tome os usuarios do LDAP e comproba que podes iniciar sesión co usuario alumno02.6. Configura o equipo servidor para que tome os usuarios do LDAP e comproba que podes iniciar sesión co usuario alumno02.

Cambiar o contrasinal do usuario nun dominio con LDAP

Os usuarios do dominio poden cambiar a súa clave utilizando o propio comando passwd utilizado normalmente en Linux ou calquera ferramenta gráfica que faga uso deste comando.

Migrar os usuarios do sistema ao LDAP

Se xa temos un dominio funcionando con NIS, seguramente nos interesará poder migrar os usuarios que temos no sistema exportados por NIS á árbore do LDAP.

O paquete migrationtools inclúe un conxunto de scripts que permiten migrar automaticamente os usuarios do sistema ao LDAP.

Unha vez instalado o paquete, seguiremos os seguintes pasos: o Editamos o ficheiro /usr/share/migrationtools/migrate_common.ph,

modificando os seguintes parámetros:

$DEFAULT_BASE = "dc=omeudominio,dc=local";$EXTENDED_SCHEMA = 1;

o Executamos os scripts que xeneran, a partir dos ficheiros de usuarios, claves, grupos e máquinas do sistema, ficheiros en formato ldif para ser exportados despois ao LDAP:

export ETC_SHADOW=/etc/shadowcd /usr/share/migrationtools/usr/share/migrationtools/migrate_base.pl > /tmp/base.ldif/usr/share/migrationtools/migrate_group.pl /etc/group /tmp/group.ldif/usr/share/migrationtools/migrate_hosts.pl /etc/hosts /tmp/hosts.ldif/usr/share/migrationtools/migrate_passwd.pl /etc/passwd /tmp/passwd.ldif

o Utilizamos o comando ldapadd (paquete ldap-utils en Ubuntu) para engadir a información destes ficheiros no LDAP:

ldapadd -D "cn=Manager,dc=omeudominio,dc=local" -x -W -f /tmp/base.ldifldapadd -D "cn=Manager,dc=omeudominio,dc=local" -x -W -f /tmp/group.ldifldapadd -D "cn=Manager,dc=omeudominio,dc=local" -x -W -f /tmp/passwd.ldifldapadd -D "cn=Manager,dc=omeudominio,dc=local" -x -W -f /tmp/hosts.ldif

Ficheiros de configuración máis importantes

Os ficheiros básicos de configuración do cliente e servidor de LDAP son: o slapd.conf: Ficheiro básico de configuración do servidor OpenLDAP. o ldap.conf: Ficheiro básico de configuración do cliente LDAP. o nsswitch.conf: Ficheiro de configuración das fontes de datos do sistema

Integración de Samba con LDAP

Unha vez temos instalado o servidor de Samba como controlador de dominio e o servidor LDAP, só nos queda configurar o servidor de samba para que autentifique aos usuarios contra o servidor LDAP e teñamos así un único almacén de usuarios centralizado no dominio.

Contenido

1 Instalación dos paquetes necesarios 2 Configurar Samba para que autentifique contra o LDAP 3 Cubrir a estrutura base do LDAP para o dominio Windows 4 Modificar os usuarios migrados de Linux

Instalación dos paquetes necesarios

En primeiro lugar, instalaremos o paquete smbldap-tools, que contén un conxunto de scripts para manter a interacción entre o servidor samba e o LDAP.

Configurar Samba para que autentifique contra o LDAP

Podemos usar swat ou editar o ficheiro de configuración de samba para modificar os seguintes parámetros na configuración:

o Indicámoslle a samba que use o ldap para almacenar os usuarios:

passdb backend = ldapsam:ldap://localhost

o Estes scripts permiten que o servidor de samba poida dar de alta máquinas no LDAP (por exemplo, cando se agrega un equipo no dominio) e xestionar os usuarios e grupos, de forma que se podes así manipular con ferramentas de xestión de Windows:

add user script = /usr/sbin/smbldap-useradd -a -m '%u'delete user script = /usr/sbin/smbldap-userdel '%u'add group script = /usr/sbin/smbldap-groupadd -p '%g'delete group script = /usr/sbin/smbldap-groupdel '%g'add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'set primary group script = /usr/sbin/smbldap-groupmod -g '%g' '%u'add machine script = /usr/sbin/smbldap-useradd -w '%u'

o Parámetros para a conexión co LDAP e localizar os distintos elementos:

ldap admin dn = cn=Manager,dc=omeudominio,dc=localldap group suffix = ou=groupldap idmap suffix = ou=Idmapldap machine suffix = ou=machinesldap passwd sync = Yesldap suffix = dc=omeudominio,dc=localldap ssl = noldap user suffix = ou=People

o Con estes parámetros samba usará o servidor LDAP para obter a asignación entre UIDs e GIDs cos identificadores dos usuarios en Windows:

idmap backend = ldap:ldap://localhostidmap uid = 10000-20000idmap gid = 10000-20000

Para rematar, temos que proporcionarlle ao servidor de samba a clave do administrador do LDAP para que poida acceder a este servizo con privilexios administrativos. Esta clave non se almacena como un parámetro máis do servidor de samba porque o ficheiro de configuración de samba pode ser lido por todos os usuarios.

Para subministrar a clave usaremos o comando smbpasswd

smbpasswd -w clave

Cubrir a estrutura base do LDAP para o dominio Windows

Agora é necesario introducir no LDAP a estrutura de usuarios e grupos necesaria para un controlador de dominio (grupos de administradores de dominio, ordenadores do dominio, etc.). Debemos editar dous ficheiros de configuración do paquete smbldap-tools:

o /etc/smbldap-tools/smbldap.conf: Modificaremos os seguintes parámetros:

SID="S-1-5-21-3596143854-3156901602-3839263879" (obtémolo de net getlocalsid)sambaDomain="omeudominio"ldapTLS="0"suffix="dc=omeudominio,dc=local"

o /etc/smbldap-tools/smbldap_bind.conf: Quedaŕá da seguinte forma:

slaveDN="cn=Manager,dc=omeudominio,dc=local"slavePw="ldap123."masterDN="cn=Manager,dc=omeudominio,dc=local"masterPw="ldap123."

Executamos o comando smbldap-populate, que creará as entradas no LDAP e ao rematar nos pedirá a clave para o root do dominio (abc123.):

smbldap-populate

É recomendable eliminar posteriomente o ficheiro smbldap_bind.conf por motivos de seguridade, ou quitar del a clave do administrador de LDAP.

Modificar os usuarios migrados de Linux

Por defecto, os usuarios migrados de Linux cos scripts do paquete migrationtools non están incluídos como usuarios do dominio samba nas propiedades de LDAP, e tampouco teñen a clave de samba configurada.

Deberemos modificar os usuarios que nos interese pasar ao dominio, cambiando as súas propiedades no apartado Samba 3: