Usando o UID openLD alernative para autenticar no Active Directory

3

Estou usando o Winbind para autenticar usuários no Active Directory. Tudo está funcionando perfeitamente quando os nomes de usuários coincidem. O problema é que muitos dos usuários têm nomes de usuários diferentes para o Windows e o Linux (as contas e os engenheiros adquiridos são teimosos em relação à mudança). Para a maior parte eu posso contornar isso dando UIDs exclusivos do openLDAP 2 para o mesmo DN.

Por exemplo:

[bob.smith@myhost ~]$ ldapsearch -xLLL uid=bob
dn: uid=bob.smith,dc=example,dc=com
uid: bob.smith
uid: bob
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 4563
cn: Bob Smith
homeDirectory: /home/bob
shadowMin: 0
shadowMax: 999999
shadowWarning: 7
shadowInactive: 0
shadowExpire: 24837
sn: Smith
mail: [email protected]
gidNumber: 555
shadowLastChange: 17044

Agora faça o login com a senha do openLDAP e execute whoami

[bob.smith@myhost bob]$ su - bob
Password: 
Last login: Wed Sep 21 10:09:22 PDT 2016 on pts/3
[bob.smith@myhost ~]$ whoami
bob.smith

Verifique o usuário id

[bob.smith@myhost ~]$ id bob
uid=4563(bob.smith) gid=555(AGROUP) groups=555(AGROUP),988(x2gouser),19775215(domain users)

Tudo parece ótimo, certo? Isso é até que eu tente logar como bob e não o nome do Windows de bob.smith e usar a senha do AD (bob.smith pode logar bem):

[bob.smith@myhost ~]$ su - bob
Password: 
su: Authentication failure

Até onde eu sei, o PAM está configurado corretamente e como eu mostrei antes que o sistema reconheça esse usuário como bob.smith mesmo quando eu fizer login como bob. Mas a autenticação não vê bob como um usuário válido.

[bob.smith@myhost ~]$ cat password-auth 
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_krb5.so use_first_pass
auth        sufficient    pam_ldap.so use_first_pass
auth        sufficient    pam_winbind.so krb5_auth krb5_ccache_type=KEYRING use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so krb5_auth krb5_ccache_type=KEYRING
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    sufficient    pam_ldap.so use_authtok
password    sufficient    pam_winbind.so krb5_auth krb5_ccache_type=KEYRING use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so
session     optional      pam_ldap.so
session     optional      pam_winbind.so krb5_auth krb5_ccache_type=KEYRING

Aqui está o meu arquivo smb.conf se faz diferença:

[bob.smith@myhost ~]$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER

Press enter to see a dump of your service definitions

# Global parameters
[global]
        workgroup = EXAMPLE-USA
        realm = EXAMPLE.COM
        server string = Samba Server Version %v
        security = ADS
        kerberos method = secrets and keytab
        log file = /var/log/samba/log.%m
        max log size = 50
        winbind use default domain = Yes
        idmap config * : range = 16777216-33554431
        idmap config * : backend = tdb
        cups options = raw


[homes]
        comment = Home Directories
        read only = No
        browseable = No


[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = Yes
        print ok = Yes
        browseable = No

Se houver uma correção no final do Linux, seria preferível, pois eu não sou um administrador de domínio do Windows. Mas se alguém tiver uma solução do lado do Windows, estou disposto a explorar essa opção. Se não houver soluções válidas, analisarei a sincronização da senha do openLDAP com a senha do AD. Seria essencialmente o mesmo que um resultado final.

    
por Jeight 21.09.2016 / 19:57

0 respostas