• 11Okt

    Es gibt schon HOWTOs wie Sand am Meer zu diesem Thema. Damit ich nicht immer wieder suchen muss, schreibe hier nochmal alles in Kurzform auf 🙂

    Sinn und Zweck der Aktion ist es, mit einem Samba-Server einer Windows-Domain beizutreten. Die Benutzer können dann ohne erneute Anmeldung für sie freigegebene Verzeichnisse nutzen und sich auch per SSH anmelden.

    Umgebung: Ubuntu Hardy und eine Windows Server 2003-Domain namens „NAME.LOCAL“ mit einem Domain Controller „server.name.local“ an der Adresse 192.168.0.1.

    1. Benötigte Pakete
      • samba
      • winbind
      • krb5-user
      • libpam-krb5
      • krb5-config
      • libkadm55
    2. Wichtige Einstellungen der /etc/samba/smb.conf
      workgroup = NAME
      realm = NAME.LOCAL
      wins server = 192.168.0.1
      password server = 192.168.0.1
      client use spnego = yes
      client ntlmv2 auth = yes
      security = ADS
      encrypt passwords = true
      idmap backend = rid:NAME.LOCAL=70000-1000000
      idmap uid = 70000-1000000
      idmap gid = 70000-1000000
      template shell = /bin/bash
      template homedir = /home/%D/%U
      winbind use default domain = yes
      winbind enum groups = yes
      winbind enum users = yes
    3. Eine Beispiel-Freigabe mit Berechtigung für eine Windows-Gruppe
      [webroot]
      comment = Verzeichnis des Webservers
      path = /var/www
      browseable = yes
      read only = no
      create mask = 0664
      directory mask = 0775
      valid users = @NAME\Webentwickler
    4. /etc/nsswitch.conf
      passwd:   compat winbind
      group:    compat winbind
    5. /etc/pam.d/common-password
      password   requisite  pam_unix.so nullok obscure md5
      password   optional   pam_smbpass.so nullok use_authtok
                            use_first_pass missingok
    6. /etc/pam.d/common-account
      account sufficient      pam_winbind.so
      account required        pam_unix.so
    7. /etc/pam.d/common-session
      session required pam_unix.so
      session required pam_mkhomedir.so umask=0022 skel=/etc/skel
      session optional pam_foreground.so
    8. /etc/pam.d/common-auth
      auth required   pam_group.so use_first_pass
      auth sufficient pam_winbind.so
      auth sufficient pam_unix.so nullok_secure use_first_pass
      auth required   pam_deny.so
    9. /etc/pam.d/sudo
      #%PAM-1.0
      auth sufficient pam_winbind.so
      auth sufficient pam_unix.so use_first_pass
      auth required   pam_deny.so
      @include common-account
    10. /etc/krb5.conf
      [libdefaults]
        default_realm = NAME.LOCAL
        NAME.LOCAL = {
          kdc = server.name.local
          admin_server = server.name.local
        }
      
      [domain_realm]
        .name.local = NAME.LOCAL

    Ob die Kerberos-Verbindung zum Windows-Server klappt, kann dann mit dem Kommando „kinit Administrator@NAME.LOCAL“ und einem nachfolgenden „klist“ überprüft werden.

    Nach dem Neustart der Samba- und Winbind-Dienste muss der Server dann noch in die Domain eingefügt werden. Das geht über das Kommando „net rpc join -S server -U Administrator“. Ob die Windows-Benutzerdatenbank richtig angezapft wird, lässt sich mit „wbinfo -u“ und „wbinfo -g“ überprüfen.

    Nachtrag:

    • Das Dateisystem, das die Freigaben beinhaltet, muss mit acl- und user_xattr-Unterstützung eingebunden sein, damit NT-Dateiberechtigungen auch richtig abgebildet werden können. Also in der /etc/fstab „defaults,acl,user_xattr“ in die vor-vorletzte Spalte
    • Eine Freigabendefinition sieht mit ACL-Unterstützung so aus, ob das optimal ist muss sich noch zeigen:
      [share]
      path = /srv/share
      browseable = yes
      read only = no
      valid users = @NAME\domänen-benutzer
      admin users = @NAME\domänen-admins
      nt acl support = yes
      acl group control = yes
      inherit permissions = yes
      map acl inherit = yes

    Permalink

    Tags: , , , ,