FreeBSD + SAMBA AD Member Server

Ez az útmutató részletesen bemutatja egy SAMBA Member Server (3.6.23) konfigurálásához és beállításához szükséges lépéseket egy FreeBSD 9.2 operációs rendszert futtató kiszolgálón egy létező Windows Active Directory-ban.

Előkészületek

Az útmutató előfeltétele, hogy rendelkezésre álljon egy telepített, működőképes kiszolgáló, amelyen konfigurálva vannak az olyan részleteket, mint hosztnév, IP, DNS, időzóna stb. A telepítés előtt ajánlott egy rendszerfrissítést végrehajtani a következő parancsokkal:

# freebsd-update fetch
# freebsd-update install

Az útmutató a következő beállításokat használja. Ezek helyet saját értékeket kell használni:

LAN subnet: 192.168.17.0/24
AD domain: test.local
AD realm: TEST.LOCAL
DC name: testdc1.test.local
DC IP: 192.168.17.2
SAMBA name: testms1.test.local
SAMBA IP: 192.168.17.6

Adja hozzá a következő sorokat az /etc/sysctl.conf fájlhoz:

kern.ipc.maxsockbuf=16777216
kern.ipc.nmbclusters=32768
kern.ipc.somaxconn=32768
kern.maxfiles=65536
kern.maxfilesperproc=32768
kern.maxvnodes=800000
net.inet.tcp.delayed_ack=1
net.inet.tcp.path_mtu_discovery=0
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvbuf_inc=524288
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.recvspace=65536
net.inet.tcp.rfc1323=1
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendbuf_inc=524288
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.sendspace=65536
net.inet.tcp.mssdflt=1460
net.inet.udp.maxdgram=57344
net.inet.udp.recvspace=65536
net.local.stream.recvspace=65536
net.local.stream.sendspace=65536

Adja hozzá a következő sort a /boot/loader.conf fájlhoz:

aio_load="YES"

Hogyha nem telepítette a port fát a rendszer telepítésekor, akkor hajtsa végre most a telepítését és frissítését:

# portsnap fetch extract
# portsnap fetch update

Hogyha még nincs telepítve a portmaster, akkor telepítse most:

# cd /usr/ports/ports-mgmt/portmaster
# make install clean
# rehash

Kerberos

Az Active Directory használatához szükség van a Kerberos hálózati hitelesítési protokollra. A FreeBSD alap telepítése tartalmazz a Heimdal Kerberos minimális telepítését, amely elegendő a Member Server konfigurálásához. Hozza létre az /etc/krb5.conf fájlt a következő tartalommal. Ügyeljen a kis/nagy betűs írásmódra:

[logging]
  default = FILE:/var/log/krb5libs.log
  kdc = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log

[libdefaults]
  default_realm = TEST.LOCAL
  dns_lookup_realm = true
  dns_lookup_kdc = true
  default_keytab_name = FILE:/etc/keytab.krb5
  default_etypes = arcfour-hmac-md5
  default_etypes_des = arcfour-hmac-md5

[realms]
  TEST.LOCAL = {
    kdc = testdc1.test.local
    default_domain = test.local
    admin_server = testdc1.test.local
    }

[domain_realm]
  .domain.tld = TEST.LOCAL
  domain.tld = TEST.LOCAL
  .DOMAIN.TLD = TEST.LOCAL

[appdefaults]
  pam = {
    debug = false
    ticket_lifetime = 36000
    renew_lifetime = 36000
    forwardable = true
    krb4_convert = false 
    }

[kadmin]
  require-preauth = true

Ellenőrizze le, hogy működik-e a Kerberos hitelesítés:

# kinit administrator

Adja meg a TEST\administrator felhasználó jelszavát (administrator@TEST.LOCAL). Jelenítse meg a Kerberos jegyeket:

# klist

A következőhöz hasonló jelenik meg:

Credentials cache: FILE:/tmp/krb5cc_0
        Principal: administrator@TEST.LOCAL

  Issued           Expires          Principal
Apr  7 16:47:41  Apr  8 02:47:29  krbtgt/TEST.LOCAL@TEST.LOCAL

Óra szinkronizálása

A Kerberos nagyon kényes a dátum- és időbeállításra. Az egymással kommunikáló számítógépek között legfeljebb 5 perc eltérés lehet (ez a Windows Server 2003 alapbeállítása). Ezért nagyon fontos, hogy az órák szinkronizálása megfelelően be legyen állítva. A FreeBSD tartalmazza a ntpd szolgáltatást, amely beállítható úgy, hogy lekérdezzen más NTP kiszolgálókat (AD tartományvezérlő) az óra szinkronizálásához. Adja hozzá a következő sort az /etc/rc.conf fájlhoz, hogy az ntpd engedélyezve legyen a számítógép indulásánál:

