Sr-11-lab-1.0

From Studia Informatyczne

Spis treści

Pakiet Samba

Kontroler domeny

Konfiguracja serwera

Poniższy plik smb.conf jest przykładową konfiguracją kontrolera domeny (Primary Domain ControllerPDC).

[global]
   workgroup = TestDomain 

   # NetBIOS
   os level = 33 
   domain master = yes 
   local master = yes 
   preferred master = yes 

   # obsługa domeny
   domain logons = yes 
   # skrypt do logowania użytkownika
   logon script = login.bat 
   # katalog z profilem użytkownika
   logon path = \\%L\%U\WinProfile
   # nazwa dysku reprezentującego katalog domowy
   logon drive = H: 

[netlogon] 
   path = /var/lib/samba/netlogon
   writable = no 
   comment = Skrypty logowania

[homes] 
   comment = Katalog domowy użytkownika %U
   browseable = no 
   writable = yes 

Przykładowy skrypt login.bat logujący użytkowników do systemu:

@echo off
net time \\serwer /set /yes
net use H: /home
net use X: \\serwer\programy
start iexplore.exe

Skrypt do logowania powinien być poprawnym plikiem tekstowym dla systemów Windows (zakończenia linii). Plik taki można przygotować edytorem vim, po wykonaniu komendy :set fileformat=dos.

Skonfigurowanie kontrolera domeny wymaga wykonania następujących czynności:

  1. Przygotowanie pliku /etc/samba/smb.conf i uruchomienie serwera.
  2. Przygotowanie skryptu startowego.
  3. Założenie konta maszynowego dla każdej stacji roboczej. Konto maszynowe ma taką nazwę jak nazwa komputera z dodanym znakiem "$" na końcu:
    useradd 'spica$'
  4. Ustawienie hasła dla administratora sieci SMB na kontrolerze domeny (użytkownik, który ma prawo modyfikować plik z hasłami /etc/samba/smbpasswd):
    smbpasswd -a root
  5. Dodanie stacji roboczych do domeny poprzez wpisanie nazwy domeny w ustawieniach systemów Windows. Dodanie komputera powoduje zainicjowanie hasła na koncie maszynowym (w pliku smbpasswd). Dodanie uniksowej stacji roboczej do domeny wymaga wykonania komendy:
    net rpc join -U root
    gdzie root jest administratorem sieci SMB.
  6. Założenie kont dla użytkowników. Każdy użytkownik musi mieć zdefiniowane zarówno konto uniksowe, jak i hasło dla protokołu SMB:
    useradd user1
    smbpasswd -a user1
  7. Zdefiniowanie mapowania grup użytkowników na kontrolerze domeny:
    net groupmap add unixgroup=users ntgroup="Uzytkownicy PDC"
    Powyższa komenda spowoduje utworzenie grupy Uzytkownicy PDC, której członkami będą użytkownicy należący do uniksowej grupy users.

Uwierzytelnianie użytkowników SMB

Użytkownicy protokołu SMB posiadający lokalne konta w systemie Unix, mogą być uwierzytelniani przez kontroler domeny. Wymaga to ustawienia następujących opcji w pliku /etc/smb.conf:

[global]
   security = server
   password server = 192.168.10.12
   ...

Alternatywą jest podłączenie stacji roboczej do domeny (komendą net rpc, patrz wyżej) i modyfikacja konfiguracji:

[global]
   workgroup = TestDomain
   security = domain

Parametr workgroup przyjmuje w tym przypadku wartość zgodną z nazwą domeny.

Uwierzytelnianie użytkowników uniksowych

Uwierzytelnianie użytkowników uniksowych może być realizowane za pośrednictwem zewnętrznego serwera PDC udostępniającego hasła użytkowników. Rozwiązanie to wykorzystuje moduł Pluggable Authentication Module (PAM) o nazwie pam_smb. Konfiguracja wymaga zmian w konfiguracji PAM, w szczególności — w przypadku logowania do systemu — w pliku /etc/pam.d/login:

#%PAM-1.0
auth     required       pam_securetty.so
auth     required       pam_nologin.so
auth     sufficient     pam_unix2.so
auth     required       pam_smb_auth.so cachetime=20 use_first_pass
...

Plik /etc/pam_smb.conf zawiera informacje o domenie i nazwach serwerów kontrolujących domenę:

UNIXLAB     nazwa domeny
sirius      główny kontroler domeny
spica       zapasowy kontroler domeny

Pakiet Winbind

