Active Directory – Samba (instalacja + podstawowa konfiguracja)

11 lipca 2015

Samba jest wolnym oprogramowaniem dostępnym na licencji GNU. Zapewnia bezpieczne, stabilne i szybkie usługi udostępniania plików i drukarek dla wszystkich klientów używających protokołu SMB/CIFS, wszystkie wersje DOS, Windows, OS/2, Linux i inne. Jest ważnym elementem integracji serwerów Linux/Unix ze środowiskiem Active Directory.

Aktualna stabilna wersja Samby (na dzień 2015-07-12)

SAMBA 4.2.2

Samba do ściągnięcia ze strony : https://www.samba.org/samba/download/

Główne zadania SAMBY :

– udostępnianie (współdzielenie) plików i drukarek

– podstawowy kontroler domeny

– obsługa LDAP

– serwer logowania dla sieci Windows

Dane używane do poniższej konfiguracji Active Directory :

Katalog instalacyjny Samby : /usr/local/samba/
Nazwa hosta AD : AD
Nazwa domenowa AD : samba.eproit.local
Nazwa Kerberos : SAMBA.EPROIT.LOCAL
Nazwa NetBIOS : SAMBA
Adres IP : 192.168.3.115
Rola serwera : Kontroler domeny (DC)
Hasło administratora domeny : haselko%G$^Y

Instalacja oparta na systemie Linux – Debian

Konfiguracja karty sieciowej :

/etc/network/interfaces
auto eth0
iface eth0 inet static

address 192.168.3.115
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.1


Konfiguracja mapowania :

/etc/hosts

dopisujemy :

192.168.3.115 samba.eproit.local

Konfiguracja nazwy hosta :

/etc/hostname

AD

#######################
Instalacja Samby
#######################

Instalacja ze źródeł :

Ściągamy :

wget https://www.samba.org/samba/ftp/stable/samba-4.2.2.tar.gz

wget https://www.samba.org/samba/ftp/stable/samba-4.2.2.tar.asc

wget https://www.samba.org/samba/ftp/samba-pubkey.asc

Wykonujemy :

gpg --import samba-pubkey.asc

gzip -d samba-4.2.2.tar.gz

gpg --verify samba-4.2.2.tar.asc

tar -xf samba-4.2.2.tar

Kompilacja Samby (Active Directory):

Instalujemy wymagane pakiety :

libkrb5-dev krb5-user python-dev build-essential

libacl1-dev libattr1-dev libblkid-dev libreadline-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev

libgnutls28-dev libcurl4-gnutls-dev

Podczas instalacji pakietu Kerberos, zostaniemy poproszeni o wpisanie :

– nazwy domeny np. eproit.local

– W okienku Kerberos servers for your realm

wpisujemy : nazwę domenową serwera np. samba.eproit.local

– W okienku Administrative server for your Kerberos realm

wpisujemy również : nazwę domenową serwera np. samba.eproit.local

Po rozpakowaniu archiwum samba-4.2.2.tar, przechodzimy do katalogu samba-4.2.2:

cd samba-4.2.2

Uruchamiamy ./configure :

./configure --enable-debug --enable-selftest

Jeśli konfiguracja zostanie zakończona wynikiem : ‘configure’ finished successfully (6m38.027s) przechodzimy do wykonania:

make

Po kompilacji pakietu przechodzimy do instalacji :

make install

Następnie zabieramy się za promowanie domeny (Provisioning The Samba Active Directory):

Sprawdzamy dostępne komendy jakie oferuje narzędzie Samby :

/usr/local/samba/bin/samba-tool -h

Aby zobaczyć opcje zarządzania domeną :

/usr/local/samba/bin/samba-tool domain -h

Jeżeli chcemy wypromować domenę, wybieramy : provision

Zapoznaj się z opcjami narzędzia Samba :

/usr/local/samba/bin/samba-tool domain provision -h

Korzystamy z następujących opcji :

(Realm) --realm=REALM

ustawienie nazwy obszaru. Musi być taka sama nazwa jak nazwa DNS komputera promującego domenę. Zawsze musi się składać z wielkich liter.

(Domain) --domain=DOMAIN

ustawienie nazwy domeny. Moze być to tylko jedno słowo, składające się z nie więcej niż 15 znaków. Nie można używać znaków : ! @ # $ % ^ & ( ) – _ ‘ { } . ~

(Server Role) --server-role=ROLE

