Hallo,
ich steh hier vor dem Problem, daß die Anmeldung mit einem Windows-Benutzer nicht funktioniert, also winbind scheinbar noch nicht korrekt läuft.
Ein w2k-Server (DC,Fileserver) und ein w2k3-Terminalserver und Clients (w2k/XP/Vista/W7) sind am Start. Auf dem TS wird zwingend ADS benötigt und der w2k soll durch einen Linux-Server (Squeeze) ersetzt werden, der das ADS leider nicht übernehmen kann. Deshalb wurde das ADS-Schema des w2k entsprechend angehoben und der TS als DC (dc.workgroup.local) hinzugefügt. So der aktuelle Stand auf der Windows-Seite.
Auf der Linux-Seite wurde Kerberos konfiguriert und Samba konnte der Domäne beitreten.
net ads join -S dc.workgroup.local -U administrator%<PASS> net ads testjoin
Join is OK
mit 'net usersidlist' sehe ich auch die Benutzer aus dem ADS: SAMBA-SERVER\administrator S-1-5-21-SAMBA-SID-500 S-1-1-0 S-1-5-2 S-1-5-11 S-1-5-21-SAMBA-SID-512
gast S-1-5-21-DOMAIN-SID-501 S-1-1-0 S-1-5-2 S-1-5-11
winuser1 S-1-5-21-DOMAIN-SID-1002 S-1-1-0 S-1-5-2 S-1-5-11
'getent passwd' zeigt leider nichts davon.
getent passwd
root:x:0:0:root:/root:/bin/bash ... ldapuser1:*:10001:10001:<gecos>:/home/ldapuser1:/bin/bash Administrator:*:20000:20001:Administrator:/home/Administrator:/bin/false nobody:*:65534:65534:nobody:/nonexistent:/bin/sh
Die letzten 3 Einträge stammen aus dem LDAP-Verzeichnis. Ich kann mich mit einem LDAP-User sowohl auf der Console, als auch mit smbclient am Samba-Server anmelden.
grep winbind /etc/nsswitch.conf
passwd: compat winbind ldap group: compat winbind ldap
cat /etc/pam.d/common-* |grep -v ^#
################################################################### account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so account requisite pam_deny.so account required pam_permit.so account [success=ok new_authtok_reqd=done ignore=ignore user_unknown=ignore authinfo_unavail=ignore default=bad] pam_ldap.so minimum_uid=1000
auth [success=3 default=ignore] pam_unix.so nullok_secure auth [success=2 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass debug auth [success=1 default=ignore] pam_ldap.so minimum_uid=1000 use_first_pass auth requisite pam_deny.so auth required pam_permit.so
password [success=3 default=ignore] pam_unix.so obscure sha512 password [success=2 default=ignore] pam_winbind.so use_authtok try_first_pass password [success=1 default=ignore] pam_ldap.so minimum_uid=1000 try_first_pass password requisite pam_deny.so password required pam_permit.so
session [default=1] pam_permit.so session requisite pam_deny.so session required pam_permit.so session required pam_unix.so session optional pam_winbind.so session [success=ok default=ignore] pam_ldap.so minimum_uid=1000 session required pam_mkhomedir.so skel=/etc/skel umask=0022 ###################################################################
Die Secrets für LDAP und winbind wurden erfolgreich eingetragen mit:
smbpasswd -w <PASS> net idmap secret WORKGROUP <PASS> net idmap secret alloc <PASS>
Verdächtig ist nur eine Zeile in der log.winbindd nach einem restart: connection_ok: Connection to for domain WORKGROUP is not connected
log.winbindd: ################################################ [2011/04/20 16:07:49.985165, 0] winbindd/winbindd_cache.c:3076(initialize_winbindd_cache) initialize_winbindd_cache: clearing cache and re-creating with version number 1 [2011/04/20 16:07:49.993073, 2] winbindd/winbindd_util.c:221(add_trusted_domain) Added domain BUILTIN S-1-5-32 [2011/04/20 16:07:49.993127, 2] winbindd/winbindd_util.c:221(add_trusted_domain) Added domain SAMBA-SERVER S-1-5-21-SAMBA-SID [2011/04/20 16:07:49.993181, 2] winbindd/winbindd_util.c:221(add_trusted_domain) Added domain WORKGROUP WORKGROUP.LOCAL S-1-5-21-DOMAIN-SID [2011/04/20 16:07:55.008881, 3] winbindd/winbindd_cm.c:1633(connection_ok) connection_ok: Connection to for domain WORKGROUP is not connected [2011/04/20 16:07:55.010095, 3] libsmb/cliconnect.c:991(cli_session_setup_spnego) Doing spnego session setup (blob length=109) [2011/04/20 16:07:55.010143, 3] libsmb/cliconnect.c:1020(cli_session_setup_spnego) got OID=1.2.840.48018.1.2.2 got OID=1.2.840.113554.1.2.2 got OID=1.2.840.113554.1.2.2.3 got OID=1.3.6.1.4.1.311.2.2.10 [2011/04/20 16:07:55.010170, 3] libsmb/cliconnect.c:1030(cli_session_setup_spnego) got principal=dc$@WORKGROUP.LOCAL [2011/04/20 16:07:55.015985, 2] libsmb/cliconnect.c:795(cli_session_setup_kerberos) Doing kerberos session setup [2011/04/20 16:07:55.018529, 3] libsmb/clikrb5.c:622(ads_cleanup_expired_creds) ads_cleanup_expired_creds: Ticket in ccache[MEMORY:cliconnect] expiration Do, 21 Apr 2011 02:07:54 CEST [2011/04/20 16:07:55.018563, 3] libsmb/clikrb5.c:840(ads_krb5_mk_req) ads_krb5_mk_req: server marked as OK to delegate to, building forwardable TGT ################################################
Als idmap-Backend wird LDAP verwendet, die entsprechenden OUs sind angelegt. Die nachfolgende ldapsam:editposix-Konfiguration stammt aus dem Buch OpenLDAP 2.4, 2. Auflage von Oliver Liebel (Galileo Computing).
smb.conf: ############################################ [global] workgroup = WORKGROUP server string = %h server wins support = no dns proxy = no log file = /var/log/samba/log.%m log level = 3 max log size = 1000 syslog = 1 panic action = /usr/share/samba/panic-action %d obey pam restrictions = no
security = ads realm = WORKGROUP.LOCAL encrypt passwords = yes unix password sync = yes
passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes password server = dc.workgroup.local
passdb backend = ldapsam:ldap://127.0.0.1/ ldap ssl = no ldapsam:trusted = yes ldapsam:editposix = yes ldap admin dn = cn=admin,dc=workgroup,dc=local ldap suffix = dc=workgroup,dc=local ldap user suffix = ou=people ldap group suffix = ou=group ldap machine suffix = ou=hosts ldap idmap suffix = ou=idmap ldap passwd sync = yes
idmap backend = ldap:ldap://127.0.0.1/ idmap config WORKGROUP:default = yes idmap config WORKGROUP:backend = ldap idmap config WORKGROUP:ldap_base_dn = ou=idmap,dc=workgroup,dc=local idmap config WORKGROUP:ldap_user_dn = cn=admin,dc=workgroup,dc=local idmap config WORKGROUP:ldap_url = ldap://127.0.0.1/ idmap config WORKGROUP:range = 20000 - 29999
idmap alloc backend = ldap idmap alloc config:ldap_base_dn = ou=idmap,dc=workgroup,dc=local idmap alloc config:ldap_user_dn = cn=admin,dc=workgroup,dc=local idmap alloc config:ldap_url = ldap://127.0.0.1/ idmap alloc config:range = 20000 - 29999
domain logons = no domain master = no preferred master = no time server = yes client use spnego = yes client schannel = no
idmap uid = 20000-29999 idmap gid = 20000-29999 winbind enum users = yes winbind enum groups = yes winbind use default domain = yes template shell = /bin/false template homedir = /home/%u
[homes] comment = Home Directories browseable = no read only = no create mask = 0700 directory mask = 0700 valid users = %S
[netlogon] comment = Network Logon Service path = /srv/daten/netlogon guest ok = yes read only = yes
[profiles] comment = Users profiles path = /srv/daten/profiles guest ok = no browseable = no create mask = 0600 directory mask = 0700
[printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700
[print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no ; write list = root, @lpadmin ################################################
Hat jemand einen Ansatz, wo der Fehler stecken könnte? Mir fehlen momentan neue Denkansätze.
Gruß Rico