doc:guides:linuxad

Linux: Usuaris d'Active Directory

This article is obsoleted, deprecated and/or outdated, is kept here for historical reason
  • Un domini amb Active Directory ja funcionant ;)
  • Kerberos
  • Winbind (de Samba)

Al fitxer /etc/samba/smb.conf, configurem les propietats de samba i, especialment els paràmetres del winbind. Important posar a password server diversos servidors (primari i secundari) si disposem d'ells.

[global] 
  workgroup = DOMAIN 
  realm = w2k.realm.com
  netbios name = hostlinux
  winbind use default domain = yes 
  dns proxy = no 
  security = ads 
  encrypt passwords = true 
  obey pam restrictions = yes 
  invalid users = root 
  auth methods = winbind 
  update encrypted = yes 
  password server = servidorsAD
  winbind separator = / 
  winbind enum users = yes 
  winbind enum groups = yes 
  winbind uid = 10000-20000 
  winbind gid = 10000-20000

Cal tenir especial atenció a les 4 últimes línies. winbind enum serveix per enumerar 'llistar' els usuaris i grups, si n'hi ha molts pot ser un mètode ineficient i enlentir el sistema.

D'interès especial els últims 2, referents als uid i gids. Windows utilitza un únic SID tant per usuaris com per grups (un únic espai d'adreçament), mentre que unix separa usuaris i grups en dos espais d'adreçament.

Hi ha moltes maneres d'abarcar al problema, en la configuració d'exemple d'aquí l'únic que fa és assignar-los dinàmicament a mesura que es conectin els usuaris entre els valors especificats. Això vol dir que el mateix usuari de l'Active Directory que entri en un altres host Linux configurat així pot ser que obtingui un uid/gid diferents.

Per unificar-ho (cosa que no entra en aquest document) podem usar diversos mètodes: Afegir informació (atributs) extra al directori LDAP i fer que winbind obtingui l'uid i gid de l'LDAP, o usar un idmap RID, que mapeja uid de forma determinista (algun tipus de hash) i per tant assegura l'unificació de uids i gids.

Per més informació, consultar la pàgina de manual de smb.conf (buscar idmap backend) o el capitol 14 de la documentació Identity Mapping

Fitxer /etc/krb5.conf:

[libdefaults]
  default_realm = w2k.realm.com
[realms]
  w2k.realm.com = { 
    kdc = servidorAD1
    kdc = servidorAD2
    admin_server = servidorAD1
  } 
[logging] 
  kdc = FILE:/var/log/krb5/krb5kdc.log 
  admin_server = FILE:/var/log/krb5/kadmind.log 
  default = SYSLOG:NOTICE:DAEMON 

Al fitxer /etc/nsswitch.conf:

passwd: compat winbind 
group: compat winbind 

I a /etc/security/pam_unix2.conf:

auth:		call_modules=winbind 
account:	call_modules=winbind 

Algun software que vol autentificar amb NTLM contra winbind (com ara l'Squid) necessita tenir accés al winbind. En aquest cas cal donar permisos al software per llegir i escriure sota /var/lib/samba/winbindd_privileged/

El primer que cal recordar és que per a què els tiquets kerberos tinguin validesa, hem de tenir l'hora el màxim de sincronitzada amb el servidor de tiquets, això vol dir utilitzar ntp.

  # kinit usuari
  Password for usuari@w2k.realm.com: 
  # klist -e 
  Ticket cache: FILE:/tmp/krb5cc_0 
  Default principal: usuari@w2k.realm.com

  Valid starting     Expires            Service principal 
  08/18/08 09:29:08  08/18/08 19:32:53  krbtgt/w2k.realm.com@w2k.realm.com 
      renew until 08/19/08 09:29:08, Etype (skey, tkt): ArcFour with HMAC/md5,  
      ArcFour with HMAC/md5 
 
  Kerberos 4 ticket cache: /tmp/tkt0 
  klist: You have no tickets cached 

Amb la comanda net afegim la màquina al domini

# net ads join -U Administrator
Administrator's password: 
Using short domain name -- DOMAIN 
Joined 'hostlinux' to realm 'w2k.realm.com'

Comprovem si les coses estan bé.

# wbinfo -t 
checking the trust secret via RPC calls succeeded
  • doc/guides/linuxad.txt
  • Last modified: 2021/06/10 21:43
  • by 127.0.0.1