rola serwera (domain controller | dc | member server | member | standalone). Domyślnie ustawiony dc (dla kontrolera domeny).

(DNS backend) --dns-backend=nazwa_serwera-BACKEND

Decydujemy czy chcemy używać wewnętrznego serwera DNS czy BIND9 jako DNS backend. Domyślnie jest używany wewnętrzny serwer DNS (SAMBA_INTERNAL).

(DNS forwarder IP address)

Określenie adresu IP serwera DNS, który powinien kierować zapytania DNS. Zwykle jest to adres IP serwera DNS twojego providera.

(Administrator password) --adminpass=PASSWORD

hasło administratora domeny. Hasło musi spełniać następujące wymagania :

– co najmniej 8 znaków

– musi się składać z małych i dużych liter, z cyfr i symboli

Jeśli Samba ma być pierwszym kontrolerem domeny, utwórz początkową bazę Active Directory.

Wszystkie komendy promowania domeny muszą być wykonywanie przez użytkownika mającego uprawnienia root.

Wykonujemy :

/usr/local/samba/bin/samba-tool domain provision --realm=SAMBA.EPROIT.LOCAL --domain=SAMBA --adminpass="haselko%G$^Y" --server-role=dc --dns-backend=SAMBA_INTERNAL

lub

/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive

Znaczenie parametrów :

--use-rfc2307

włącza rozszerzenie, które zezwala na łatwe zarządzanie użytkownikami i grupami za pomocą narzędzia Windows Active Directory Users and Computers (ADUC).

--interactive

użycie interaktywnego trybu promowania domeny

Jeśli pojawi się błąd podczas promowania domeny, usuń plik /usr/local/samba/etc/smb.conf i powtórz promowanie domeny.

Przykładowy wynik :

root@AD:/etc# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
Realm: SAMBA.EPROIT.LOCAL
Domain [SAMBA]: SAMBA
Server Role (dc, member, standalone) [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:                                                                                         SAMBA_INTERNAL
DNS forwarder IP address (write 'none' to disable forwarding) [192.168.3.115]:                                                                                         10.8.0.1
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=samba,DC=eproit,DC=local
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=samba,DC=eproit,DC=local
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              AD
NetBIOS Domain:        SAMBA
DNS Domain:            samba.eproit.local
DOMAIN SID:            S-1-5-21-2236878533-1328807313-448687847

Uruchomienie serwera Samba :

/usr/local/samba/sbin/samba

Sprawdzenie zainstalowanej wersji :

/usr/local/samba/sbin/samba -V

Sprawdzenie wersji klienta :

/usr/local/samba/bin/smbclient -V

################
Testowanie kontrolera domeny
################

Uruchomienie serwera Samba w trybie standardowym :

/usr/local/samba/sbin/samba

Aby Samba uruchamiała się automatycznie, zastosuj skrypt.

Skrypty startowe Samby można znaleźć na stronie :

https://wiki.samba.org/index.php/Samba4/InitScript

W przypadku systemu Debian :

1) ściągnij skrypt startowy ze strony :

http://anonscm.debian.org/gitweb/?p=pkg-samba/samba.git;a=blob_plain;f=debian/samba.samba-ad-dc.init;h=3132d2e367675f822342a5b7bc2e50c046aa3b8f;hb=HEAD

Zapisz zawartość w /etc/init.d/samba-ad-dc:

nano /etc/init.d/samba-ad-dc

2) (opcjonalnie)

Jeśli Sambę zainstalowano w katalogu /usr/local/samba …, wykonaj :

sed -i 's|/usr/sbin|/usr/local/samba/sbin|g' /etc/init.d/samba-ad-dc

Jeżeli plik konfiguracyjny znajduje się w katalogu: /usr/local/samba/etc …, wykonaj :

sed -i 's|/etc/samba|/usr/local/samba/etc|g' /etc/init.d/samba-ad-dc

Dla plików .pid, które się znajdują w /usr/local/samba/var/run, wykonaj :

sed -i 's|samba-tool|/usr/local/samba/bin/samba-tool|g' /etc/init.d/samba-ad-dc

3) Nadaj prawa :

chmod 755 /etc/init.d/samba-ad-dc

4) Dodaj skrypt do “autostartu” :

update-rc.d samba-ad-dc defaults

##################################
Testowanie kontrolera domeny
##################################

Sprawdzenie działania serwera Samba :

pgrep samba

Przykładowy wynik :

root@samba:/usr/local/samba/var/run# pgrep samba
385
389
390
391
392
394
395
396
397
398
399
400
402
403

