LX-SVS-INFO-samba-in-AD
Updated jun/12/11 09:50

samba server - opnemen in active directory

Debian6/Ubuntu 9.04 - w2003

In dit artikel wordt een debian6 squeeze Samba Server in het domein van een Active Directory 2003 server opgenomen. Hiervoor wordt o.a. gebruik gemaakt van winbind. De Linux Samba server 'ziet' de domein gebruikers en groepen. 

We gaan er van uit dat debian geinstalleerd is en werkt en dat samba getest is en werkt zoals in artikel http://www.linux800.be/lx-svs-info-samba.php punt 8.


  1. Installeer winbind en krb5-user

    Open een root terminal en tik het volgende:

    # apt-get update

    # apt-get install krb5-user  winbind

  2. configureer krb5.conf

    We moeten eerst de originele /etc/krb5.conf config-file bewaren:

    # mv /etc/krb5.conf /etc/krb5.conf.ori

    Hierna beginnen we een krb5.conf vanaf nul.
    We werken met de volgende situatie in dit voorbeeld:

    Ons domein is windom1.local

    Onze windows 2003 Primary Domain Controller heet w2003-1
      en heeft als ip-adres 192.168.1.240

    Onze samba server heet pc00 en heeft als ip-adres 192.168.1.220


    Tik

    # vim /etc/krb5.conf 

    en pas heel goed op voor lay-out, jazeker, de lay-out is belangrijk:


    Dit heeft gewerkt, doe geen cut en paste, maar tik dit zelf geformatteerd met TABS in:
    Dit WERKT NIET want GEEN TABS
    [logging]
          default = FILE:/var/log/krb5libs.log
          kdc = FILE:/var/log/krb5kdc.log
          admin_server = FILE:/var/log/kadmin.log

    [libdefaults]
          default_realm = WINDOM1.LOCAL
          dns_lookup_realm = false
          dns_lookup_kdc = true
          ticket_lifetime = 24000

    [realms]
          WINDOM1.LOCAL = {
               kdc = w2003-1.windom1.local:88
               admin_server = w2003-1.windom1.local:749
               default_domain = windom1.local
          }

    [domain_realm]
            .windom1.local = WINDOM1.LOCAL
            windom1.local = WINDOM1.LOCAL
    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmin.log

    [libdefaults]
    default_realm = WINDOM1.LOCAL
    dns_lookup_realm = false
    dns_lookup_kdc = true
    ticket_lifetime = 24000

    [realms]
    WINDOM1.LOCAL = {
    kdc = w2003-1.windom1.local
    admin_server = w2003-1.windom1.local
    default_domain = windom1.local }

    [domain_realm]
    .windom1.local = WINDOM1.LOCAL
    windom1.local = WINDOM1.LOCAL



  3. Stel je hostname, DNS en domein correct in

    Denk eraan in je /etc/resolv.conf naar de Domain Controller te verwijzen,

    anders werkt er niets:

    search windom1.local
    domain windom1.local
    nameserver 192.168.1.240
    # ip address from PDC

    Stel je /etc/hosts file correct in als volgt:

    127.0.0.1        localhost localhost.windom1.local pc00 pc00.windom1.local
    127.0.1.1        pc00
    192.168.1.240    w2003-1.windom1.local w2003-1

    Kijk voor alle zekerheid je /etc/hostname na:

    pc00
  4. Zet je klokken synchroon

    Kerberos is nogal paranoid als je klokken niet gelijk lopen, of als ze teveel afwijken van de huidige tijd. Kijk eventueel ook noa of je tijdzone correct is ingesteld.
  5. kerberos testen

    onder debian squeeze:

    # kinit administrator@WINDOM1.LOCAL
    Password for administrator@BERT.LOCAL: ********
    # klist
    Ticket cache: FILE:/tmp/krb5cc_0
    Default principal: administrator@WINDOM1.LOCAL

    Valid starting     Expires            Service principal
    06/06/11 12:38:07  06/06/11 19:18:07  krbtgt/WINDOM1.LOCAL@WINDOM1.LOCAL


    onder mint7 of ubuntu 9.04
    :

    # kinit Administrator@EXAMPLE.NET

    Password for Administrator@EXAMPLE.NET: **********

    # klist

    Ticket cache: FILE:/tmp/krb5cc_0
    Default principal: Administrator@EXAMPLE.NET
    Valid starting          Expires                  Service principal
    08/06/09 12:09:34 08/06/09 22:09:39  krbtgt/EXAMPLE.NET@EXAMPLE.NET
                     renew until 08/07/09  12:09:34
    Kerberos  4 ticket cache: /tmp/tkt0
    klist: You have no tickets cached

  6. SAMBA configureren:

    De configuratiefile /etc/samba/smb.conf wordt gebackupped:


    # cp /etc/samba/smb.conf /etc/samba/smb.conf.ori

    We passen de [global] settings aan; de rest van je server, je shares, blijven onaangepast.


    # vim /etc/samba/smb.conf

    [global]
    workgroup = WINDOM1
    realm = WINDOM1.LOCAL
    netbios name = pc00
    server string = %h server (Samba %v, Ubuntu)
    dns proxy = no
    log file = /var/log/samba/log.%m
    max log size = 1000
    syslog = 0
    panic action = /usr/share/samba/panic-action %d
    security = ADS
    domain master = no
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    template shell = /bin/bash
    template homedir = /home/%D/%U
    winbind enum groups = yes
    winbind enum users = yes
    winbind use default domain = yes
    winbind separator = +
    usershare allow guests = yes


    # ... hier volgen je shares

  7. samba testen en herstarten, winbind herstarten

    Test je configuratie met testparm:

    # testparm


    Er komt een waarschuwing over het gebruik van + maar dat is geen probleem.

    Hierna starten we samba en winbind opnieuw op in deze volgorde:

    # /etc/init.d/winbind stop
    # /etc/init.d/samba restart
    # /etc/init.d/winbind start

  8. Server aan het domein toevoegen

    Voeg je samba server toe aan het AD domein met het volgende commando:

    # net ads join -U Administrator@WINDOM1.LOCAL

    Administrator's Password:*********

    Using short domain name - WINDOM1
    Joined 'PC00' to realm 'WINDOM1.LOCAL'


    Maar dat lukt niet altijd:
    # net ads join -U Administrator@WINDOM1.LOCAL
    Enter Administrator@WINDOM1.LOCAL's password:
    Failed to join domain: failed to find DC for domain WINDOM1.LOCAL


    Dit lukt dikwijls wel:

    # net ads join -U Administrator -S w2003-1
    Enter Administrator's password:
    Using short domain name -- BERT
    Joined 'PC00' to realm 'windom1.local'
    DNS update failed!


    DNS update failed
    : dit is geen ramp het werkt ook ondanks deze mededeling. Updating kerberos libraries kan soelaas bieden. Makkelijkst is het manueel de dns aan te passen.

    Het internet leert ons het volgende:

    "Server (ADS member) only not registered in the ADS DNS tree - When the client joins AD, samba initiates DDNS update to register itself on DNS server. IF your DNS server is not configured to update dynamic updates, you will receive this error. As long as you have right forward/reverse entries on your DNS server, you need not to worry about this error."


    kinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credentials
    Failed to join domain: Invalid credentials


    De mededeling hierboven is erg lastig. Enkele tips:

  9. Controlleer je AD server

    De server pc00 verschijnt nu onder de hoofding computers in je AD.

  10. Controlleer je domein controller info

    # net ads info

    LDAP server: 192.168.x.x
    LDAP server name: yourdomaincontroller.example.net
    Realm: EXAMPLE.NET
    Bind Path: dc=EXAMPLE, dc=NET
    LDAP port: 389
    Server time: tHU, 06 aUG 2009 15:36:46 EST
    KDC server: 192.168.x.x
    Server time offset: 1


  11. winbind authentication configureren

    Met enkele kleine aanpassingen in de /etc/nsswitch.conf kan je de winbind authentication activeren:

    # vim /etc/nsswitch.conf


    passwd: compat winbind
    group: compat winbind
    shadow: compat winbind

    hosts: files dns wins
    networks: files dns

    protocols: db files
    services: db files
    ethers: db files
    rpc: db files

    netgroup: nis


    Herstart nu nogmaals samba en winbind:


    # /etc/init.d/samba restart
    Stopping Samba daemons: nmbd smbd.
    Starting Samba daemons: nmbd smbd.

    # /etc/init.d/winbind restart
    Stopping the Winbind daemon: winbind.
    Starting the Winbind daemon: winbind.


    Nu kan je de winbind testen met:

    # wbinfo -u

    Administrator
    Guest
    User1
    User2


    # wbinfo -g

    Domain Admins
    Sales
    HR
    Helpdesk Stuff
  12. de ultieme test !!!

    Je kan tenslotte inloggen op een XP-client in het domein, met een usernaam van het domein, en automatisch toegang krijgen tot de Linux SAMBA server.

  13. inspiratie

    original by mislam on howtoforge.com; he concluded: "I hope it helps."
    http://www.howtoforge.com/ubuntu-9.04-samba-server-integrated-with-active-directory

  14. nuttige links:

    http://www.surlyjake.com/2009/05/join-debian-lenny-to-active-directory-using-samba/
    http://www.howtoforge.com/ubuntu-9.04-samba-server-integrated-with-active-directory
    http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/NetCommand.html