Servicio de Directorio LDAP



Documentos relacionados
PROYECTO. Solución Empresarial Ingeniería y Desarrollo de Software - info@solucionempresarial.com.

Redes de área local Aplicaciones y Servicios Linux NFS

Curso de Computación Científica en Clusters

Crear servidor NFS en Debian

SIEWEB. La intranet corporativa de SIE

MANUAL COPIAS DE SEGURIDAD

Servidor FTP en Ubuntu Juan Antonio Fañas

Ficheros de configuración de Nagios (ejemplo con nrpe y snmp)

Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX

Gestión de LDAP en Debian Índice de contenido

WINDOWS : COPIAS DE SEGURIDAD

Servidor LDAP en Debian 6 Squeeze

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

PRACTICA NO.4: HOW TO INSTALL NFS

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Prácticas A.S.O./A.S.O.P. - Boletín L08 NFS y NIS

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

Kiara Celeste Contreras Feliz. Matricula: Sistema Operativo III. 5- Creación de usuarios y grupos

Seguidamente se muestra una pantalla para seleccionar nuestra localización, y comprobamos que la hora y demás es correcto. Podemos hacerlo fácilmente

Manual hosting acens

Gestión de discos duros en Linux

Módulos: Módulo 1. El núcleo de Linux - 5 Horas

Tutorial: Primeros Pasos con Subversion

Actividad 1: Utilización cliente FTP (mediante línea de comandos, entornos gráficos y navegadores/exploradores) (I).

ANÁLISIS DE HERRAMIENTAS PARA CLONAR DISCOS DUROS

Manual de usuario de IBAI BackupRemoto

Sistema NFS para compartir archivos.

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Creación y administración de grupos de dominio

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

Familia de Windows Server 2003

SISTEMAS OPERATIVOS EN RED. UT. 05 Utilidades de administración. ÍNDICE

Practica Extra: Creación de BACKUP+CRONTAB+NFS

COPIAS DE SEGURIDAD CON COBIAN BACKUP INSTALACIÓN Y CONFIGURACIÓN

Existen tres configuraciones fundamentales para poder configurar correctamente nuestro servicio de NFS como servidor, estas son:

Autenticación Centralizada

Guía de uso del Cloud Datacenter de acens

Componentes de Integración entre Plataformas Información Detallada

Práctica Inicial LDAP

WINDOWS : TERMINAL SERVER

PRÁCTICA 1-2: INSTALACIÓN Y ADMINISTRACIÓN DE UN SERVIDOR DNS (PRIMARIO Y ZONA DE RESOLUCIÓN DIRECTA E INVERSA EN WINDOWS 2008 SERVER)

MF0952_2: Publicación de páginas web

Acronis License Server. Guía del usuario

DOCENTES FORMADORES UGEL 03 PRIMARIA

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Ubuntu Server HOW TO : SQUID. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar servidor proxi Squid.

Instituto Tecnológico de Las Américas (ITLA)

Explotación de Sistemas Informáticos IES Murgi PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Servidores corporativos Linux

Configuracion Escritorio Remoto Windows 2003

Software de Comunicaciones. Práctica 7 - Secure Shell. SSH

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Instantáneas o Shadow Copy

UNIDAD DIDACTICA 13 INICIAR SESIÓN EN LINUX DE FORMA REMOTA

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

GUIA DE LABORATORIO # Nombre de la Practica: Antivirus Laboratorio de Redes Tiempo Estimado: 2 Horas y 30 Minutos

Detalle de equipamiento. Laboratorio de Ingeniería Informática

Sistema operativo Discos duros Usuarios

Presentación. Nombre. Marcos Rodríguez Javier. Matricula Materia. Sistemas Operativos III. Tema. Samba4 Domain Controller.

Curso 2º SMR Módulo: SOR Sesión 6 SAMBA: Creando usuarios y grupos en Zentyal

Oficina Online. Manual del administrador

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Iptables, herramienta para controlar el tráfico de un servidor

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

Firewall Firestarter. Establece perímetros confiables.

Acronis Backup & Recovery 11 Guía de inicio rápido

Guía Rápida de Puesta en Marcha de MailStore

Manual de instalación Actualizador masivo de Stocks y Precios

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Roles y Características

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Ajustes del Curso en egela (Moodle 2.5)

Qué ventajas presenta Google Drive para catedráticos y alumnos?

Internet Information Server

Servidor Web Apache Knoppix Linux.-

Redes de Área Local: Configuración de una VPN en Windows XP

Introducción a las redes de computadores

Creación y administración de grupos locales

Instalación y Configuración de un Servidor FTP

Ejecución del programa de instalación de Windows XP

Conceptos Generales en Joomla

MANUAL DE CREACIÓN DE CARPETAS PARA ACCESO POR FTP DE CLIENTES EN UN NAS

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