Wypisane cyfry w kolumnach to numery serwisów.

Uruchom “smbclient” aby sprawdzić czy Samba udostępnia “netlogon” i “sysvol” (plik konfiguracyjny smb.conf)

/usr/local/samba/bin/smbclient -L localhost -U%

Przykładowy wynik :

root@samba:/usr/local/samba/var/run# /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[EPROIT] OS=[Windows 6.1] Server=[Samba 4.2.2]

        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk
        sysvol          Disk
        IPC$            IPC       IPC Service (Samba 4.2.2)
Domain=[EPROIT] OS=[Windows 6.1] Server=[Samba 4.2.2]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

Aby przetestować uwierzytelnianie, spróbuj połączyć się z “netlogon” używając konto Administratora domeny :

/usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
/usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%"haselko%G$^Y" -c 'ls'

Przykładowy wynik :

Enter Administrator's password:
Domain=[EPROIT] OS=[Windows 6.1] Server=[Samba 4.2.2]
  .                                   D        0  Fri Jul 10 15:19:50 2015
  ..                                  D        0  Fri Jul 10 15:23:33 2015

                99258888 blocks of size 1024. 92273280 blocks available

W przypadku problemów zapoznaj się z dokumentacja na stronie: https://wiki.samba.org/index.php/Samba_AD_DC_Troubleshooting

###################
Konfiguracja DNS
###################

Serwer DNS jest wymagany do poprawnego działania Active Directory.

Samba – wewnętrzny serwer DNS :

Domyślnie Samba używa wewnętrznego serwera DNS i nie jest wymagana dodatkowa konfiguracja. Dns forwarder został ustawiony podczas promowania domeny (provisioning). Można go zmienić w pliku smb.conf. Po zmianach wymagane jest przeładowanie Samby.

BIND9 DNS Backend :

Uaktywniony jest, jeśli wybrano „BIND9_DLZ“ podczas promowania domeny (provisioning). Dodatkowe instrukcje konfiguracyjne można uzyskać na stronie : https://wiki.samba.org/index.php/DNS_Backend_BIND

Konfiguracja pliku /etc/resolv.conf

Wykonujemy :

echo domain samba.eproit.local >> /etc/resolv.conf

#######################
Testowanie serwera DNS :
#######################

Wykonaj poniższe komendy :

$ root@AD:~# host -t SRV _ldap._tcp.samba.eproit.local.
_ldap._tcp.samba.eproit.local has SRV record 0 100 389 ad.samba.eproit.local.

 

$ root@AD:~# host -t SRV _kerberos._udp.samba.eproit.local.
_kerberos._udp.samba.eproit.local has SRV record 0 100 88 ad.samba.eproit.local.

 

$ root@AD:~# host -t A samba.eproit.local.
samba.eproit.local has address 192.168.3.115

W przypadku problemów, sprawdź logi.

Edytujemy plik smb.conf (opcjonalnie):

nano /usr/local/samba/etc/smb.conf
# Global parameters
[global]
        workgroup = EPROIT
        realm = eproit.local
        netbios name = SAMBA
        server role = active directory domain controller
        dns forwarder = 10.8.0.1

[netlogon]
        path = /usr/local/samba/var/locks/sysvol/eproit.local/scripts
        read only = No

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

###########################
Konfiguracja Kerberos
###########################

Po instalacji Kerberos został utworzony plik krb5.conf

nano /usr/local/samba/private/krb5.conf

 

[libdefaults]
        default_realm = SAMBA.EPROIT.LOCAL
        dns_lookup_realm = false
        dns_lookup_kdc = true

#########################
Testowanie Kerberos
#########################

– użyj narzędzie kinit

kinit administrator@SAMBA.EPROIT.LOCAL

root@AD:/usr/local/samba/private# kinit administrator@SAMBA.EPROIT.LOCAL
Password for administrator@SAMBA.EPROIT.LOCAL:
Warning: Your password will expire in 41 days on pią, 21 sie 2015, 22:26:21

– aby sprawdzić czy działa Kerberos, wykonaj :

klist
root@AD:/usr/local/samba/private# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SAMBA.EPROIT.LOCAL

Valid starting       Expires              Service principal
11.07.2015 00:26:59  11.07.2015 10:26:59  krbtgt/SAMBA.EPROIT.LOCAL@SAMBA.EPROIT.LOCAL
        renew until 12.07.2015 00:26:06

