Este tema en lo particular se me hace bien facil explicarlo, pero se que es crucial en el examen. Digo esto, ya que es un tema que se divide en dos partes. La primera parte es la configuracion de su servidor para que los usuarios existentes en el servidor ldap puedan autenticarse localmente usando sus credenciales pertinentes. A su vez, tambien hay que configurar el directorio personal de cada usuario para que cuando estos inicien sesion se monte automaticamente. Este ultimo paso es mas conocido como “autofs” en general.
Ya sabiendo esto mas a proceder con los datos que vamos a necesitar para este ejercicio. Estos datos se los deben proporcionar cuando usted se presente al examen. Los datos a continuacion pueden variar o ser diferentes de acuerdo a como usted tenga su laboratorio de practicas creado.
Servidor LDAP: labipa.example.com Direccion IP del servidor LDAP: 192.168.4.200 La base DN de autenticacion del servidor LDAP es: dc=example, dc=com Certificado CA: ftp://labipa.example.com/pub/ca.crt Utilizar conneccion segura: si (TLS) Usuario LDAP: ldapuser{1..5} Clave de usuarios LDAP: password Directorio personal de usuarios ldap: labipa.example.com:/home/ldap/ldapuser{1..5}
Coniciendo ya estos datos, es de entender que usted ya ha configurado su red y los repositorios previamente, ya que de lo contrario no sera posible completar este ejercicio.
Para comenzar debemos de instalar los paquetes necesarios en el servidor que se va a unir al servidor LDAP.
[root@class2 ~]# yum install -y sssd authconfig-gtk Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Resolving Dependencies --> Running transaction check ---> Package authconfig-gtk.x86_64 0:6.2.8-14.el7 will be installed ---> Package sssd.x86_64 0:1.14.0-43.el7 will be installed ... ... Installed: authconfig-gtk.x86_64 0:6.2.8-14.el7 sssd.x86_64 0:1.14.0-43.el7 Dependency Installed: c-ares.x86_64 0:1.10.0-3.el7 cyrus-sasl-gssapi.x86_64 0:2.1.26-20.el7_2 libdhash.x86_64 0:0.4.3-27.el7 libipa_hbac.x86_64 0:1.14.0-43.el7 libsss_autofs.x86_64 0:1.14.0-43.el7 libsss_sudo.x86_64 0:1.14.0-43.el7 python-sssdconfig.noarch 0:1.14.0-43.el7 sssd-ad.x86_64 0:1.14.0-43.el7 sssd-common.x86_64 0:1.14.0-43.el7 sssd-common-pac.x86_64 0:1.14.0-43.el7 sssd-ipa.x86_64 0:1.14.0-43.el7 sssd-krb5.x86_64 0:1.14.0-43.el7 sssd-krb5-common.x86_64 0:1.14.0-43.el7 sssd-ldap.x86_64 0:1.14.0-43.el7 sssd-proxy.x86_64 0:1.14.0-43.el7 Complete! [root@class2 ~]#
Ya habiendo instalado los paquetes necesarios, procedemos a la configuracion con el paquete “authconfig-gtk”
Es valido aclarar que esta configuracion la puede realizar tambien via cli, o authconfig-tiu ; pero para que hacer las cosas mas dificiles cuando tienes la posibilidad de realizar esto de una forma segura y sin margen de error. Y como siempre les comentos a mis estudiantes, hay que ahorar tiempo en el examen y hacer las cosas de la forma mas facil que sea posible. Ya que lo importante es el resultado.
Entonces ejecutamos el comando “authconfig-gtk”
A partir de aqui, es solo completar los campos con la informacion previamente proporcionada:
User Account Database: LDAP LDAP Search Base DN: dc=example,dc=com LDAP Server: labipa.example.com Use TLS to encript cconnections: YES Download CA Certificate: ftp://labipa.example.com/pub/ca.crt Authentication Method: LDAP password
Para el certificado CA, yo recominedo ejecutar en un terminal los siguiente:
[root@class2 ~]# curl ftp://labipa.example.com/pub/ca.crt -----BEGIN CERTIFICATE----- MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQsFADA2MRQwEgYDVQQKDAtFWEFN UExFLkNPTTEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTE2MDQx NzA5NDI0MVoXDTM2MDQxNzA5NDI0MVowNjEUMBIGA1UECgwLRVhBTVBMRS5DT00x .....
De esta forma sabemos que el certificado es alcanzable por nuestro servidor, y tambien nos evitamos cometer un error.
Una vez realizado estos cambios, en el menu de “Opciones Avanzadas”, nosotros no vamos a marcar “Create home directories on the first login”
Porque no vamos hacer esto. Ya que el directorio personal va a ser montado con “autofs”. Entonces ahora presionamos “Apply” y esperamos que todo los cambios queden gusrdados y se cierre la ventana.
Entonces ahora solo nos queda reiniciar el servicio “sssd” , y verificar:
[root@class2 ~]# systemctl restart sssd [root@class2 ~]# systemctl is-enabled sssd enabled [root@class2 ~]# [root@class2 ~]# getent passwd ldapuser1 ldapuser1:*:699000001:699000001:ldapuser1 ldapuser1:/home/ldap/ldapuser1:/bin/sh [root@class2 ~]# getent passwd ldapuser2 ldapuser2:*:699000003:699000003:ldapuser2 ldapuser2:/home/ldap/ldapuser2:/bin/sh [root@class2 ~]#
Como ven, todo esta perfecto, ahora vamos a iniciar sesion como “ldapuser1”
[root@class2 ~]# ssh ldapuser1@localhost The authenticity of host 'localhost (::1)' can't be established. ECDSA key fingerprint is 65:16:d2:b6:f3:83:2f:70:75:b8:01:78:73:e2:71:16. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. ldapuser1@localhost's password: Could not chdir to home directory /home/ldap/ldapuser1: No such file or directory -sh-4.2$ pwd / -sh-4.2$ exit logout Connection to localhost closed. [root@class2 ~]#
Como ven, nos pudimos conectar, pero aun tenemos un error, y es que el directorio personal del usuario no fue encontrado.
Esto lo vamos a solucionar con la segunda parte de este ejercicio, que es “configurar autofs”.
Entonces lo que debemos hacer es intalar los paquetes necesarios:
[root@class2 ~]# yum -y install autofs Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Resolving Dependencies --> Running transaction check ---> Package autofs.x86_64 1:5.0.7-56.el7 will be installed --> Processing Dependency: libhesiod.so.0()(64bit) for package: 1:autofs-5.0.7-56.el7.x86_64 --> Running transaction check ... ... Installed: autofs.x86_64 1:5.0.7-56.el7 Dependency Installed: hesiod.x86_64 0:3.2.1-3.el7 Complete! [root@class2 ~]#
Una vez instalado “autofs” es muy importante habilitar el servicio para que inicie con cada reinicio del servidor, este paso yo lo recomiendo cada vez que instalamos un servicio nuevo, ya que es muy facil olvidarse de este paso.
[root@class2 ~]# systemctl enable autofs ; systemctl is-enabled autofs Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service to /usr/lib/systemd/system/autofs.service. enabled [root@class2 ~]#
Ahora bien, vamos a comenzar con la configuracion de “autofs” para que monte los directorios personales de los usuarios ldapuserX automaticamente.
Para esto vamos a crear un archivo nuevo en donde va a estar la directova que va a utilizar el servicio.
Es valido aclarar que no utilizo los archivos de configuracion del paquete instalado, ya que si se actualiza el paquete podemos correr el riesgo de perder la configuracion, es por eso que es muy recomendable crear archivos nuevos como van a ver a continuacion.
Para eso me gusta utilizar el comando “echo” para tener una vista completa de lo que estoy haciendo. Tambien recuerden la salida del comando “getent passwd ldapuser1”.
[root@class2 ~]# getent passwd ldapuser1 ldapuser1:*:699000001:699000001:ldapuser1 ldapuser1:/home/ldap/ldapuser1:/bin/sh [root@class2 ~]# [root@class2 ~]# echo "/home/ldap /etc/directorio-ldap" > /etc/auto.master.d/nuevo.autofs [root@class2 ~]# echo "ldapuser1 -rw,sync labipa.example.com:/home/ldap/ldapuser1" > /etc/directorio-ldap [root@class2 ~]#
Vamos a explicar un poco esto. Aqui vemos la salida del comando “getent” , entonces lo que estamos haciendo con el primer “echo” es decir que nos monte en /home/ldap los direcorios personales, esto es replicando lo que hay en el servidor LDAP, que a su vez esta exportando los directorios a travez del servicio “NFS”. Entonce, en el archivo “/etc/directorio-ldap”, es donde va a estar las reglas o configuracion. Y en “etc/auto.master.d/nuevo.autofs” se va a guardar. Es muy importante que este archivo termine con “.autofs”
En el segundo “echo” estamos agregando la configuracion que vamos a utilizar. Es valido aclarar que en esta primera etapa del ejercicio solo estamos montando el directorio personal del usuario “ldapuser1”.
Habiendo realizado esto, entonces procedemos a iniciar el servicio “autofs” y entonces intentamos iniciar sesion nuevamente.
[root@class2 ~]# systemctl start autofs ; systemctl status -l autofs ● autofs.service - Automounts filesystems on demand Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2017-04-25 09:01:30 PDT; 15ms ago Process: 13416 ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid (code=exited, status=0/SUCCESS) Main PID: 13418 (automount) CGroup: /system.slice/autofs.service └─13418 /usr/sbin/automount --pid-file /run/autofs.pid Apr 25 09:01:30 class2.example.com systemd[1]: Starting Automounts filesystems on demand... Apr 25 09:01:30 class2.example.com automount[13418]: setautomntent: lookup(sss): setautomntent: No such file or directory Apr 25 09:01:30 class2.example.com systemd[1]: Started Automounts filesystems on demand. [root@class2 ~]# [root@class2 ~]# ssh ldapuser1@localhost ldapuser1@localhost's password: Last login: Tue Apr 25 09:01:48 2017 from localhost -sh-4.2$ pwd /home/ldap/ldapuser1 -sh-4.2$ ls -las total 0 0 drwxr-xr-x. 4 ldapuser1 root 33 Mar 3 08:42 . 0 drwxr-xr-x. 3 root root 0 Apr 25 09:02 .. 0 drwxrwxr-x. 3 ldapuser1 ldapuser1 17 Mar 3 08:42 .cache 0 drwxrwxr-x. 3 ldapuser1 ldapuser1 17 Mar 3 08:42 .config -sh-4.2$ exit logout Connection to localhost closed. [root@class2 ~]# [root@class2 ~]# df -h | grep ldap labipa.example.com:/home/ldap/ldapuser1 11G 7.3G 3.0G 72% /home/ldap/ldapuser1 [root@class2 ~]#
Como ven ya tenemos el directorio personal montado. Ahora les voy a mostrar cual es el cambio que hay que realizar si queremos montar el directorio de cada usuario cuando inicie sesion, porque hasta el momento esto no es posible como ven.
[root@class2 ~]# ssh ldapuser2@localhost ldapuser2@localhost's password: Could not chdir to home directory /home/ldap/ldapuser2: No such file or directory -sh-4.2$ pwd / -sh-4.2$ exit logout Connection to localhost closed. [root@class2 ~]# Entonces el archivo que debemos editar es "/etc/directorio-ldap" quedando de esta forma [root@class2 ~]# cat /etc/directorio-ldap * -rw,sync labipa.example.com:/home/ldap/& [root@class2 ~]#
Despues de esto, reiniciamos el servicio “autofs” y probamos.
[root@class2 ~]# systemctl restart autofs ; systemctl status -l autofs ● autofs.service - Automounts filesystems on demand Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2017-04-25 09:06:08 PDT; 16ms ago Process: 13677 ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid (code=exited, status=0/SUCCESS) Main PID: 13679 (automount) CGroup: /system.slice/autofs.service └─13679 /usr/sbin/automount --pid-file /run/autofs.pid Apr 25 09:06:08 class2.example.com systemd[1]: Starting Automounts filesystems on demand... Apr 25 09:06:08 class2.example.com automount[13679]: setautomntent: lookup(sss): setautomntent: No such file or directory Apr 25 09:06:08 class2.example.com systemd[1]: Started Automounts filesystems on demand. [root@class2 ~]# [root@class2 ~]# [root@class2 ~]# [root@class2 ~]# ssh ldapuser2@localhost ldapuser2@localhost's password: Last login: Tue Apr 25 09:04:31 2017 from localhost -sh-4.2$ pwd /home/ldap/ldapuser2 -sh-4.2$ exit logout Connection to localhost closed. [root@class2 ~]# ssh ldapuser1@localhost ldapuser1@localhost's password: Last login: Tue Apr 25 09:02:55 2017 from localhost -sh-4.2$ pwd /home/ldap/ldapuser1 -sh-4.2$ exit logout Connection to localhost closed. [root@class2 ~]#
Listo, facil verdad. Espero que esta explicacion le ayude en su preparacion para el examen.
Exelente..gracias