PRACTICAS DE SERVICIOS DE RED E INTERNET

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

PRACTICA 9 SERVIDOR WEB APACHE SERVIDOR WEB APACHE. JEAN CARLOS FAMILIA Página 1

4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP

PEDRO REVERTE GÓMEZ SERVICIOS DE RED E INTERNET / IMPLANTACIÓN DE APLICACIONES WEB 2º ASIR

Transcripción:

Servicio de Directorio LDAP Autor: Jose Antonio Moyano Acosta Curso: 2012/2013 Tutor: Jesús García Pérez Módulo: Administración de Sistemas Informáticos en Red

Índice 1. Introducción...3 1.1. Planteamiento...4 1.2. Estructura de Servicio de Directorio...5 1.3. Qué es LDAP?...6 1.4. Qué es NFS?...7 1.5. Qué es PAM?...8 2. Requerimientos...9 2.1. Tecnologías Implementadas...9 3. Instalación OpenLDAP...10 3.1. Instalación Servidor LDAP...10 3.2. Instalación Cliente LDAP...20 4. Proceso de copia de Seguridad...24 5. Entorno Gráfico LDAP...25 5.1. Características:...25 5.2. Instalación...26 6. Cuotas...28 6.1. Instalación cuotas...29 7. Mejoras...30 8. Problemas encontrados...30 9. Conclusión...31 10. Bibliografía...32 Pág 2 de 32

1 Introducción En este proyecto se va a realizar una centralización de cuentas de usuarios con perfiles móviles utilizando el servicio de directorio LDAP para el aula de informática. De esta manera, cualquier usuario se podrá conectar desde cualquier equipo y siempre tendrá sus datos en el perfil, los cuales se cargarán automáticamente. El propósito principal de este proyecto es llegar a centralizar todos los datos del aula de informática en un solo equipo, haciendo más rápido el servicio y permitiendo la integración de estos. Un servicio de directorio (SD) es una aplicación o un conjunto de aplicaciones que almacena y organiza la información de los usuarios de una red de computadores, permitiendo a los administradores gestionar el acceso de usuarios a los recursos sobre dicha red. Además, los servicios de directorio actúan como una capa de abstracción entre los usuarios y los recursos compartidos. Objetivos del proyecto: Almacenar los perfiles de usuarios en el servidor y así, evitar posibles pérdidas de información. Permitir que el usuario pueda loguearse en cualquier equipo y se le cargue su configuración. Que los alumnos solo tengan que acordarse de su nombre de usuario y contraseña para conectarse a cualquier equipo. Centralizar todas las cuentas de usuarios bajo un servidor. Pág 3 de 32

