Servicio de Directorio LDAP

32 

Texto completo

(1)

Autor: Jose Antonio Moyano Acosta

Curso: 2012/2013

Tutor: Jesús García Pérez

(2)

Í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

(3)

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.

(4)

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.

(5)

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.

(6)

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:

(7)

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.

(8)

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.

(9)

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.

(10)

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"

(11)

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 #Crea unidad organizativa usuarios ou: Usuarios

objectclass: top

objectClass: organizationalUnit

dn: ou=Grupos,dc=aula,dc=iesjacaranda,dc=com #Crea unidad organizativa grupos ou: Grupos

objectclass: top

objectClass: organizationalUnit

dn: cn=profesores,ou=Grupos,dc=aula,dc=iesjacaranda,dc=com #Crea grupo profesores objectClass: posixGroup

objectClass: top cn: profesores gidNumber: 2000

dn: cn=alumnos,ou=Grupos,dc=aula,dc=iesjacaranda,dc=com #Crea grupo alumnos objectClass: posixGroup

objectClass: top cn: alumnos

(12)

#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: files mdns4_minimal [NOTFOUND=return] dns mdns4 networks: files

(13)

protocols: db files services: db files ethers: db files rpc: db files

netgroup: 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 $red(rw,async,no_subtree_check)" >> /etc/exports echo "/home/privada $red(rw,async,no_subtree_check)" >> /etc/exports echo "/home/publica $red(rw,async,no_subtree_check)" >> /etc/exports

#Reiniciamos el servicio NFS para que hagan efectos los cambios

(14)

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.

(15)

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”.

(16)

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

(17)

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

nombre=`echo $i | cut -f3 -d ":" | cut -c1-$m` usu=$nombre$apellido1

#Comprobación si existe el nombre de usuario

if [ ! -d /home/ldap/$usu ] then

#Creación de los home

mkdir /home/ldap/$usu cp /etc/skel/.* /home/ldap/$usu

#Asignación de permisos

chmod -R 700 /home/ldap/$usu chown -R $id:$gid /home/ldap/$usu

#Creación del fichero usuario.ldif

echo dn: uid=$usu,ou=Usuarios,dc=aula,dc=iesjacaranda,dc=com >> usuario.ldif

(18)

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 done #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

(19)

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.

Fichero.txt

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 |

(20)

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

(21)

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/pam-configs/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.

(22)

Versión de LDAP.

Ruta del administrador LDAP.

Finalizando, pide la contraseña del administrador, como dijimos en este caso, es “root”.

(23)

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.

(24)

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.

(25)

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.

(26)

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:

(27)

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...

(28)

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.

(29)

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:

(30)

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.

(31)

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.

(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

Figure

Actualización...

Related subjects :