#############################
Zarządzanie Active Directory
#############################

Zarządzanie użytkownikami. Wykorzystanie narzędzia samba-tool :

Dostępne opcje :

/usr/local/samba/bin/samba-tool user -h

  add          - Utworzenie nowego użytkownika
  create       - Utworzenie nowego użytkownika
  delete       - Skasowanie użytkownika
  disable      - Wyłączenie użytkownika
  enable       - Włączenie użytkownika
  list         - Wylistowanie wszystkich użytkowników
  password     - Zmienienie hasła dla konta
  setexpiry    - Ustawienie wygaśnięcia konta użytkownika
  setpassword  - Ustawienie lub zresetowanie hasła dla konta użytkownika

Dostępne opcje przy tworzeniu nowego użytkownika :

/usr/local/samba/bin/samba-tool user add -h
--random-password? #wygenerowanie losowego hasła
--surname= #wpisanie nazwiska użytkownika
--initials= #inicjał użytkownika
--company= #firma użytkownika
--profile-path= #ścieżka do profilu
--script-path= #ścieżka do skryptu
--home-drive= #dysk domowy
--home-directory= #katalog domowy
--job-title= #tytuł zawodu
--mail-address= #adres mailowy

Przykłady :

/usr/local/samba/bin/samba-tool user add nowy_uzytkownik

/usr/local/samba/bin/samba-tool user delete nazwa_uzytkownika

/usr/local/samba/bin/samba-tool user list

/usr/local/samba/bin/samba-tool user disable nazwa_uzytkownika

Zarządzanie grupami :

Dostępne opcje :

 /usr/local/samba/bin/samba-tool group -h
  -h, --help  pokaz pomoc

  add            - Utworzenie nowej grupy
  addmembers     - Dodawanie użytkowników do grupy
  delete         - Skasowanie grupy
  list           - Wylistowanie wszystkich grup
  listmembers    - Wylistowanie wszystkich użytkowników z grup
  removemembers  - Usuwanie użytkowników z grup

Przykłady :

/usr/local/samba/bin/samba-tool group add nowa_grupa

/usr/local/samba/bin/samba-tool group delete nazwa_grupy

/usr/local/samba/bin/samba-tool group addmembers nazwa_grupy nazwa_uzytkownika

/usr/local/samba/bin/samba-tool group removemembers nazwa_grupy nazwa_uzytkownika

/usr/local/samba/bin/samba-tool group listmembers nazwa_grupy

/usr/local/samba/bin/samba-tool group listmembers nazwa_grupy | grep nazwa_uzytkownika

Przykład :

Tworzenie nowego użytkownika :

- użytkownik : tkowalski
- hasło : $towk%456
- użytkownik ma należeć do grupy "pracownicy"

/usr/local/samba/bin/samba-tool user add tkowalski
/usr/local/samba/bin/samba-tool group addmembers pracownicy tkowalski

Aby uzyskać więcej funkcjonalności zalecane jest używanie narzędzia Microsoft RSAT (Remote Server Administration Tools) na stacji roboczej z Windows.

Narzędzie można ściągnąć ze strony Microsoftu.

############################
Łączenie klientów z domeną
############################

System Windows :

np. W przypadku Windows XP

Logujemy się na konto z prawami administratora.

Przechodzimy do konfiguracji połączenia sieciowego. Ustawiamy adresy DNS

xp_conf_domena_1

xp_conf_domena_2

xp_conf_domena_3

xp_conf_domena_4

Konfigurujemy następnie połączenie z domeną.

xp_conf_domena_5

xp_conf_domena_6

xp_conf_domena_7

xp_conf_domena_8

xp_conf_domena_9

Logowanie użytkownika :

xp_logowanie_domena_1

xp_logowanie_domena_2

xp_logowanie_domena_5


Źródło :

https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/
https://wiki.samba.org/index.php/Main_Page

Zapraszam do komentowania !

Pomogłem ? Masz jakieś pytania ?

Napisz proszę komentarz 🙂

markos
Specjalizuję się w systemach komputerowych Windows oraz Linux. Oprócz wykonywanej pracy w zawodzie, informatyka jest moją pasją.

2
Dodaj komentarz

avatar
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Nachasztomekus Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
tomekus
Gość
tomekus

Przetestowałem i działa :). Czekam na jakieś inne możliwości 🙂

Nachasz
Gość
Nachasz

Bardzo pomocny materiał. Dziękuję Ci, że chciało Ci się napisać ten artykuł.