V tomto tutoriálu probereme, jak integrovat servery Linux (Centos/RHEL) s Windows Active Directory pro účely ověřování. V mém případě mám servery Centos/RHEL 6. Pro integraci těchto serverů s AD pomocí samba, winbind a Kerberos postupujte podle níže uvedených kroků.
Krok 1 :Nainstalujte balíčky samba-winbind a kerberos.
# yum install samba-winbind samba-winbind-clients samba krb5-libs krb5-workstation pam_krb5
Krok 2 :Synchronizace času.
AD je velmi vybíravý, pokud jde o shodu času během ověřování. Takže čas linuxového serveru a AD serveru by měl být synchronizován s ntp serverem. Pomocí níže uvedeného příkazu synchronizujte čas serveru Linux se serverem ntp.
# ntpdate [ntp-server-ip-address/dns-name]
Chcete-li, aby výše uvedená konfigurace byla trvalá, upravte soubor „/etc/ntp.conf“ a nahraďte jeho obsah jedním nebo více servery NTP ve vaší doméně, například:
# vi /etc/ntp.conf server [ntp-server-ip-address/dns-name]
Spusťte službu:
# /etc/init.d/ntpd start # chkconfig ntpd on
Krok 3 :Upravte soubor /etc/hosts.
# vi /etc/hosts [ip-address] adserver.yourdomain adserver
Krok 4 :Upravte /etc/krb5.conf.
# vi /etc/krb5.conf
[domain_realm]
yourdomain = YOURDOMAIN
[libdefaults]
    ticket_lifetime = 24000
    default_realm = YOURDOMAIN
    dns_lookup_realm = true
    dns_lookup_kdc = false
    cache_type = 1
    forwardable = true
    proxiable = true
    default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
    permitted_enctypes = des3-hmac-sha1 des-cbc-crc
    allow_weak_crypto = no
[realms] 
    YOURDOMAIN = {
    kdc = [ip address of AD server:Port]
    admin_server = [ip address of AD server:Port]
    default_domain = yourdomain
  } [appdefaults]
  pam = {
    debug = true
    ticket_lifetime = 36000
    renew_lifetime = 36000
    forwardable = true
    krb4_convert = false
  }
[logging]
  default = FILE:/var/krb5/kdc.log
  kdc = FILE:/var/krb5/kdc.log
  admin_server = FILE:/var/log/kadmind.log Krok 5 :Nyní otestujte ověřování Kerberos.
# kinit [user-name]
Pokud se zobrazí výzva k zadání hesla, zadejte své uživatelské heslo reklamy, pokud je vše v pořádku, zobrazí se výzva, jinak znovu zkontrolujte soubor krb5.conf.
Krok 6 :Nyní nakonfigurujte Sambu a Winbind.
Upravte /etc/samba/smb.conf .
# vi /etc/samba/smb.conf
[global]
    workgroup = [Workgroup-Name]
    netbios name = site2       ## replace the site2 with hostname
    realm = 
    security = ADS
    template shell = /bin/bash
    idmap backend = tdb
    idmap uid = 1-100000000
    idmap gid = 1-100000000
    winbind use default domain = Yes
    winbind nested groups = Yes
    winbind enum users = Yes
    winbind enum groups = Yes
    template shell = /bin/bash
    template homedir = /home/%D/%U
    winbind separator = /
    winbind nss info = sfu
    winbind offline logon = true
    hosts allow = 127.0.0.1 0.0.0.0/0
    obey pam restrictions = yes
    socket options = TCP_NODELAY
    max log size = 150
    passdb backend = tdbsam
    printing = cups
    load printers = yes
    cups options = raw
    printcap name = cups
    disable spoolss = Yes
    show add printer wizard = No
    interfaces = eth0 lo
    bind interfaces only = yes
    winbind refresh tickets = true
    log file = /var/log/samba/log.%m
    max log size = 50
    log level = 3
    encrypt passwords = yes
    #map untrusted to domain = yes
    #auth methods = winbind guest sam
    map untrusted to domain = Yes
[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = yes
    public = yes
    guest ok = yes
    writable = no
    printable = yes  Krok 7 :Nakonfigurujte /etc/nsswitch.conf soubor pro zpracování ověřování.
# vi /etc/nsswitch.conf passwd: compat winbind shadow: winbind group: compat winbind
Krok 8 :Nyní restartujte služby winbind &Samba.
# /etc/init.d/smb restart # /etc/init.d/winbind restart
Nyní se připojte k doméně:
# net ads join -U [User Name]
Pokud výše uvedený příkaz hlásí „Join is OK“, pak otestujte winbind:
Příkaz pro seznam všech uživatelů AD:
# wbinfo -u
Krok 9 :Nyní proveďte testování a zkuste se přihlásit k linuxovému serveru pomocí přihlašovacích údajů uživatele AD.
# ssh [username]@[ipaddress or hostname of linux server]