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:

[bash]# freebsd-update fetch
# freebsd-update install[/bash]

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

[plain]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
[/plain]

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

[plain]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
[/plain]

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

[plain]
aio_load="YES"
[/plain]

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:

[bash]# portsnap fetch extract
# portsnap fetch update[/bash]

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

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

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:

[plain][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[/plain]

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

[bash]# kinit administrator[/bash]

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

[bash]# klist[/bash]

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

[plain]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
[/plain]

Ó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:

[plain]ntpd_enable="YES"[/plain]

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):

[plain]server 192.168.18.2 prefer[/plain]

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

[bash]# service ntpd start[/bash]

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

Telepítse a SAMBA 3.6 alkalmazást:

[bash]# portmaster net/samba36[/bash]

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

[plain]
ACL_SUPPORT
ADS
AIO_SUPPORT
CUPS
DNSUPDATE
FAM_SUPPORT
IPV6
POPT
QUOTAS
SYSLOG
UTMP
WINBIND
[/plain]

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

[plain]
[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
[/plain]

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

[plain]
group: files winbind
passwd: files winbind
[/plain]

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

[bash]
# net ads join -U administrator
Enter administrator’s password:
[/bash]

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:

[plain]
Using short domain name — TEST
Joined ‘TESTMS1’ to dns domain ‘TEST.local’
[/plain]

Ellenőrizze le az ADS tagságot:

[bash]
# net ads testjoin
[/bash]

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

[plain]
Join is OK
[/plain]

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

[plain]
samba_enable="YES"
winbindd_enable="YES"
[/plain]

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

[bash]
# service samba start
[/bash]

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

[bash]
# wbinfo -u
# wbinfo -g
[/bash]

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

[bash]
# getent passwd
# getent group
[/bash]

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:

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

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.