Pakiet Samba w wersjach 2.2.x i nowszych umożliwia bezpośrednie pobieranie informacji o użytkownikach z serwera PDC bez konieczności tworzenia użytkowników w systemie Unix. Funkcjonalnie jest to rozwiązanie analogiczne do systemu NIS.

Uwaga: podczas konfiguracji oprogramowania winbind trzeba wyłączyć usługę nscd (buforowanie informacji katalogowych).

Konfiguracja

Konfiguracja stacji roboczej, która ma być dołączona do kontrolera domeny wymaga wykonania następujących czynności:

  • Uzupełnienie konfiguracji w pliku smb.conf o ustawienia dla oprogramowania winbind:
[global]
   ..
   idmap uid = 10000-20000
   idmap gid = 10000-20000
   template homedir = /home/%D/%U
   template shell = /bin/bash

gdzie %D oznacza nazwę domeny.

  • Wskazanie na źródła informacji o użytkownikach w systemie w pliku /etc/nsswitch.conf:
passwd:  files winbind
group:   files winbind
  • Modyfikacja konfiguracji modułów PAM dla odpowiednich usług. Np., w przypadku logowania interaktywnego należy zmienić zawartość pliku /etc/pam.d/login:
#%PAM-1.0
auth     required       pam_securetty.so
auth     required       pam_nologin.so
auth     sufficient     pam_unix2.so
auth     required       pam_winbind.so use_first_pass
  • Dołączenie stacji roboczej do domeny, z której pobierane są dane (patrz punkt).
  • Uruchomienie procesu usługowego winbindd:
# winbindd

Poprawność pracy serwera winbind można sprawdzić programem wbinfo(1) pobierającym informacje z tego serwera. Zakładając dołączenie do domeny unixlab:

# wbinfo -u
UNIXLAB\root
UNIXLAB\user1
# wbinfo -g
...
UNIXLAB\Uzytkownicy PDC

Poprawność konfiguracji przełącznika usług katalogowych (plik /etc/nsswitch.conf) można sprawdzić wykonując komendę getent:

# getent passwd
...
UNIXLAB\root
UNIXLAB\user1

która powinna zwrócić listę wszystkich użytkowników: systemowych i pobranych z PDC. Ostateczną weryfikacją jest możliwość zalogowania się na konto użytkownika sieciowego. Podczas logowania należy podać całą nazwę użytkownika, łącznie z domeną, np.: UNIXLAB\user1.

Odwoływanie się do użytkowników domenowych może być uproszczone poprzez przyjęcie domyślnej nazwy domeny przez oprogramowanie winbind. Wymaga to ustawienia dodatkowej opcji w sekcji [global]:

winbind use default domain = yes

Pozwala to na podawanie nazwy użytkowników z pominięciem nazwy domeny, czyli np. user1.

Katalogi domowe użytkowników uniksowych

Katalogi domowe użytkowników mogą być automatycznie dołączane z kontrolera domeny za pośrednictwem modułu PAM o nazwie pam_mount. Wymaga go konfiguracji odpowiedniego modułu PAM, np. w przypadku logowania interaktywnego będzie to plik /etc/pam.d/login:

#%PAM-1.0
auth      required     pam_securetty.so
auth      required     pam_nologin.so
auth      optional     pam_mount.so
auth      sufficient   pam_winbind.so  use_first_pass
auth      required     pam_unix2.so    use_first_pass
 
session   required     pam_unix2.so    none
session   optional     pam_mount.so

Moduł pam_mount wymaga również wskazania katalogów, które powinny zostać dołączone. Wskazanie to jest zapisane w pliku /etc/security/pam_mount.conf:

volume * smb unixlab & /home/& \
uid=&,gid=students,dmask=0700,fmask=0700,workgroup=TestDomain - -

Alternatywnym rozwiązaniem jest tworzenie katalogów domowych "w locie" z wykorzystaniem modułu pam_mkhomedir. Konfiguracja modułu wymaga dodania do odpowiedniego pliku z katalogu /etc/pam.d zapisu:

session   required     pam_mkhomedir.so skel=/etc/skel/ umask=0022

Zadania

  1. Przetestuj uwierzytelnianie użytkowników w oparciu o zewnętrzny serwer.
  2. Skonfiguruj kontroler domeny i dołącz do niego system Windows oraz Unix. Przetestuj działanie wędrujących profili użytkowników (ang. roaming profiles) logując się do różnych stacji Windows w tej samej domenie. Przetestuj działanie skryptu logowania.
  3. Uruchom usługę Winbind na stacji Unix importując konta użytkowników z kontrolera domeny. Skonfiguruj dostęp do katalogów domowych użytkowników.