systemadmin.es > Seguridad > Autenticación LDAP mediante sssd

Autenticación LDAP mediante sssd

En caso que tengamos los usuarios de los equipos en un OpenLDAP, mediante sssd podemos configurar muy fácilmente dicha integración. A partir de CentOS 6 es el método recomendado

En el OpenLDAP deberemos tener un usuario como el siguiente:

dn: uid=testldap,o=AOP,ou=system
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: testldap
uid: testldap
uidNumber: 1000
gidNumber: 100
homeDirectory: /home/testldap
loginShell: /bin/bash
gecos: testldap
userPassword: {SSHA}7pNyYCg1O3AleapUxcJ+wJTeify+NYzo
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

Deberemos instalar sssd y authconfig:

yum install sssd authconfig -y

Hacemos un backup de la configuración actual:

authconfig --savebackup=/tmp/backup.authconfig

Y habilitamos sssd:

authconfig --enablesssd --enablesssdauth --enablelocauthorize --update

Para configurar el sssh deberemos editar el fichero /etc/sssd/sssd.conf:

[sssd]
config_file_version = 2
services = nss, pam
domains = default

[nss]
filter_users = root,ldap,named,avahi,haldaemon,dbus,news,nscd

[pam]

[domain/default]
ldap_tls_reqcert = never
auth_provider = ldap
ldap_schema = rfc2307bis
krb5_realm = EXAMPLE.COM
ldap_search_base = dc=systemadmin,dc=es
ldap_group_member = uniquemember
id_provider = ldap
ldap_id_use_start_tls = False
chpass_provider = ldap
ldap_uri = ldap://slave.ldap1,ldap://slave.ldap2
ldap_chpass_uri = ldap://master.ldap/
krb5_server = kerberos.example.com
cache_credentials = True
ldap_tls_cacertdir = /etc/openldap/cacerts
entry_cache_timeout = 600
ldap_network_timeout = 3

Los parámetros importantes para una configuración inicial son:

  • filter_users: Usuarios que queremos mantener en local, como por ejemplo root o de deamons del sistema
  • ldap_search_base: Base que hayamos definido en OpenLDAP
  • ldap_uri: Servidor OpenLDAP para realizar consultas
  • ldap_chpass_uri: Servidor cobre el que hacer el update para cambiar el password. Es especialmente útil en entornos con OpenLDAP en master-slave

Una vez configurado para habilitar su uso deberemos arrancar sssd:

/etc/init.d/sssd start

Y modificar el /etc/nsswitch.conf para incluir sssd en passwd, shadow y group:

passwd:		files sss
shadow: 	files sss
group:		files sss
hosts: 		files dns
bootparams: 	nisplus [NOTFOUND=return] files
ethers: 	files
netmasks: 	files
networks: 	files
protocols: 	files
rpc: 		files
services: 	files
netgroup: 	nisplus
publickey: 	nisplus
automount: 	files nisplus
aliases: 	files nisplus

Podemos verificar que se establezca la conexión mediante id a un usuario válido o invalido (en dicho caso únicamente veremos que se estableze la conexión)

# netstat -tpan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1082/rpcbind        
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1275/sshd           
tcp        0      0 0.0.0.0:37116               0.0.0.0:*                   LISTEN      1100/rpc.statd      
tcp        0      0 10.0.2.15:22                10.0.2.2:49408              ESTABLISHED 2642/sshd           
tcp        0      0 :::47721                    :::*                        LISTEN      1100/rpc.statd      
tcp        0      0 :::111                      :::*                        LISTEN      1082/rpcbind        
tcp        0      0 :::22                       :::*                        LISTEN      1275/sshd           
# id testldap
uid=10000(testldap) gid=100(users) groups=100(users)
# netstat -tpan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1082/rpcbind        
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1275/sshd           
tcp        0      0 0.0.0.0:37116               0.0.0.0:*                   LISTEN      1100/rpc.statd      
tcp        0      0 192.168.56.12:38428         192.168.56.11:389           ESTABLISHED 4595/sssd_be        
tcp        0      0 10.0.2.15:22                10.0.2.2:49408              ESTABLISHED 2642/sshd           
tcp        0      0 :::47721                    :::*                        LISTEN      1100/rpc.statd      
tcp        0      0 :::111                      :::*                        LISTEN      1082/rpcbind        
tcp        0      0 :::22                       :::*                        LISTEN      1275/sshd           

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>