Sr-11-lab-1.0
Pakiet Samba
Kontroler domeny
Konfiguracja serwera
Poniższy plik smb.conf
jest przykładową konfiguracją kontrolera domeny (Primary Domain Controller — PDC).
[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:
- Przygotowanie pliku
/etc/samba/smb.conf
i uruchomienie serwera. - Przygotowanie skryptu startowego.
- 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$'
- 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
- 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
gdzieroot
jest administratorem sieci SMB. - 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
- Zdefiniowanie mapowania grup użytkowników na kontrolerze domeny:
net groupmap add unixgroup=users ntgroup="Uzytkownicy PDC"
Powyższa komenda spowoduje utworzenie grupyUzytkownicy PDC
, której członkami będą użytkownicy należący do uniksowej grupyusers
.
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 oprogramowaniawinbind
:
[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
- Przetestuj uwierzytelnianie użytkowników w oparciu o zewnętrzny serwer.
- 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.
- 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.