Synology, Samba 4 jako DC

W tym wpisie przedstawie jak uruchomić kontroler domeny (AD) w oparciu o Sambe 4.

Środowisko moje to DSM 4.1 wraz z zainstalowanym Debian Chroot-em, w którym to będziemy się bawić. Wszystko wykonywałem na DS112j więc zajeło mi to około 5 godzin.

Na początek zabijamy Sambe od Synology (lub dodajemy drugi IP do Synka – ale tego tutaj nie będzie).

Dalej musimy dodać atrubuty do partycji odpowiednie. Wiec z poziomu DSM jeszcze wpisujemy:


mount -o remount,user_xattr /
mount -o remount,user_xattr /volume1

Następnie warto zrobić upgrade Debiana.


chroot /volume1/@appstore/debian-chroot/var/chroottarget/ /bin/bash
apt-get update && apt-get upgrade

Mając gotowe środowisko zaczynamy od instalacji niezbędnych pakietów, oraz tych które uważam za przydatne:


apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev flex bison \
   python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user git vim-nox bind9

Pobieramy z Gita najnowszą wersje Samby:


cd /usr/src
git clone git://git.samba.org/samba.git samba-master

Teraz etap kompilacji i konfiguracji (to właśnie te 5 godzin):


cd samba-master
./configure
make
make install

Teraz konfigurujemy środowisko (1.2.3.4 zastępujemy IP synka, pozostałe parametry też samodzielnie trzeba dostosować):


/usr/local/samba/bin/samba-tool domain provision --host-name=moj_serwer --realm=dom.moja_domena.pl --domain=DOM --adminpass='Bard0Silne&Haslo123' --server-role=dc --use-ntvfs --host-ip=1.2.3.4 --dns-backend=BIND9_FLATFILE

Teraz edytujemy konfiguracje, plik /usr/local/samba/etc/smb.conf:


vim /usr/local/samba/etc/smb.conf

Zawartość pliku mojego:

[global]
    workgroup = DOM
    realm = dom.moja_domena.pl
    netbios name = moj_serwer
    server role = active directory domain controller
    interfaces = 1.2.3.4
    bind interfaces only = yes
    server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
    dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
    posix:eadb = /usr/local/samba/private/eadb.tdb
    
[netlogon]
    path = /usr/local/samba/var/locks/sysvol/dom.moja_domena.pl/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No

Drobne info: W konfiguracji bindujemy tylko adres IP 1.2.3.4, więc gdy dodamy drugi adres IP do synka mogą równocześnie działać dwie samby.

Teraz konfiguracja Kerberosa i serwera DNS (1. albo na routerze w DHCP wskażemy aby dla komputerów DNS-em by synek albo recznie konfigurjemy DNS na karcie sieciowej w komputerze wskasująć synka)


cp /usr/local/samba/private/krb5.conf /etc/
vim /etc/bind/named.conf

do konfiguracji BIND-a dodajemy:


include "/usr/local/samba/private/named.conf";

oraz nadajemy odpowiednie uprawnienia (w teście samba działa jako root wiec BIND musi mieć możliwość odczytu strefy i konfiguracji):


chmod 777 -R /usr/local/samba/private/dns

restartujemy DNS oraz uruchamiamy sambe


/etc/init.d/bind9 restart
/usr/local/samba/sbin/samba

I w zasadzie na tą chwile to wszystko. Brakuje napewno skryptu startowego samby.
Udało mi się podczepić w komputery do domeny oraz przy pomocy przestawki z Windows skonfigurować aby profile były trzymane na synku (dodatkowa konfiguracja samby).

Przykład dodania udziału w pliku smb.conf


[test]
path = /volume1/test
read only = no

Dodajemy użytkownika (wymagane silne hasło):


/usr/local/samba/bin/samba-tool user add grzenio
New Password:
Retype Password:
User 'grzenio' created successfully