2013 Práctica Inicial LDAP PRÁCTICA_1: CREACIÓN DEL ÁRBOL DE DIRECTORIO LDAP 1
CONFIGURACIÓN DEL SERVIDOR Instalar el servicio OpenLDAP: Comenzamos instalando el servidor LDAP en nuestra máquina servidora (Debian 7 en mi caso) mediante el siguiente comando: apt-get install slapd ldap-utils Introducimos la contraseña de administración y pasamos a configurar el servidor: dpkg-reconfigure slapd A continuación mostrando las pantallas 2
3
Crear para el dominio una estructura de unidades organizativas donde se puedan dar de alta los usuarios del sistema (users,groups). FASE PREVIA A LA CREACIÓN DE LA ESTRUCTURA BASE DEL Á RBOL LDAP. root@master:~# nano /etc/hosts #.añade.tu.nombre.de.host. 127.0.0.1...localhost. 192.168.1.34..topten. root@master:~#domainname topten.cum.edu. 5
root@master:~# slapcat dn: dc=cum,dc=edu objectclass: top objectclass: dcobject objectclass: organization o: cum.edu dc: cum structuralobjectclass: organization entryuuid: e9fb209a-4da3-1032-9682-21e873a93a93 creatorsname: cn=admin,dc=cum,dc=edu createtimestamp: 20130510095831Z entrycsn: 20130510095831.108994Z#000000#000#000000 modifiersname: cn=admin,dc=cum,dc=edu modifytimestamp: 20130510095831Z dn: cn=admin,dc=cum,dc=edu objectclass: simplesecurityobject objectclass: organizationalrole cn: admin description: LDAP administrator userpassword:: e1ntsef9egtuqwjybefgck5gq2hwwerqn3zmnjztzu9tdkx Fbzc= structuralobjectclass: organizationalrole entryuuid: e9fbdaa8-4da3-1032-9683-21e873a93a93 creatorsname: cn=admin,dc=cum,dc=edu createtimestamp: 20130510095831Z entrycsn: 20130510095831.113761Z#000000#000#000000 modifiersname: cn=admin,dc=cum,dc=edu modifytimestamp: 20130510095831Z [2] Añadir directorio BASE: root@master:~# nano base.ldif # creando usuarios y grupos:' dn: ou=personas,dc=cum,dc=edu objectclass: organizationalunit ou: personas dn: ou=grupos,dc=cum,dc=edu objectclass: organizationalunit ou: grupos root@master:# ldapadd -x -D cn=admin,dc=cum,dc=edu -W -f base.ldif Entra el password LDAP: adding new entry "ou=personas,dc=cum,dc=edu" adding new entry "ou=grupos,dc=cum,dc=edu " 6
root@master:~# nano ldapuser.sh # extrae los usuarios locales que tengan 4 digitos UID #!/bin/bash SUFFIX='dc=cum,dc=edu ' LDIF='ldapuser.ldif' echo -n > $LDIF for line in `grep "x:[1-9][0-9][0-9][0-9]:" /etc/passwd sed -e "s/ /%/g"` do UID1=`echo $line cut -d: -f1` NAME=`echo $line cut -d: -f5 cut -d, -f1` if [! "$NAME" ] then NAME=$UID1 else NAME=`echo $NAME sed -e "s/%/ /g"` fi SN=`echo $NAME awk '{print $2}'` if [! "$SN" ] then SN=$NAME fi GIVEN=`echo $NAME awk '{print $1}'` UID2=`echo $line cut -d: -f3` GID=`echo $line cut -d: -f4` PASS=`grep $UID1: /etc/shadow cut -d: -f2` SHELL=`echo $line cut -d: -f7` HOME=`echo $line cut -d: -f6` EXPIRE=`passwd -S $UID1 awk '{print $7}'` FLAG=`grep $UID1: /etc/shadow cut -d: -f9` if [! "$FLAG" ] then FLAG="0" fi WARN=`passwd -S $UID1 awk '{print $6}'` MIN=`passwd -S $UID1 awk '{print $4}'` MAX=`passwd -S $UID1 awk '{print $5}'` LAST=`grep $UID1: /etc/shadow cut -d: -f3` echo "dn: uid=$uid1,ou=personas,$suffix" >> $LDIF echo "objectclass: inetorgperson" >> $LDIF echo "objectclass: posixaccount" >> $LDIF echo "objectclass: shadowaccount" >> $LDIF echo "uid: $UID1" >> $LDIF echo "sn: $SN" >> $LDIF echo "givenname: $GIVEN" >> $LDIF echo "cn: $NAME" >> $LDIF echo "displayname: $NAME" >> $LDIF echo "uidnumber: $UID2" >> $LDIF echo "gidnumber: $GID" >> $LDIF echo "userpassword: {crypt}$pass" >> $LDIF echo "gecos: $NAME" >> $LDIF echo "loginshell: $SHELL" >> $LDIF echo "homedirectory: $HOME" >> $LDIF 7
echo "shadowexpire: $EXPIRE" >> $LDIF echo "shadowflag: $FLAG" >> $LDIF echo "shadowwarning: $WARN" >> $LDIF echo "shadowmin: $MIN" >> $LDIF echo "shadowmax: $MAX" >> $LDIF echo "shadowlastchange: $LAST" >> $LDIF echo >> $LDIF done root@master:~# sh ldapuser.sh root@master:~# ldapadd -x -D cn=admin,dc=cum,dc=edu -W -f ldapuser.ldif Enter LDAP Password: # admin password adding new entry "uid=wheezy,ou=personas,dc=cum,dc=edu " adding new entry "uid=debian,ou=personas,dc=cum,dc=edu " adding new entry "uid=ubuntu,ou=personas,dc=cum,dc=edu " adding new entry "uid=cent,ou=personas,dc=cum,dc=edu " adding new entry "uid=fedora,ou=personas,dc=cum,dc=edu " [4] Añadir grupos al directorio LDAP : root@master:~#nano ldapgroup.sh # extrae grupos que tengan 4-digitos UID #!/bin/bash SUFFIX='dc=cum,dc=edu ' LDIF='ldapgroup.ldif' echo -n > $LDIF for line in `grep "x:[1-9][0-9][0-9][0-9]:" /etc/group` do CN=`echo $line cut -d: -f1` GID=`echo $line cut -d: -f3` echo "dn: cn=$cn,ou=grupos,$suffix" >> $LDIF echo "objectclass: posixgroup" >> $LDIF echo "cn: $CN" >> $LDIF echo "gidnumber: $GID" >> $LDIF users=`echo $line cut -d: -f4 sed "s/,/ /g"` for user in ${users} ; do echo "memberuid: ${user}" >> $LDIF done echo >> $LDIF done 8
root@master:~# sh ldapgroup.sh root@master:~# ldapadd -x -D cn=admin,dc=cum,dc=edu -W -f ldapgroup.ldif Enter LDAP Password: # admin password adding new entry "cn=wheezy,ou=grupos,dc=cum,dc=edu " adding new entry "cn=debian,ou=grupos,dc=cum,dc=edu " adding new entry "cn=ubuntu,ou=grupos,dc=cum,dc=edu " adding new entry "cn=cent,ou=grupos,dc=cum,dc=edu " adding new entry "cn=fedora,ou=grupos,dc=cum,dc=edu " CONFIGURACIÓN DE LOS VISORES LDAP phpldapadmin/jxplorer Para instalar phpldapadmin se puede hacer con apt-get install phpldapadmin o con un fichero.deb Por defecto trae configurado como servidor example.com por lo que tendremos que poner el dominio de nuestra práctica. Para ello modificamos el archivo /etc/phpldapadmin/config.php : nano /etc/phpldapadmin/config.php Buscamos las líneas (tenemos que cambiarlo en 2) en las que se encuentre dc=example,dc=com y lo sustituimos por dc=cum,dc=edu 9
CONFIGURACIÓN DE LOS VISORES LDAP phpldapadmin/jxplorer Para instalar JXplorer se puede hacer descargando de la página oficial la última versión. Luego vamos a Descargas: # cd Descargas/ # ls -l jxplorer-3.3.02-linux-installer.run # chmod a+x jxplorer-3.3.02-linux-installer.run #./jxplorer-3.3.02-linux-installer.run # cd /opt/jxplorer/ #./jxplorer.sh 10