Integración de OpenLDAP con IBM Spectrum Symphony
En la siguiente guía de aprendizaje, aprenderá a integrar OpenLDAP con IBM Spectrum Symphony, que es una plataforma de informática distribuida de alto rendimiento. OpenLDAP es una implementación de código abierto de LDAP (Lightweight Directory Access Protocol) que se puede utilizar para almacenar y gestionar información sobre usuarios, grupos y otros objetos de una red.
En la guía de aprendizaje, aprenderá los pasos implicados en la configuración de IBM Spectrum Symphony para utilizar OpenLDAP como servicio de directorio primario para la autenticación de usuarios. También puede obtener información sobre las ventajas de integrar OpenLDAP con IBM Spectrum Symphony, como la gestión centralizada de usuarios, la mejora de la seguridad y la autenticación simplificada de usuarios.
Esta guía de aprendizaje cubre la configuración del servidor OpenLDAP en un sistema RHEL 7.9.
Arquitectura
La integración entre OpenLDAP y IBM Spectrum Symphony implica los componentes siguientes:
- Servicio de directorioOpenLDAP: este componente almacena y gestiona datos de autenticación de usuario, como nombres de usuario y contraseñas.
- Plataforma de informática distribuidaIBM Spectrum Symphony: este componente utiliza los datos de autenticación de OpenLDAP para autenticar a los usuarios y permitirles ejecutar aplicaciones analíticas y de gran intensidad de datos.
- Proceso de autenticación LDAP: este proceso permite que IBM Spectrum Symphony se comunique con OpenLDAP y autentique a los usuarios utilizando sus credenciales existentes.
La integración de OpenLDAP con la arquitectura de IBM Spectrum Symphony permite una gestión de usuarios centralizada, una seguridad mejorada y una autenticación de usuarios simplificada. La integración también permite el uso de credenciales de autenticación existentes, lo que reduce la necesidad de que los usuarios recuerden varias credenciales de inicio de sesión. En general, la arquitectura proporciona una solución sólida y eficiente para la autenticación de usuarios y la gestión de directorios en entornos de informática distribuida.
Antes de empezar
Antes de empezar, asegúrese de revisar los siguientes requisitos previos:
Requisitos previos generales
Para integrar correctamente OpenLDAP con IBM Spectrum Symphony, deben cumplirse los siguientes requisitos y requisitos previos del sistema:
- OpenLDAP se instala en un servidor dedicado o en el mismo servidor que IBM Spectrum Symphony.
- IBM Spectrum Symphony está instalado en un sistema operativo soportado con los parches y actualizaciones más recientes.
- Tiene una cuenta de usuario con privilegios administrativos en OpenLDAP y IBM Spectrum Symphony.
- Está familiarizado con la autenticación LDAP y los servicios de directorio.
- Tiene acceso al archivo de configuración de Symphony y la posibilidad de modificarlo.
Requisitos previos de red
Para integrar correctamente OpenLDAP con IBM Spectrum Symphony, deben cumplirse los siguientes requisitos de red:
- Conectividad de red entre el servidor OpenLDAP y los nodos IBM Spectrum Symphony: asegúrese de que el servidor OpenLDAP se pueda comunicar con los nodos IBM Spectrum Symphony a través de la red. Esto se puede conseguir configurando los valores de red en el servidor OpenLDAP y en los nodos IBM Spectrum Symphony.
- Requisitos de puerto: El servidor OpenLDAP y los nodos IBM Spectrum Symphony deben poder comunicarse a través de puertos específicos. De forma predeterminada, OpenLDAP utiliza el puerto 389 para la comunicación no cifrada y el puerto 636 para la comunicación cifrada. IBM Spectrum Symphony utiliza el puerto 7777 para la comunicación entre el cliente y el servidor.
- Configuración de cortafuegos: Si hay un cortafuegos en la red, asegúrese de que los puertos necesarios estén abiertos para la comunicación entre el servidor OpenLDAP y los nodos IBM Spectrum Symphony.
- Configuración de DNS: Asegúrese de que los nodos IBM Spectrum Symphony pueden resolver el nombre de host o la dirección IP del servidor OpenLDAP. Si la resolución de DNS no está disponible, configure el archivo
/etc/hosts
en cada nodo para incluir el nombre de host y la dirección IP del servidor OpenLDAP.
Configurar un servidor OpenLDAP
Asegúrese de que tiene acceso a un sistema RHEL 7.9 Linux® con privilegios root.
-
Instale el servidor OpenLDAP y los paquetes de cliente ejecutando el mandato siguiente:
yum -y install openldap-servers openldap-clients
-
Copie el archivo
DB_CONFIG.example
en el directorio/var/lib/ldap
y cambie su propiedad al usuarioldap
ejecutando los mandatos siguientes:cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown ldap. /var/lib/ldap/DB_CONFIG
-
Inicie el servicio
slapd
y habilítelo para que se inicie automáticamente durante el arranque ejecutando los mandatos siguientes:systemctl start slapd systemctl enable slapd
-
Genere una contraseña de administrador ejecutando el mandato
slappasswd
. Se le solicitará que especifique una contraseña. Por ejemplo:slappasswd
Verá una salida similar a la siguiente:
Salida de ejemplo:
{SSHA}FUMV8TZ9lZQxABxCBE5UZ+oU/dlwf/d4
Anote el hash de contraseña que se genera (en este caso,
{SSHA}FUMV8TZ9lZQxABxCBE5UZ+oU/dlwf/d4
) según lo necesite más adelante. -
Cree un archivo denominado
chrootpw.ldif
y añádale las líneas siguientes:dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}FUMV8TZ9lZQxABxCBE5UZ+oU/dlwf/d4
Sustituya el valor
olcRootPW
por el hash de contraseña que ha generado en el paso anterior. -
Importe el esquema básico ejecutando los mandatos siguientes:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
-
Genere una contraseña de gestor ejecutando de nuevo el mandato
slappasswd
. Por ejemplo:slappasswd
Verá una salida similar a la siguiente:
Salida de ejemplo:
{SSHA}TVW9z6WLIBC3EXtFHFWnb2EVlK7EZQ3b
Anote el hash de contraseña que se genera (en este caso,
{SSHA}TVW9z6WLIBC3EXtFHFWnb2EVlK7EZQ3b
) según lo necesite más adelante. -
Añada la contraseña del gestor y habilite la cuenta del gestor creando un archivo denominado
chdomain.ldif
y añadiéndole las líneas siguientes:# DC should be your domain # specify the password generated above for "olcRootPW" section dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=ibmsymphony,dc=com" read by * none dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=ibmsymphony,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=ibmsymphony,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}TVW9z6WLIBC3EXtFHFWnb2EVlK7EZQ3b dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=ibmsymphony,dc=com" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=ibmsymphony,dc=com" write by * read
Sustituya el valor {SSHA} por el hash de contraseña que ha generado en el paso anterior.
-
Aplique los cambios ejecutando el mandato siguiente:
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
-
Cree un archivo denominado
basedomain.ldif
y añádale las líneas siguientes:
dn: dc=ibmsymphony,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: WES Migration
dc: ibmsymphony
dn: cn=Manager,dc=ibmsymphony,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=ibmsymphony,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=ibmsymphony,dc=com
objectClass: organizationalUnit
ou: Group
- Aplique los cambios realizados en el paso anterior ejecutando el mandato siguiente:
ldapadd -x -D cn=Manager,dc= ibmsymphony,dc=com -W -f basedomain.ldif
- Cree un archivo denominado
ldapuser.ldif
utilizando un editor, como VI, y añádale las líneas siguientes (sustitúyalo por su propio nombre de dominio necesario en la sección"dc=***,dc=***"
):
dn: uid=symphonyuser03,ou=People,dc=ibmsymphony,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: symphonyuser03
sn: Linux
userPassword: {SSHA}+A6gC87JU5ugW6qthWL2HGYzsQIdN1EN
loginShell: /bin/bash
uidNumber: 1003
gidNumber: 1003
homeDirectory: /home/symphonyuser03
dn: cn=symphonyuser03,ou=Group,dc=ibmsymphony,dc=com
objectClass: posixGroup
cn: symphonyuser03
gidNumber: 1003
memberUid: symphonyuser03
Sustituya el valor {SSHA} por el hash de contraseña que ha generado anteriormente.
- Aplique los cambios ejecutando el mandato siguiente:
ldapadd -x -D cn=Manager,dc= ibmsymphony,dc=com -W -f ldapuser.ldif
- Para verificar si se han creado los usuarios, utilice este mandato:
ldapsearch -x -LLL -b "ou=People,dc=ibmsymphony,dc=com" "(objectClass=posixAccount)" uid cn
El servidor OpenLDAP está ahora configurado y listo para su uso. Puede añadir más usuarios y grupos creando más archivos LDIF y utilizando el mandato ldapadd
para importarlos en el directorio.
Crear un grupo de usuarios en el directorio OLDAP
Ahora que el servidor OpenLDAP está configurado, debe crear un grupo de usuarios en el directorio OLDAP, que consta de usuarios que se supone que deben obtener acceso al clúster LSF.
-
Para crear un grupo, utilice el mandato
ldapadd
para añadir una entrada LDIF para el grupo al directorio LDAP. Por ejemplo, para crear grupos denominados "SymphonyAdmin" y "Symphonyconsumer", puede crear un archivo LDIF con el contenido siguiente:# create an organizational unit for groups dn: ou=groups,dc=ibmsymphony,dc=com objectClass: organizationalUnit ou: groups # create a group called "SymphonyAdmin" dn: cn=SymphonyAdmin,ou=groups,dc=ibmsymphony,dc=com objectClass: top objectClass: posixGroup gidNumber: 1001 cn: SymphonyAdmin description: SymphonyAdmin group # create a group called "Symphonyconsumer" dn: cn=Symphonyconsumer,ou=groups,dc=ibmsymphony,dc=com objectClass: top objectClass: posixGroup gidNumber: 1002 cn: Symphonyconsumer description: Symphonyconsumer group
En este ejemplo, la primera entrada crea una unidad organizativa denominada "grupos". Las dos entradas siguientes crean grupos que se denominan "SymphonyAdmin" y "Symphonyconsumer".
Cada entrada de grupo especifica
objectClass
"top" y "posixGroup" para definir el esquema del grupo. El atributogidNumber
especifica el identificador exclusivo del grupo, mientras que el atributocn
especifica el nombre común del grupo. Por último, el atributodescription
proporciona una breve descripción del grupo. -
Puede guardar el contenido del paso anterior en un archivo con una extensión
.ldif
como, por ejemplo,groups.ldif
y, a continuación, utilizar el mandatoldapadd
para añadir estas entradas de grupo al directorio LDAP. Consulte el mandatoldapadd
de ejemplo siguiente:ldapadd -x -D cn=Manager,dc=ibmsymphony,dc=com -W -f groups.ldif [root@oldapserverlsfcl ~]# ldapsearch -x -D cn=Manager,dc=ibmsymphony,dc=com -W -b "ou=groups,dc=ibmsymphony,dc=com" "(objectClass=posixGroup)" Enter LDAP Password: # extended LDIF # # LDAPv3 # base <ou=groups,dc=ibmsymphony,dc=com> with scope subtree # filter: (objectClass=posixGroup) # requesting: ALL # # SymphonyAdmin, groups, ibmsymphony.com dn: cn=SymphonyAdmin,ou=groups,dc=ibmsymphony,dc=com objectClass: top objectClass: posixGroup gidNumber: 1001 cn: SymphonyAdmin description: SymphonyAdmin group memberUid: symphonyuser02 memberUid: symphonyuser01 # Symphonyconsumer, groups, ibmsymphony.com dn: cn=Symphonyconsumer,ou=groups,dc=ibmsymphony,dc=com objectClass: top objectClass: posixGroup gidNumber: 1002 cn: Symphonyconsumer description: Symphonyconsumer group memberUid: symphonyuser03 memberUid: symphonyuser04 # search result search: 2 result: 0 Success
Esta salida muestra que hay dos entradas de grupo: "SymphonyAdmin" y "Symphonyconsumer", ambas en la unidad organizativa ou=groups,dc=ibmsymphony,dc=com
.
Más adelante, puede utilizar el mandato ldapmodify
para añadir usuarios saliendo a estos grupos. En la salida anterior de ldapsearch
, dos usuarios se ven como miembros de cada uno de los grupos.
Configurar autenticación LDAP en máquinas cliente
A continuación, debe configurar la autenticación LDAP para las máquinas cliente que ejecutan RHEL 8.4/8.6 como el SO y el servidor OLDAP como proveedor de autenticación o proveedor de identidad. En este caso, el cliente OLDAP es el clúster Symphony, por lo que los pasos siguientes se aplican a los nodos de clúster Symphony que se ejecutan sobre las máquinas RHEL 8.4/8.6 Linux®.
En los pasos siguientes, asegúrese de sustituir el nombre de dominio en la sección "dc=***,dc=***"
por su propio nombre de dominio.
-
Ejecute los mandatos siguientes:
yum -y install openldap-clients nss-pam-ldapd
yum install authselect sssd oddjob oddjob-mkhomedir
authconfig --enablesssd --enablesssdauth --update
-
Habilite el perfil de autenticación SSSD:
authselect select sssd
-
Añada el URL del servidor LDAP y el DN de búsqueda base al archivo
/etc/openldap/ldap.conf
tal como se muestra en el ejemplo siguiente:URI ldap://ibmsymphony.com/ or IP address will also work BASE dc=ibmsymphony,dc=com
-
En el directorio
/etc/sssd
, cree el archivosssd.conf
con el contenido siguiente:[domain/default] autofs_provider = ldap cache_credentials = True ldap_search_base = dc=ibmsymphony,dc=com id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://<ip address of the LDAP Server> enumerate = true access_provider = simple ldap_id_use_start_tls = false ldap_tls_reqcert = never [sssd] services = nss, pam, autofs domains = default [nss] homedir_substring = /home
Actualice el parámetro
ldap_search_base
con el DN base y actualiceldap_uri
con el URL al servidor LDAP. -
Cambie los permisos en el archivo
/etc/sssd/sssd.conf
:chmod 600 /etc/sssd/sssd.conf
-
Reinicie y habilite SSSD:
systemctl restart sssd systemctl enable sssd
-
Ejecute el mandato siguiente para habilitar la característica
mkhomedir
:sudo authselect enable-feature with-mkhomedir
-
Verifique que
mkhomedir
está habilitado:[root@icgen2host-10-240-0-39 ~]# authselect current Profile ID: sssd Enabled features: - with-mkhomedir
-
Habilite y reinicie
oddjobd.service
:systemctl enable --now oddjobd.service systemctl restart oddjobd.service
SSSD está configurado para utilizar LDAP para la autenticación de usuarios en el sistema RHEL 8.4/8.6 con el servidor LDAP "ibmlsf.com".
Configurar clúster de Symphony
Después de configurar la autenticación de cliente LDAP en la capa de sistema operativo, debe configurar el clúster alojado en el cliente LDAP para integrar completamente el clúster Symphony con el servidor OLDAP. Esto implica la configuración de la autenticación para PAM y los clientes predeterminados que utilizan un plug-in de autenticación, que permite la gestión de usuarios para el clúster de Symphony.
Configurar la autenticación de usuario para PAM y el cliente predeterminado
-
Detenga el clúster Spectrum Symphony utilizando el mandato
egoshutdown.sh
. Para ejecutar el script de conclusión, debe iniciar sesión en el clúster con la cuenta de administrador:#$EGO_TOP/profile.platform egosh user logon -u Admin -x Admin_password soamcontrol app disable all egosh service stop all egosh ego shutdown all
-
En todos los hosts de gestión, cree un archivo de configuración de plug-in denominado
pamauth.conf
en el directorio$EGO_CONFDIR
. Si existe, puede omitir este paso. Sustituya/$EGO_CONFDIR /pamauth.conf
por la vía de acceso real al archivo de configuración. Consulte el ejemplo siguiente:vi /$EGO_CONFDIR/pamauth.conf
-
Asegúrese de que exista un archivo de servicio PAM (el servicio PAM predeterminado es
sshd
) en el directorio/etc/pam.d/
. Si el archivo de servicio no existe, créelo y asigne 644 permisos. Puede omitir este paso si el archivo de servicio existe.#Example for sshd service file: touch /etc/pam.d/sshd chmod 644 /etc/pam.d/sshd
-
Edite el archivo
pamauth.conf
y establezca los valores de los parámetros obligatorios y opcionales. Puede especificar parámetros como PAM_SERVICE, KEYFILE, PAM_CACHEEXPIRYTIME, INCLUDED_USERGROUP, EXCLUDED_USERGROUP, SEGUI_GETENT_GROUP y SEC_PAM_BYPASS. Consulte el ejemplo siguiente de parámetrospamauth.conf
:PAM_SERVICE=sshd KEYFILE=/tmp/seckey.conf PAM_CACHEEXPIRYTIME=2h INCLUDED_USERGROUP=Developers,Administrators FOLLOW_GETENT_GROUP=Y SEC_PAM_BYPASS=N
-
Edite el archivo
$EGO_CONFDIR/ego.conf
en los hosts de gestión y cálculo:a. En los hosts de gestión, edite el archivo
ego.conf
para modificar los parámetrosEGO_SEC_PLUGIN
yEGO_SEC_CONF
con el valor siguiente:EGO_SEC_PLUGIN=sec_ego_pam_default EGO_SEC_CONF=$EGO_CONFDIR,0,INFO,$EGO_TOP/kernel/log
b. En los hosts de cálculo (cliente), edite el archivo
ego.conf
para modificar los parámetrosEGO_SEC_PLUGIN
yEGO_SEC_CONF
con el valor siguiente:EGO_SEC_PLUGIN= sec_ego_ext_co (for PAM client) EGO_SEC_PLUGIN=sec_ego_default (for “default client” which is ego user) EGO_SEC_CONF=$EGO_TOP/kernel/conf,0,DEBUG,$EGO_TOP/kernel/log
-
Inicie sesión en el host primario como administrador del clúster e inicie el clúster. Utilice los mandatos siguientes basándose en el shell (
bash
ocsh
):Para
bash
:#$EGO_TOP/profile.platform #egosh ego start all #soamcontrol app enable application_name
Para
csh
:#source $EGO_TOP/cshrc.platform #egosh ego start all #soamcontrol app enable application_name
-
Si el servidor de autenticación es necesario para autenticar un cliente PAM utilizando el método de autenticación predeterminado o PAM, inicie sesión en
EGO
como administrador del clúster (por ejemplo, Admin) y ejecute el mandatoegosh user add
para correlacionar el usuario PAM con la cuenta deEGO
.
Verificar la autenticación de usuario para PAM y clientes predeterminados
-
Para verificar la autenticación de usuario, los usuarios deben iniciar la sesión utilizando
soamlogon
oegosh user logon
. Sin embargo, en este caso, primero puede recuperar la lista de usuarios del servidor LDAP tal como se muestra en el ejemplo siguiente:[root@pp-hpcc-sym-primary-0 ~]# ldapsearch -x -D "cn=Manager,dc=ibmlsf,dc=com" -H ldap://149.81.15.40 -W -b "ou=people,dc=ibmlsf,dc=com" "(objectClass=posixAccount)" | grep "cn:" Enter LDAP Password: cn: usrsupport cn: usroprt cn: user123 cn: user03 cn: user05 cn: user007 cn: symphuser007 [root@pp-hpcc-sym-primary-0 ~]# soamlogon user account:symphuser007 password: Logged on successfully [root@pp-hpcc-sym-primary-0 ~]# egosh symphuser007@HPCCluster>
En el ejemplo, el usuario de LDAP “symphuser007” puede iniciar la sesión en el clúster de Symphony.
-
Para añadir el usuario LDAP "symphuser007" al clúster de Symphony, consulte el ejemplo siguiente:
Admin@HPCCluster> user add user account: symphuser007 password: password(type again, please): User account < symphuser007 > added successfully Admin@HPCCluster> user logoff Logged off successfully Admin@HPCCluster> user list ACCOUNT DESCRIPTION ---------------------------------------------------------------- symphuser007 adm adm Admin bin bin chrony cockpit-ws User for cockpit we* cockpit-wsins* User for cockpit-ws* daemon daemon sssd User for sssd nscd NSCD Daemon nslcd LDAP Client User dbus System message bus egoadmin ftp FTP User games games halt halt lp lp lsfuser123 lsfoprt mail mail nobody Kernel Overflow User operator operator polkitd User for polkitd postgres PostgreSQL Server rngd Random Number Gener* root root rpc Rpcbind Daemon rpcuser RPC Service User scalemgmt IBM Spectrum Scale scalepm IBM Spectrum Scale * setroubleshoot shutdown shutdown sshd Privilege-separated* sync sync systemd-cored* systemd Core Dumper systemd-resol* systemd Resolver tcpdump tss Account used for TP* unbound Unbound DNS resolver vpcuser VPC Cloud User @adm @audio @bin @cdrom @chrony
-
Para iniciar sesión con el usuario LDAP "symphuser007" en el nodo de clúster primario y ejecutar mandatos de clúster de Symphony, consulte el ejemplo siguiente:
[symphuser007@pp-hpcc-sym-primary-0 root]$ egosh egosh> user logon user account:symphuser007 password: Logged on successfully symphuser007@HPCCluster> resource list NAME status mem swp tmp ut it pg r1m r15s r15m ls hpcc-sy* ok 14G 0M 87G 3% 8200 0.0 0.1 0.1 0.1 0 hpcc-sy* ok - - - - - - - - - - hpcc-sy* ok 14G 0M 86G 2% 0 0.0 0.1 0.2 0.0 1 symphuser007@HPCCluster> ego info Cluster name : HPCCluster EGO master host name : pp-hpcc-sym-primary-0.ibm.com EGO master version : 3.9 symphuser007@HPCCluster>
Conclusión
OpenLDAP se integra con IBM Spectrum Symphony para proporcionar autenticación centralizada y servicios de directorio.