1.1 Planteamiento Cada usuario se podrá conectar desde cualquier cliente con un nombre de usuario generado, y la primera vez, la clave será la misma que el nombre de su usuario. Posteriormente el usuario podrá cambiar su clave. El servidor contendrá todos los usuarios de LDAP en la ruta /home/ldap/*. Este directorio se montará a través del servicio NFS en la ruta del cliente /home/ldap, ésto se ha de configurar en el fichero /etc/fstab del cliente, para cada vez que se inicie se monte automáticamente. Crearemos un script, al cual se le pasará como primer parámetro el fichero entregado por el profesor del Séneca, con los nombre de los usuarios (alumnos y profesores) y generará automáticamente los usuarios de LDAP y sus correspondientes carpetas personales y permisos. Se tendrá dos carpetas compartidas por NFS. Una pública y otra privada. Pública el alumno podrá leer y escribir. Privada el profesor podrá leer y escribir, y el alumno tendrá el acceso prohibido a este directorio. Debemos configurar cuotas. El alumno tendrá un determinado espacio como máximo. A diferencia de los profesores, éstos tendrán mayor espacio. El servidor, que será un sistema UNIX, en este caso, Debian 7.0, deberá tener una dirección IP fija, los clientes que serán Ubuntu 10.04 y estarán configurados por DHCP. Pág 4 de 32

1.2 Estructura de Servicio de Directorio Ésta será la estructura que se implementará en la base de datos de LDAP a través del fichero base.ldif. Aula.iesjacaranda.com es el directorio base, el nivel superior de LDAP. Posteriormente, se tendrá dos unidades organizativas, Grupos y Usuarios. Dentro de Grupos, el grupo de profesores y de alumnos. Dentro de Usuarios, los usuarios de la base de datos LDAP. Cada usuario, tendrá un atributo que corresponderá con el identificador del grupo al que pertenece. Pág 5 de 32

1.3 Qué es LDAP? Las siglas corresponden a Lightweight Directory Access Protocol, es decir, Protocolo Ligero en Acceso a Directorios que hace referencia a un protocolo a nivel de aplicación. Permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP se considera como una base de datos a la que pueden realizarse consultas. LDAP por su parte soporta autenticación con la librería SASL y el protocolo SSL ( Secure Socket Layer ) en su versión LDAPv3 de modo que se garantiza la seguridad del tràfico de red. Un directorio es un conjunto de objetos con atributos organizados en una manera lógica y jerárquica. Para aclararnos, no es más ni menos que una base de datos con unas peculiaridades que la hacen un tanto especial. Está optimizado para realizar lecturas, navegaciones y grandes búsquedas sobre él. La información está organizada de modo jerárquico y contiene objetos de una clase determinada con distintos atributos que son los que realmente contienen la información. Los directorios incorporan sistemas de filtrado muy completos que nos ayudarán a desarrollar búsquedas determinadas en distintas zonas del árbol y de manera bastante completa. Por último, LDAP se puede implementar en muchos servicios y aplicaciones, como por ejemplo el sistema de autenticación para gestores de contenidos como Joomla, Active Directory Server para gestionar todas las cuentas de acceso a una red coorporativa y mantener centralizada la gestión de acceso a los recursos. Ventajas LDAP: Es muy rápido en lecturas y escrituras. Permite replicar el servidor de forma muy sencilla y económica. Dispone de un modelo de nombres globales que asegura que todas las entradas son únicas. Usa un sistema de información. Permite múltiples directorios independientes. Funciona sobre TCP/SSL. La mayoría de aplicaciones disponen de soporte para LDAP. Desventajas LDAP: Protocolo de manejo de datos poco intuitivo, pero existen múltiples herramientas que facilitan su uso. Pág 6 de 32

1.4 Qué es NFS? NFS es el sistema que utiliza Linux para compartir carpetas en una red. Mediante NFS, un servidor puede compartir sus carpetas en la red. Desde los PCs de los usuarios se puede acceder a dichas carpetas compartidas y el resultado es el mismo que si estuvieran en su propio disco duro. NFS son las siglas en inglés de Network File System que se pueden traducir como Sistema de Archivos en Red. Básicamente NFS permite, a PCs que utilizan Linux, compartir y conectarse a carpetas compartidas entre sí. Es el sistema nativo que utiliza Linux para compartir y acceder a carpetas compartidas en la red. El sistema NFS está dividido en dos partes, cliente y servidor. La parte del cliente accede remotamente a los datos que se encuentran en el servidor. Los equipos, utilizan menos espacio debido a que los datos están centralizados en el servidor. También podremos compartir dispositivos de almacenamiento como CD-ROM, usb etc... Ventajas NFS: Los datos accedidos por todo tipo de usuarios pueden mantenerse en un nodo central, con clientes que montan los directorios en el momento de arrancar. Los datos que consumen grandes cantidades de espacio de disco pueden mantenerse en un nodo. Los datos de administración pueden también mantenerse en un solo nodo. Ya no será necesario usar rcp para instalar el mismo fichero en 20 máquinas distintas. Pág 7 de 32

1.5 Qué es PAM? PAM (Pluggable Authentication Modules),ofrece una capa intermedia entre el usuario y la aplicación en el momento de la autenticación. La capa intermedia está basada en un sistema modular para ofrecer diferentes funcionalidades. PAM es básicamente un mecanismo flexible para la autenticación de usuarios en sistemas UNIX. Posiblemente la idea principal del mecanismo es aportar flexibilidad en las tareas de autenticación. PAM no es una aplicación o protocolo, sino una colección de bibliotecas que se pueden utilizar en aplicaciones compiladas. Es decir PAM ofrece la funcionalidad de enlazar bibliotecas dinámicas a las aplicaciones para dotarlas de mecanismos de autenticación y políticas de seguridad de una manera fácil, robusta y flexible. Para poder entender el funcionamiento de PAM tenemos que recordar que una librería dinámica no se copia en nuestro programa al compilarlo. Su funcionamiento es el siguiente; en el momento de ejecución del ejecutable cada vez que el código necesite algo de librería irá a buscarla. Históricamente los sistemas UNIX ofrecen autenticación basada en un password. El usuario escribe un password que es validado contra el fichero /etc/shadow, sin embargo actualmente existen diferentes métodos de autenticación para integrar en un sistema UNIX o en aplicaciones donde es necesario autenticar al usuario. Estos problemas se pueden solucionar de una manera elegante y segura mediante directrices PAM. PAM utiliza una arquitectura conectable y modular, que otorga al administrador del sistema de una gran flexibilidad en establecer las políticas de autenticación para el sistema. En la mayoría de los casos, el archivo de configuración por defecto PAM, para una aplicación tipo PAM, es suficiente. Sin embargo, algunas veces es necesario modificar el archivo de configuración. Debido a que un error en la configuración de PAM puede comprometer la seguridad del sistema, es importante que comprenda la estructura de estos archivos antes de hacer cualquier modificación. Ventajas PAM: Proporciona un esquema de autenticación común que se puede usar con una gran variedad de aplicaciones. Permite gran flexibilidad y control de la autenticación tanto para los administradores del sistema como para los desarrolladores de la aplicación. Permite a los desarrolladores de aplicaciónes desarrollar programas sin tener que crear sus propios esquemas de autenticación. Pág 8 de 32

2 Requerimientos Ahora se analizarán los requerimientos que yo he necesitado para la implementación del servicio LDAP en Debian, con la autenticación de clientes en Ubuntu. Este proyecto ha sido diseñado virtualmente por Vmware, para el ahorro de hardware. Uno de los principales requisitos es que el servidor tenga la configuración de red estática y que el usuario que ejecutará los script sea root. Servidor Cliente S.O Debian 7.0 Ubuntu 10.04 Memoria Física 256 MB 512 MB Espacio en disco 10 GB 20 GB 2.1 Tecnologías Implementadas Servicio de Directorio LDAP. NFS (Sistema de archivos en Red). PAM. SSH. Shell Script. Entorno Gráfico LDAP. Pág 9 de 32

3 Instalación OpenLDAP 3.1 Instalación Servidor LDAP La instalación del servidor, constará de 3 ficheros. 1. Script-servidor este script se encarga de la instalación de todos los paquetes LDAP y NFS necesarios y de sus correspondientes configuraciones. Lo único que habría que cambiar manualmente de este script, sería la variable $red. Indicará la dirección de red seguida de la máscara. Ejemplo 192.168.1.0/255.255.255.0. 2. Añadir.sh este se encarga de añadir los usuarios a la base de datos LDAP y crea sus correspondientes directorios home de cada usuario. Se le pasará como primer parámetro el fichero.txt y como segundo parámetro opcional -p. Tendrá el parámetro -h para la ayuda de la ejecución del script. Bash añadir.sh fichero.txt ( si queremos añadir alumnos ). Bash añadir.sh fichero.txt -p ( si queremos añadir profesores ). Bash añadir.sh -h ( ayuda ). 3. Fichero.txt éste será el fichero que contendrá los nombres de los usuarios a añadir en la base de datos de LDAP. Dará error si hay alguna tilde en el fichero. Su formato debe de ser: Apellido1 Apellido2, Nombre Calificación Script-servidor #!/bin/bash #Guarda la dirección ip myip=`ifconfig eth0 grep inet cut -f2 -d: cut -f1 -d" "` #Guarda el nombre del equipo nequipo=`hostname` #Guarda la dirección de red y la máscara de red. red="192.168.1.0/255.255.255.0" #Creamos el /etc/hosts para ahorrarnos proceso de instalación de LDAP Pág 10 de 32

echo "127.0.0.1 localhost 127.0.1.1 $nequipo.aula.iesjacaranda.com $nequipo ::1 ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters" > /etc/hosts #Comprobación del fichero /etc/hosts if [ $? -eq 0 ] then echo "Creado correctamente fichero hosts." else echo "No se ha creado el fichero hosts." exit fi #Instalación de paquetes aptitude update #Actualiza la lista de paquetes disponibles. aptitude install ldap-utils -y #Paquete para utilizar ldapdelete, ldapadd, ldapsearch etc.. aptitude install slapd -y # Paquete que instala el servicio LDAP aptitude install libnss-ldap -y # Paquete para la traducción de nombres. aptitude install nfs-common nfs-kernel-server -y # Paquete servidor NFS. #Creamos la estructura echo "dn: ou=usuarios,dc=aula,dc=iesjacaranda,dc=com ou: Usuarios objectclass: top objectclass: organizationalunit #Crea unidad organizativa usuarios dn: ou=grupos,dc=aula,dc=iesjacaranda,dc=com ou: Grupos objectclass: top objectclass: organizationalunit #Crea unidad organizativa grupos dn: cn=profesores,ou=grupos,dc=aula,dc=iesjacaranda,dc=com objectclass: posixgroup objectclass: top cn: profesores gidnumber: 2000 dn: cn=alumnos,ou=grupos,dc=aula,dc=iesjacaranda,dc=com objectclass: posixgroup objectclass: top cn: alumnos gidnumber: 3000" > base.ldif #Crea grupo profesores #Crea grupo alumnos Pág 11 de 32

#Comprobación base.ldif creado if [ $? -eq 0 ] then echo "Creado correctamente base.ldif." else echo "No se ha creado base.ldif." exit fi #Añadimos el base.ldif ldapadd -x -D cn=admin,dc=aula,dc=iesjacaranda,dc=com -W -f base.ldif #Comprobación directorio /home/ldap if [ -d /home/ldap ] then echo "La carpeta ldap ya existe." else mkdir -m 777 /home/ldap fi #Modificación fichero ldap.conf cp /etc/ldap/ldap.conf /etc/ldap/temp.txt echo BASE dc=aula,dc=iesjacaranda,dc=com > /etc/ldap/ldap.conf echo URI ldap://$myip >> /etc/ldap/ldap.conf echo >> /etc/ldap/ldap.conf cat /etc/ldap/temp.txt >> /etc/ldap/ldap.conf #Comprobación ldap.conf if [ $? -eq 0 ] then echo "Configurado correctamente ldap.conf." else echo "No se ha configurado correctamente ldap.conf." exit fi rm /etc/ldap/temp.txt #Modificación fichero nsswitch.conf echo "passwd: compat ldap group: compat ldap shadow: compat hosts: networks: files mdns4_minimal [NOTFOUND=return] dns mdns4 files Pág 12 de 32

protocols: services: ethers: rpc: netgroup: db files db files db files db files nis" > /etc/nsswitch.conf #Comprobación fichero nsswitich.conf if [ $? -eq 0 ] then echo "Configurado correctamente nsswitch.conf" else echo "No se ha configurado correctamente nsswitch.conf." exit fi #Creación carpetas NFS y permisos mkdir /home/privada /home/publica chmod -R 770 /home/privada chmod -R 777 /home/publica chmod +t /home/privada chmod +t /home/publica chgrp profesores /home/privada chgrp alumnos /home/publica #Añadimos los directorios que queremos montar en toda la red. echo "/home/ldap echo "/home/privada echo "/home/publica $red(rw,async,no_subtree_check)" >> /etc/exports $red(rw,async,no_subtree_check)" >> /etc/exports $red(rw,async,no_subtree_check)" >> /etc/exports #Reiniciamos el servicio NFS para que hagan efectos los cambios /etc/init.d/nfs-kernel-server restart Pág 13 de 32

Bueno, tras ver el script anterior de instalación del servidor, lo primero que pedirá será la clave del administrador de LDAP y su posterior verificación, en nuestro caso root. Ahora se pasará a indicar la dirección ip del servidor LDAP. Nombre distintivo de la base de búsquedas. Se eligirá la versión 3 de LDAP. Pág 14 de 32

Se indicará el usuario root para LDAP. Y posteriormente su clave, en nuestro caso root. Por último, el script pedirá la clave del administrador de LDAP (root), y a continuación agrega las diferentes entradas que hay en el fichero base.ldif generado en el script. Para comprobar que nos ha añadido dichas entradas, se puede usar la orden slapcat. Y para ver los directorios exportados por NFS, la orden exportfs -v. Pág 15 de 32

Añadir.sh #!/bin/bash #Muestra la ayuda. if [ $1 == "-h" ] then clear echo "************* AYUDA ***************" echo " " echo "bash añadir.sh fichero_usuarios [-p] " echo " " echo "************************************" echo " " exit fi #Comprobación del ultimo id de usuario insertado en LDAP. ultimo=`slapcat grep uidnumber cut -f2 -d":" tail -1` slapcat grep uidnumber >> /dev/null if [ $? -eq 1 ] then id=2001 else let id=ultimo+1 fi # Comprobación del usuario a añadir. if [ $# -eq 2 ] then if [ $2 == "-p" ] then gid=2000 else echo "Ayuda del comando: añadir.sh -h" exit fi elif [ $# -eq 1 ] then if [ -f $1 ] then gid=3000 else echo "El primer parámetro debe de ser un fichero." exit Pág 16 de 32

fi fi #Comprobación existencia del fichero usuario.ldif, en caso contrario, lo borramos. if [ -e "usuario.ldif" ] then rm "usuario.ldif" fi #Se guarda en la variable grupo todo lo que hay en fichero.txt y separado por : grupo=`cat $1 tr " " ":"` #Bucle que recorre $grupo, el fichero.txt for i in $grupo do apellido1=`echo $i cut -f1 -d ":"` apellido2=`echo $i cut -f2 -d ":" tr -d ","` num=`seq 1 1 60` z=1 #Bucle que crea el fichero usuario.ldif con todos los usuarios a añadir. for m in $num do #Comprobación si existe el nombre de usuario nombre=`echo $i cut -f3 -d ":" cut -c1-$m` usu=$nombre$apellido1 if [! -d /home/ldap/$usu ] then #Creación de los home #Asignación de permisos mkdir /home/ldap/$usu cp /etc/skel/.* /home/ldap/$usu chmod -R 700 /home/ldap/$usu chown -R $id:$gid /home/ldap/$usu #Creación del fichero usuario.ldif usuario.ldif echo dn: uid=$usu,ou=usuarios,dc=aula,dc=iesjacaranda,dc=com >> echo uid: $usu >> usuario.ldif echo sn: $apellido1 >> usuario.ldif Pág 17 de 32

done echo cn: $usu >> usuario.ldif echo objectclass: posixaccount >> usuario.ldif echo objectclass: inetorgperson >> usuario.ldif echo objectclass: top >> usuario.ldif echo objectclass: shadowaccount >> usuario.ldif echo userpassword: $usu >> usuario.ldif echo loginshell: /bin/bash >> usuario.ldif echo uidnumber: $id >> usuario.ldif echo gidnumber: $gid >> usuario.ldif echo homedirectory: /home/ldap/$usu >> usuario.ldif echo gecos: $usu >> usuario.ldif echo "" >> usuario.ldif break fi #Incrementación del id let id=id+1 done #Se añade el fichero generado con todos los usuarios pasado. ldapadd -x -D "cn=admin,dc=aula,dc=iesjacaranda,dc=com" -W -f usuario.ldif #Eliminación edl fichero usuario.ldif para no dejar basura rm usuario.ldif Se añaden profesores. Pág 18 de 32

Se añaden alumnos. Para comprobar que todo fue correctamente, se hace un ls -l sobre nuestro directorio LDAP para ver que hizo efecto la traducción de nombres. Barea Asencio, Julio Membrive Gallego, Miguel Angel Moyano Acosta, José Antonio APRO Navarro Marchena, Antonio Pozo Fernandez, Adrián del APRO Redondo Rumi, Alvaro Roldán Durán, Juan Manuel APRO Ubril Velazquez, Manuel Jesus Vargas Rodriguez, David Victor L opez, Elias David Weinberger Null, Paul Arthur Fichero.txt Pág 19 de 32

3.2 Instalación Cliente LDAP Script-cliente #!/bin/bash #Pide la dirección ip del servidor. read -p "Indica la dirección ip del servidor: " ip #Instalación de paquetes apt-get install aptitude #Instalación del paquete aptitude. aptitude update #Actualiza la lista de paquetes disponibles. aptitude install libnss-ldap nscd -y #Instala cliente LDAP aptitude install nfs-common -y #Instala paquete NFS #Necesario para el inicio de sesión de los usuarios, sino me da error. chmod 1777 /tmp/* #Configuración del cliente auth-client-config -t nss -p lac_ldap pam-auth-update #Creación de las carpetas compartidas por NFS mkdir /home/privada mkdir /home/publica #Comprobación de error de directorio. if [ -d /home/ldap ] then echo "La carpeta ldap ya existe." else mkdir /home/ldap chmod 777 /home/ldap fi #Añadimos las carpetas que se quieren montar al iniciar el sistema automáticamente en /etc/fstab. echo "$ip:/home/ldap /home/ldap nfs rw,hard,intr,rsize=8192,wsize=8192 0 0">>/etc/fstab echo "$ip:/home/privada /home/privada nfs rw,hard,intr,rsize=8192,wsize=8192 0 Pág 20 de 32

0">>/etc/fstab echo "$ip:/home/publica /home/publica nfs rw,hard,intr,rsize=8192,wsize=8192 0 0">>/etc/fstab mount -a # Éste fichero es necesario crearlo, para que cuando el usuario inicie sesión por primera vez, se le cree el home automáticamente. echo "Name: Activate mkhomedir Default: yes Priority: 900 Session-Type: Additional Session: required pam_mkhomedir.so umask=0022 skel=/etc/skel">>/usr/share/pamconfigs/my_mkhomedir #Para generar los ficheros de configuración de PAM, es necesario, ejecutar: pam-auth-update Tras ejecutar el script, lo primero que se indica, es la dirección ip del servidor donde se encuentra ubicado la base de datos LDAP. Después pedirá la base de nuestro servidor LDAP. Pág 21 de 32

Versión de LDAP. Ruta del administrador LDAP. Finalizando, pide la contraseña del administrador, como dijimos en este caso, es root. Se pasa a configurar PAM y es necesario habilitar los 4 perfiles que vienen por defecto Pág 22 de 32

Después, como veis, salta una imagen parecida a la anterior pero con una opción mas Activate mkhomedir que es la encargada de crear los usuarios, una vez inicien sesión por primera vez. Por último, reinicia e inicia sesión con uno de los usuarios que tenemos en la base de datos LDAP. Gracias a la instalación de estos paquetes: libnss-ldap nscdb, se ahorra la edición de muchos ficheros de configuración. Pág 23 de 32

4 Proceso de copia de Seguridad Si se trabaja con un servidor LDAP, es bueno hacer copia de seguridad de la base de datos de LDAP de vez en cuando, con el fin de recuperar el servicio lo antes posible si hubiera cualquier problema. Hacer una copia de seguridad de la base de datos LDAP es tan sencillo como seguir los siguientes pasos: /etc/init.d/slapd stop se para el servicio LDAP. slapcat > backup.ldif se lanza la orden slapcat y redirige la salida del mismo a un archivo backup.ldif. /etc/init.d/slapd start se vuelve a iniciar el servicio LDAP. Ahora el próximo procedimiento sería restaurar la copia: /etc/init.d/slapd stop se para el servicio LDAP. Slapadd -l backup-ldap.ldif añade el backup.ldif. Slapindex -vf /etc/ldap/slapd.conf vuelve a poner en un índice la base de datos basada en el contenido de la base de dato actual. /etc/init.d/slapd start se vuelve a iniciar el servicio LDAP. Como se puede ver, restauramos los datos con slapadd y, una vez restaurados, se reindexa la base de datos mediante slapindex. Pág 24 de 32

5 Entorno Gráfico LDAP PhpLDAPadmin también conocido como PLA, es una herramienta para la administración de servidores LDAP escrito en PHP, basado en interfaz Web. Trabaja en varias plataformas, pudiendo acceder al servidor LDAP desde cualquier lugar en Internet usando un navegador Web. Se encuentra disponible bajo licencia GPL Posee una vista jerárquica basada en árbol en donde se puede navegar por toda la estructura de directorio. Permite ver los esquemas LDAP, realizar búsquedas, crear, borrar, copiar y editar entradas LDAP, incluso copiar entradas entre servidores LDAP. 5.1 Características: Árbol jerárquico de navegación LDAP. Edición de entradas basadas en Plantillas. Copia entradas LDAP (incluso entre servidores distintos). Copia recursivamente un árbol entero. Borra entradas LDAP. Borra recursivamente un árbol. Ver y editar atributos de imágenes. Navegador avanzado de esquema LDAP. Búsquedas LDAP (simple y avanzada). Exporta LDIF y DSML. Importa LDIF. Renombra entradas LDAP. Administración de hash de password (sha, crypt, md5, blowfish, md5crypt). Automáticamente determina el DN root server. Traducción de atributos en una forma más amigables (p.e muestra "Fax" en vez de "facsimiletelephonenumber"). Soporta atributos Binarios. Automáticamente incrementa los números de UID. Disponible en 10 idiomas. Pág 25 de 32

5.2 Instalación La instalación del entorno gráfica es fácil y rápida, basta con la instalación del paquete phpldapadmin. Tras la instalación, desde algún cliente y en la barra de navegación, indicamos ip_servidor/phpldapadmin: En la columna izquierda, pulsamos sobre Conectar. Pág 26 de 32

Posteriormente, tras autenticarnos, en la columna izquierda nos aparece nuestro árbol jerárquico: A través de este panel, se pueden realizar todas las opciones necesarias, borrar, añadir,modificar usuarios, crear esquema, unidades organizativas etc... Aquí se muestra como un ejemplo, la pantalla de los dos grupos de la unidad organizativa Grupos. Pág 27 de 32

6 Cuotas El servicio de cuotas de disco es el mecanismo que tiene Linux para poder limitar el almacenamiento a los usuarios del sistema. Una forma de proteger un equipo servidor es limitar la capacidad de almacenamiento de cada usuario. Este servicio se usa con ciertos servidores que limitan el almacenamiento como por ejemplo los servidores de correo o los servidores web. Si un usuario no tuviera límite de almacenamiento podría llegar a llenar toda una partición e impedir el trabajo de otros usuarios o del mismo sistema.. Básicamente son un mecanismo de seguridad que impide que se pueda llenar un sistema de ficheros y poner en peligro el correcto funcionamiento del sistema. Las cuotas de almacenamiento permiten limitar tanto el número de bytes almacenados en disco como el número de ficheros o mejor dicho i-nodos. Las cuotas se asignan por particiones de disco que tengan un sistema de ficheros adecuado, por ejemplo ext2 o ext3. Una partición vfat no admite cuotas. Cada partición puede tener su propia limitación de almacenamiento completamente independiente de las características de otras particiones. Donde aplicar las cuotas Para configurar las cuotas en un sistema hay que considerar dónde pueden escribir los usuarios y qué volumen de información pueden escribir. En un sistema con una distribución estándar de directorios, las escrituras se realizan: En /home, la información que puedan trasferir por ftp. También depende de a qué servicios está destinado el sistema. En /var el buzón de correo y si se almacenan allí las bases de datos que sean de su propiedad u otros datos. En /tmp en caso de que el usuario lance procesos que necesiten ficheros temporales. Entonces, si hemos hecho una división de particiones adecuada, tendremos que ver cuales son las necesidades de los usuarios y cual es el total de espacio disponible. En función de esto podremos establecer las cuotas. A quien aplicar las cuotas Las cuotas se pueden activar para usurios o para grupos. Si las cuotas se asigna a un usuario se aplican a todos aquellos ficheros o directorios que tengan asignado su UID como propietario, tanto para i-nodos como para tamaño en bytes. Cuando las cuotas se aplican al grupo el mecanismo es el mismo, se aplican a todos aquellos ficheros o directorios que tengan el GID de dicho grupo. En el caso del grupo tenemos que tener en cuenta que se aplican al total del grupo, de forma que un solo usuario de ese grupo podría llegar a consumir todos los recursos. Pág 28 de 32

6.1 Instalación cuotas Las cuotas se aplican por partición y el requisito es que tenga un sistema de ficheros ext (sea el 3 o el 4). Pero eso no tiene nada que ver con NFS, si tu aplicas las cuotas a la partición donde tienes las carpetas que compartes mediante NFS, eso se aplica de todas formas. Los pasos para aplicar las cuotas son los siguientes: Se añade la opción usrquota o grpquota según quieras aplicar las cuotas a usuarios o a grupos. Hay que tener en cuenta que esto solo se aplica a una partición entera, por lo que se le podrá aplicar sólo al home en el caso en que este se monte en una partición diferente, en caso contrario, se tendrá que aplicar a la partición raíz. Instalar los paquetes quota y quotatool. Si se hace en este orden, es decir, primero modificas el fstab y luego instalas los paquetes, se ahorra los siguientes pasos (salvo el siguiente) ya que los realiza de forma automática. Se remonta la partición a la que se ha aplicado las quotas. Por ejemplo, mount -o remount / ó mount -o remount /home. Se crea el fichero de control de quotas: quotacheck -nm / ó quotacheck -nm /home (según la partición a la que queramos aplicar). Activación de cuotas: quotaon -a Ahora ya se establece las cuotas para cualquier usuario: edquota username (donde username es el nombre del usuario al que le quieres poner las cuotas). Pág 29 de 32

7 Mejoras Cuotas. Autenticación segura mediante SSL/TSL Buscar la manera de omitir las tildes en fichero.txt. 8 Problemas encontrados A lo largo de la realización de éste proyecto, la verdad no se han encontrado muchos problemas. Un problema bastante interesante, ha sido la asignación de permisos para las carpetas públicas y privadas. La carpeta pública tiene 777 y no sabía la manera de asignar tales permisos que los ficheros creados por el usuario, no fueran modificados ni eliminados por cualquier otro usuario. Para este problema, se encuentra el Sticky bit, que es un permiso de acceso que puede ser asignado a ficheros y directorios. Cuando se le asigna a un directorio, significa que los elementos que hay en ese directorio solo pueden ser renombrados o borrados por el propietario del elemento. Chmod +t /directorio. Y otro problema, ha sido la instalación y configuración de cuotas. Se ha emprendido muchas horas en este tema, pero no se ha llegado a terminar de instalar y configurar correctamente. Pág 30 de 32

9 Conclusión Tras el tiempo dedicado a este proyecto, debo decir que es un proyecto bastante interesante, ya que LDAP, es un servicio que cada día se utiliza más y es muy útil para muchas aplicaciones. Por una parte, me ha parecido flexible, ya que gran parte del servicio lo hemos dado durante el curso, pero por la otra parte, hay varias cosas que son nuevas para mi como la parte de las cuotas de usuarios, el proceso de copia de seguridad y algunos comandos de shell script. En conclusión, me ha parecido un proyecto aplicable a cualquier administración de usuarios, asequible y barato, siempre que lo realices con Linux. Pág 31 de 32

10 Bibliografía http://www.iesjacaranda-brenes.org/aulavirtual/course/view.php?id=12 http://ldapman.org/articles/sp_intro.html http://www.ac.usc.es/docencia/asr/tema_4html/node16.html http://www.linuxtotal.com.mx/?cont=info_admon_018 http://es.wikipedia.org/wiki/ldap http://www.iesgrancapitan.org/blog04/recursos/pdc-ldap.pdf http://www.tldp.org/howto/archived/ldap-implementation-howto/pamnss.html http://www.linuxfocus.org/castellano/july2000/article159.shtml http://osl.ull.es/node/50 http://www.linuxparatodos.net/portal/staticpages/index.php?page=04-disk-quota http://debianhlg.wordpress.com/replicar-ldap-mediante-syncrepl/asignar-cuotas-de-disco-en-debian/ http://paratupagina.com/topic/729-como-editar-y-entender-el-archivo-etc-fstab/ http://www.jcatala.net/node/916 http://www.gb.nrao.edu/pubcomputing/redhatelws4/rh-docs/rhel-rg-es-4/ch-pam.html http://es.wikipedia.org/wiki/phpldapadmin http://www.slideshare.net/ocwmexico/instalarphp-lda-padmin Pág 32 de 32