Samba jest popularnym oprogramowaniem typu open source, które może być używane jako kontroler domeny Active Directory. Dzięki temu użytkownicy systemów operacyjnych z rodziny Windows mogą się zalogować do sieci opartej na systemie Samba, korzystając ze swoich kont Active Directory. Samba pozwala na integrację z istniejącymi infrastrukturami Active Directory, dzięki czemu można uzyskać dostęp do zasobów sieciowych i zarządzać nimi w sposób centralny. Samba umożliwia również integrację z systemami Linux i macOS, co czyni go uniwersalnym narzędziem do zarządzania sieciami hybrydowymi.
Do wykonania zadania użyjemy jako serwera system Debian 11.6 oraz jako klienta Windows 10 pro. Serwer powinien mieć zainstalowaną i skonfigurowaną przynajmniej jedną kartę sieciową – w zadaniu użyjemy dwie, jedna będzie podłączona do internetu, natomiast druga będzie podłączona do sieci wewnętrznej. Natomiast w kliencie będzie jedna karta sieciowa w sieci wewnętrznej. Można skorzystać z usługi DHCP do automatycznej konfiguracji sieci na kliencie (Konfiguracja DHCP na Debianie + udostępnienie internetu) lub skonfigurować połączenia sieciowe statycznie.
Konfigurujemy sieć
Na serwerze ustawiamy dwie karty sieciowe:
– enp0s3 – połączenie (mostkowane) pobiera ustawienia sieci z naszego sieciowego routera,
– enp0s8 – połączenie (sieć wewnętrzna) statyczne ustawiamy wg własnych potrzeb
Następnie należy sprawdzić i ustawić poprawny adres domenowy dla naszego adresu ip.
Instalujemy Sambę
Możemy teraz uruchomić instalację samby oraz wszystkich niezbędnych pakietów do konfiguracji Active Directory Domain Services.
apt install acl attr samba samba-dsdb-modules samba-vfs-modules winbind krb5-config krb5-user smbclient bind9 dnsutils
Podczas instalacji na pytania konfiguracyjne odpowiadamy bez zmiany żadnych danych.
Następnie usuwamy defaultowy plik konfiguracyjny samby:
rm /etc/samba/smb.conf
Po tym zabiegu rozpoczynamy konfigurowanie samby jako kontroler domeny – w Windowsie ta czynność nazywa się „promuj serwer do roli kontrolera domeny” – wydajemy polecenie:
samba-tool domain provision --use-rfc2307 --interactive --option="interfaces=lo enp0s8" --option="bind interfaces only=yes"
Podczas konfiguracji, na trzy pierwsze pytania odpowiadamy naciskając klawisz enter, na ostatnie odpowiadamy BIND9_DLZ. Następnie dwa razy podajemy hasło administratora.
Po krótkiej chwili mamy skonfigurowaną sambe jako Active Directory Domain Controller.
Dodatkowe ustawienia
Następnie kopiujemy plik konfiguracyjny Kerberosa:
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
Plik powinien mieć taką postać:
[libdefaults]
default_realm = SZKOLA.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
SZKOLA.LOCAL = {
default_domain = szkola.local
}
[domain_realm]
brylka = SZKOLA.LOCAL
W kolejnym kroku konfigurujemy DNS – edytujemy plik /etc/bind/named.conf.options
. Plik powinien mieć zawartość:
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8;
1.1.1.1;
};
dnssec-validation auto;
auth-nxdomain no;
listen-on-v6 { any; };
listen-on port 53 { any; };
allow-query { any; };
tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
};
Następnie w pliku /etc/bind/named.conf.local dopisujemy linijkę:
include "/var/lib/samba/bind-dns/named.conf";
Na koniec poleceniem named-checkconf
sprawdzamy czy konfiguracja nie zawiera błędów. Jeśli nic się nie wyświetli, jest wszystko ok.
Edytujemy plik /etc/resolv.conf
wprowadzając następujące ustwienia:
domain szkola.local
search szkola.local
nameserver 10.0.0.1
Abu ustawienia te istniały także po restarcie serwera należy w pliku /etc/dhcp/dhclient.conf dodać dwie linijki:
supersede domain-name "szkola.local";
prepend domain-name-servers 10.0.0.1;
Aby ustawić oprogramowanie Samba tak, żeby automatycznie startowało wraz z uruchomieniem systemu operacyjnego, należy przeprowadzić następujące kroki:
systemctl disable smbd
Polecenie wyłącza usługę Samba (smbd) podczas startu systemu. Oznacza to, że serwer Samba nie będzie uruchamiany automatycznie po restarcie systemu.
systemctl disable nmbd
Polecenie wyłącza usługę NMB (NetBIOS Name Service) podczas startu systemu. Usługa ta jest częścią pakietu Samba i umożliwia rozpoznawanie nazw komputerów w sieci. Wyłączenie usługi oznacza, że funkcjonalność rozpoznawania nazw komputerów w sieci będzie wyłączona podczas startu systemu.
systemctl disable winbind
Polecenie wyłącza usługę Winbind podczas startu systemu. Usługa ta jest również częścią pakietu Samba i umożliwia integrację systemów Linux i Windows w sieci. Wyłączenie usługi oznacza, że funkcjonalność integracji systemów Linux i Windows w sieci nie będzie uruchamiana automatycznie po restarcie systemu.
systemctl unmask samba-ad-dc
Polecenie odblokowuje usługę samba-ad-dc, która umożliwia instalację Samba w trybie kontrolera domeny Active Directory. Komenda ta usuwa blokadę, która uniemożliwia uruchomienie usługi.
systemctl enable samba-ad-dc
Polecenie włącza usługę samba-ad-dc podczas startu systemu. Oznacza to, że usługa ta będzie automatycznie uruchamiana po restarcie systemu, a tym samym pozwoli na działanie Samba w trybie kontrolera domeny Active Directory.
Możemy teraz uruchomić ponownie serwer.
Dodajemy Windowsa do domeny
W Windowsie uruchamiamy Panel sterowania/System
Następnie przewijamy na dół okna i klikamy „Zmień nazwę tego komputera (zaawansowane)”.
Klikamy kolejno: „Zmień…” i na kolejnym okienku zaznaczamy „Domena:” oraz wpisujemy adres: szkola.
Po chwili musimy podać login i hasło – podajemy Administrator i hasło jakie ustawiliśmy w sambie.
Po podaniu poprawnych danych dostajemy komunikat o dodaniu maszyny do domeny szkola.local
Po restarcie systemu możemy zalogować się na konto Administratora domeny. W tym celu wybieramy „Inny użytkownik” – podajemy „Administrator@szkola.local” oraz hasło administratora AD DC.
Uruchamiamy wiersz poleceń (cmd) i wykonujemy polecenie:
DISM /Online /Get-Capabilities
Następnie odnajdujemy rekord AD DC i wydajemy kolejne polecenie:
DISM /Online /Add-Capability /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
Po instalacji możemy w Meny start odnaleźć: Użytkownicy i komputery usługi Active Directory.
W narzędziu tym możemy zarządzać np. użytkownikami Active Directory.
Podobnie w linii komend Debiana możemy narzędziem samba-tool zarządzać użytkownikami.
Zakończenie
Konfiguracja Samby jako kontrolera domeny Active Directory w systemie Debian jest procesem złożonym, ale możliwym do wykonania przy odpowiedniej wiedzy i staranności. Przejście przez kolejne kroki, od ustawienia sieci, poprzez instalację i konfigurację Samby, aż do podłączenia klienta Windows do domeny, pozwala na stworzenie w pełni funkcjonalnego środowiska AD. Dzięki temu można zarządzać użytkownikami i zasobami sieciowymi w sposób centralny, co jest szczególnie przydatne w złożonych sieciach hybrydowych. Pamiętajmy, że dokładne przestrzeganie procedur i dbałość o poprawne wprowadzanie ustawień są kluczowe dla prawidłowego działania systemu.
Super. Dziękuje, wszystko pięknie zadziałało a próbowałem z innych pomocy i nie wychodziło. A tu pięknie opisane i bez problemów
Dziękuję! Cieszę się, że mój opis pomógł w konfiguracji usługi.
Elegancko zadziałało „od kopa”.
Jedna rzecz mnie tylko zaskoczyło, w narzędziu „Użytkownicy i komputery Active Directory” nie ma możliwości dodawania Zasad Grup. Czy coś trzeba zmienić, podczas instalacji?
Trzeba innej „przystawki” używać, mianowicie „Zarządzanie zasadami grup”
Najpierw trzeba ją mieć:
z powershella uruchom:
DISM.exe /online /add-capability /CapabilityName:Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
Przystawkę uruchamia się: start->uruchom->gpmc.msc
Lub można użyć szukajki i uruchomić: gpmc.msc
lepiej nie używać domeny .local, lepiej użyć .lan
.local jest używany przez mdns co może (ale nie musi) powodować problemy
Czy próbował ktoś z was robić migracje domeny samba ad-dc na nową maszynę?
Też bym chętnie się dowiedział 🙂
Migracja jest prosta.
Instalujesz nową maszynę z czystą sambą (adresacje i nazwę domeny konfigurujesz po staremu) plik etc/hosts oraz resolv dobrze, żeby się zgadzał. Robisz provisioniong nowej domeny na serwerze. W tym momencie masz czystą nową domenę bez użytkowników. Później kopiujesz cały folder samby czasami to jest /var/lib/samba czasami usr/…/samba podmieniasz także plik etc/samba/smb.conf no i jeszcze trzeba zaktualizować etc/krb5.conf. Na koniec robisz czyszczenie:
samba-tool ntacl sysvolreset i samba-tool dbcheck z odpowiednimi opcjami –cross-ncs itd.
Możesz teraz podnosić wersję schematu i funkcjonalności domeny do nowej wersji.
Wszystko zrobione dokładnie zgodnie z instrukcją, sprawdzone kilka razy a mimo to podczas próby podłączenia do domeny błąd „Nie można skontaktować się z kontrolerem domeny…”
ten sam problem
W DNS komputera (ustawieniach karty sieciowej) musi być dodany adres DNS twojej domeny.