Instalacja Active Directory
Wraz z ukazaniem się Samby w wersji 4 mamy już pełną obsługa Active Directory z obsługą polityki grup GPO znana z systemów NT. Możemy tworzyć domeny a także łączyć się z istniejącymi domenami Active Directory. Samba także komunikuje się z serwerami Exchange jak również można zarządzać nią z poziomu narzędzi Windows Serwer. A więc po kolei:
Do porawnego działania naszego kontrolera domeny będą potrzebne:
BIND – ja użyłem najnowszej obecnie wersji 9.9.3-P2
krb5 – wersja 1.11.3
Samba 4.8.0
Biblioteki heimdal – gssapi
Prace rozpoczynamy od skompilowania bibliotek heimdal, w załączeniu spakowana biblioteka z SlackBuildem, instalujemy. Aby biblioteki odrazu były widoczne w systemie uruchamiamy z katalogu /etc/profile.d/ heimda.csh oraz heimdal.sh lub robimy reboot, jak kto woli.
Następnym etapem jest kompilacja krb5 – implementacje Kerberosa – w załaczeniu spakowana biblioteka z Slackbuildem. Aby biblioteki odrazu były widoczne w systemie uruchamiamy z katalogu /etc/profile.d/ kerberos.csh oraz kerberos.sh lub robimy reboot, jak kto woli.
Kompilacja Samby i instalacja standardowo Slackbuild w załączeniu.
Jako że BIND w podstawowej wersji dla Slackware nie ma wkompilowanej obsługi gssapi oraz dlopen i dlz-dlopen musimy skompilować go samemu dodajac odpowiednie linijki w sekcji ./configure Slackbuilda.
--with-gssapi=/usr/heimdal \ --with-dlopen=eys \ --with-dlz-dlopen=yes \
Pozostałanam tylko Samba 4.1.0 . Slackbuild w załaczeniu.
Zabieramy się do konfiguracji.
Pierwszą rzeczą jaka musimy wykonać to skonfigurowanie binda.
plik /etc/named.conf
# Global options options { auth-nxdomain yes; directory "/var/named"; forwarders { DNS1_naszego_providera; DNS2_naszego_rovidera; }; allow-transfer { none; }; notify no; empty-zones-enable no; allow-query { 10.1.1.0/24; #Twoja sieć loklana której pozwalasz na odpytywanie DNS }; allow-recursion { 10.1.1.0/24; # sieci którym pozwalasz na odpytywanie rekursywne };
tkey-gssapi-keytab "/etc/samba/private/dns.keytab";
}; # Serwery główne - strefa wymagana dla rekursywnych zapytań zone "." { type hint; file "named.root"; }; # Wymagana strefa wyszukiwania do przodu i do tyłu zone "localhost" { type master; file "master/localhost.zone"; }; zone "0.0.127.in-addr.arpa" { type master; file "master/0.0.127.zone"; }; include "/etc/samba/private/named.conf
Plik /var/named/master/localhost.zone
$TTL 3D $ORIGIN localhost. @ 1D IN SOA @ root ( 2013050101 ; serial 8H ; refresh 2H ; retry 4W ; expiry 1D ; minimum ) @ IN NS @ IN A 127.0.0.1
Plik /var/named/master/0.0.127.zone
$TTL 3D @ IN SOA localhost. root.localhost. ( 2013050101 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D ; Minimum TTL ) IN NS localhost. 1 IN PTR localhost.
Binda mamy skonfigurowanego, nie uruchamiamy go jeszcze. Zajmijmy się plikami /etc/hosts , /etc/fstab , /etc/resolv.conf
W pliku /etc/hosts wpisujemypełną nazwę naszej domeny np:
127.0.0.1 biuro.lokalnie biuro
Ważną rzeczą jest aby nazwa domeny nie pokrywała się z nazwą serwera w pliku /etc/HOSTNAME
Jak już pisałem na wstepie Samba 4 oferuje pełną obsługe Active Directory wraz z ACL. Aby była możliwość używania opcji zabezpieczeń do udziałów musimy w pliku /etc/fstab dopisać w wierszu gdzie montowany jest dysk do udostępniania zasobów odpowiednie paramatry np:
/dev/sda2 /home ext4 user_xattr,acl,barrier=1 1 1
W miejscu gdzie obecnie jest user_xattr,acl,barrier=1 zazwyczaj jest parametr defaults
Należy się przy tym najpierw upewnić ze odpowiednie opcje są wkompilowane w jądro systemu, polecenie
zgrep CONFIG_EXT3_FS /proc/config.gz lub zgrep CONFIG_EXT4_FS /proc/config.gz zależnie od posiadanego systemu plików , powinno dać wynik:
CONFIG_EXT3_FS=y CONFIG_EXT4_FS=y
CONFIG_EXT3_FS_XATTR=y lub CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y CONFIG_EXT4_FS_SECURITY=y
W pliku /etc/resolv.conf usuwamy wszystkie linie i pisujemy:
nameserver IP_naszego_serwera
domain biuro.lokalnie
Pora na wygenerowanie struktury naszego kontrolera domeny, polecenie
samba-tool domain provision
Odpowiadamy kolejno na pytania:
1. Pełna nazwa naszej domeny – biuro.lokalnie
2. Domena – biuro
3. Rola servera – dc
4. DNS Backend – BIND9_DLZ
5. Podajemy hasło administratora, hasło musi zawierać duże i małe litery, znaki specjalne oraz minimum 8 znaków
Jeżeli wszystko wykonaliśmy poprawnie powinna nam się pokazać konfiguracja naszej domeny Rola servera, nazwa hosta, nazwa NetBios domeny, DNS domeny i SID domeny. W katalogu /etc/samba/private utworzą się pliki naszej domeny. Koniecznie przed uruchomieniem Binda musimy edytować plik named.conf i wybrać odpowiednią opcja dlz dla naszego binda, haszując lub usuwajac hash w linii database …
Konfiguracja kerberosa – krb5
Z katalogu /etc/samba/private kopiujemy plik krb5.conf do katalogu /etc , nastepnie edytujemy plik i dopisujemy brakujące wiersze:
[libdefaults]
default_realm = BIURO.LOKALNIE
dns lookup_realm = false
dns_lookup_kdc = true
[realms]
BIURO.LOKALNIE= {
kdc = serwer.biuro.lokalnie
admin_server = serwer.biuro.lokalnie
default_domain = BIURO.LOCALNIE
}
Uruchamiamy binda oraz serwer samby
/etc/rc.d/rc.bind start
/usr/sbin/samba
Uwaga !! samy nie uruchamiamy poprzez rc.samba start ponieważ plik startowy uruchamia sambe jako zwykly serwer plików nie kontroler domeny
Pora na testowanie naszej domeny.
Polecenie kinit administrator zgłosi się żądaniem podania hasła administratora domeny , ustalonego wcześniej przy generowaniu kontrolera domeny, powinno zwrócić komunikat:
Password for administrator@BIURO.LOKALNIE:
Warning: Your password will expire in ….
Sprawdzenie poprawności działania DNS, polecenie host -t A serwer.biuro.loklanie powinno zwrócić:
dc.biuro.lokalnie has address IP_NASZEGO_SERWERA
Sprawdzenie poprawności udostępnianych zasobów , polecenie smbclient -L localhost -U% powinno zwrócić:
Domain=[BIURO] OS=[Unix] Server=[Samba 4.1.0]
Sharename Type Comment
——— —- ——-
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.0)
Domain=[BIURO] OS=[Unix] Server=[Samba 4.1.0]
Server Comment
——— ——-
Workgroup Master
——— ——-
W tej postaci możemy już logować się do domeny. Aby móc wykorzystać ACL do udostępnianych zasobów należy jeszcze dodać dla administratora uprawnienie do
SeDiskOperatorPrivilege , wykonujemy to poleceniem
net rpc rights grant 'BIURO\Domain Admins’ SeDiskOperatorPrivilege -Uadministrator
po podaniu hasła otrzymamy potwierdzenie poprawnie dodanego uprawnienia Successfully granted rights.