ntpd_enable="YES"

Az alkalmazás beolvassa az /etc/ntp.conf fájlt, hogy meghatározza, mely NTP kiszolgálókat kell lekérdeznie. Adja hozzá a tartományvezérlőt a fájlhoz (több kiszolgálót is meg lehet adni):

server 192.168.18.2 prefer

Indítsa el az óra szinkronizálást:

# service ntpd start

SAMBA 3.6 telepítés és konfigurálása

Telepítse a SAMBA 3.6 alkalmazást:

# portmaster net/samba36

Válassza ki a következő opciókat, amikor a rendszer rákérdez:

ACL_SUPPORT
ADS
AIO_SUPPORT
CUPS
DNSUPDATE
FAM_SUPPORT
IPV6
POPT
QUOTAS
SYSLOG
UTMP
WINBIND

Fogadja el a többi csomag alapértelmezett opcióit. Hozza létre a /usr/local/etc/smb.conf fájlt:

[global]
   workgroup = TEST
   server string = Samba Server Version %v
   security = ADS
   realm = TEST.LOCAL
   domain master = no
   local master = no
   preferred master = no
   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
   use sendfile = yes
   aio read size = 16384
   aio write size = 16384
   read raw = yes
   write raw = yes

   idmap config * : backend = tdb
   idmap config * : range = 1000000-2999999
   idmap config TEST : backend = rid
   idmap config TEST : range = 10000-99999
   winbind enum users = yes
   winbind enum groups = yes
   winbind use default domain = yes
   winbind nested groups = yes
   winbind refresh tickets = yes
   winbind offline logon = yes
   template homedir = /home/%D/%U
   template shell = /bin/sh

   client use spnego = yes
   client ntlmv2 auth = yes
   encrypt passwords = yes
   restrict anonymous = 2
   log file = /var/log/samba/log.%m
   syslog = 1
   log level = 0
   max log size = 500

   unix charset = UTF8
   display charset = UTF8

   load printers = no
   printing = bsd
   printcap name = /dev/null

   nt acl support = yes
   inherit acls = yes
   map acl inherit = yes
   unix extensions = no

[testshare]
   comment = Test share
   path = /usr/home/test
   read only = no
   valid users = @"TEST\Domain Users"
   admin users = TEST+Administrator
   force group = "Domain Users"
   directory mask = 0770
   force directory mode = 0770
   create mask = 0660
   force create mode = 0660
   access based share enum = yes

Módosítsa az /etc/nsswitch.conf fájlban a következő sorokat:

group: files winbind
passwd: files winbind

Csatlakoztassa a SAMBA kiszolgálót az AD tartományhoz:

# net ads join -U administrator
Enter administrator's password:

Adja meg a rendszergazda jelszavát. Sikertelen csatlakozás esetén ellenőrizze, hogy a SAMBA kiszolgáló rendelkezik-e érvényes DNS A rekorddal a SAMBA kiszolgáló. Sikeres csatlakozás esetén a következő sorok jelennek meg:

Using short domain name -- TEST
Joined 'TESTMS1' to dns domain 'TEST.local'

Ellenőrizze le az ADS tagságot:

# net ads testjoin

Sikeresen kapcsolódás esetén a következő üzenet jelenik meg:

Join is OK

Adja hozzá a következő sorokat az /etc/rc.conf fájlhoz, a SAMBA kiszolgáló automatikus elindításához:

samba_enable="YES"
winbindd_enable="YES"

Indítsa el a SAMBA szolgáltatásokat:

# service samba start

Ellenőrizze le, hogy az ADS felhasználók és csoportok rendelkezésre állnak-e a helyi FreeBSD rendszer számára:

# wbinfo -u
# wbinfo -g

Felsorolja az összes ADS felhasználót és csoportok.

# getent passwd
# getent group

Felsorolja a FreeBSD rendszeren elérhető összes felhasználót és csoportot, ahol a lista végén megjelennek az ADS-ből származó elemek is.

Hozza létre a SAMBA teszt megosztást és állítsa be az engedélyeket:

# mkdir -p /usr/home/test
# chmod 0770 /usr/home/test
# chgrp "Domain Users" /usr/home/test

A SAMBA kiszolgálónak most már elérhetőnek kell lennie a Windows AD számítógépeiről.
Indítsa újra a FreeBSD kiszolgálót és ellenőrizze, hogy rendesen elindulnak-e a SAMBA szolgáltatások.