| Siec TCP/IP || Otoczenie Sieciowe || Poczta || Usnet || FTP || Konto Shellowe || Czat || IRC || Serwer PROXY |

Otoczenie sieciowe - Sieć SMB

utworzono: 27/07/2003 :: modyfikacja: 01/05/2008
autor: Marcin Moczkowski :: glappo (at) banita (dot) pl

Domeny NT - Opis Cech i Konfiguracja Samby jako PDC

Cechy domen NT

Domeny NT powstały w celu zcentralizowania zarządzania komputerami i użytkownikami w sieci Microsoft Networks w świecie Windows (bynajmniej tak było początkowo, zanim nie powstała Samba), czyli w popularnym Otoczeniu Sieciowym. Sama idea centralizacji sieci nie jest nowa, wcześniej powstał m.in. w podobnym celu w świecie systemów Unix system NFS, następnie firma Novell stworzyła zarządzanie siecią oparte o ich własny system czyli Netware Novell.

Istnienie domeny NT umożliwia nam zcentralizowanie zarządzania użytkownikami w sieci i wszelkimi prawami z tym związanymi Nie musimy już na każdym komputerze który cokolwiek udostępnia tworzyć kont. Wystarczy utworzyć te konto w domenie NT i właśnie przy jej użyciu autentyfikować, a przez to nadawać uprawnienia do np. udziałów. Dodatkowe zalety są widoczne już przy samym logowaniu do domeny NT, które umożliwia użycie zcentralizowanych skryptów logowania, które np. mapują dyski sieciowe, synchronizują czas lub też profile mobilne (przechodnie). W systemach Windows 95/98/Me jest jeszcze jedna zaleta, zauważ, że w tych systemach nie ma nieautoryzowanych użytkowników. Jeśli loguje się nowy użytkownik system poprosi o wpisanie danych (w tym hasła) i o te dane będzie od tej pory autoryzował. W domenie NT autoryzacja następuje na serwerze pełniącym role kontrolera domeny, więc nie można sobie samemu "wymyślić" użytkownika, który system zaakceptuje. Po prostu jeśli nie nasz poprawnych  danych konta, to nie jesteś w stanie się zalogować do komputera dołączonego do domeny NT.

Domena NT musi posiadać serwer pełniący role Podstawowego jej Kontrolera (PDC), może też istnieć Zapasowy Kontroler Domeny (BDC). Na PDC są zakładane i utrzymywane konta użytkowników domeny, BDC jest kopią zapasową PDC, która w razie jego awarii przejmuje na ten czas jego role. Obecnie istnieją dwa rodzaje domen NT, w uproszczeniu wygląda to tak:

  • Domeny NT oparte o Windows NT 4.0, cechuje je płaska struktura, tak jak system nazewnictwa netbios o które m.in. są oparte. Współpracują z wszystkimi systemami rodziny Windows oraz pakietem Samba w wersji 2.0/2.2/3.0 oraz Samba TNG. Kontrolerem takiej domeny może być serwerowa wersja systemu Windows NT 4.0/2000/2003 oraz Samba 2.0/2.2/TNG/3.0 (tylko jako PDC). Domeny te są z reguły wystarczające dla małych i średnich sieci.

  • Domeny NT oparte o Windows 2000 lub 2003 ściśle powiązane z usługami katalogowymi Active Directory, struktura tutaj ma charakter drzewiasty tak jak system nazewnictwa DNS, z którym jest te domeny powiązane (nawet nomenklatura nazewnictwa w Active Directory zawiera słowa: drzewa, liście las). Współpracują z systemami Windows 2000/XP/2003, pakietem Samba 3.0 oraz częściowa współpraca z Windows 95/98/Me i NT 4.0 SP 6a, po zainstalowaniu rozszerzenia (Active Directory Client Extensions for Windows 9598 and Windows NT 4.0). Kontrolerem takiej domeny może być serwerowa wersja systemu Windows 2000/2003, trwają prace w przystosowaniu pakietu Samba. Domeny te są z reguły są odpowiednie dla dużych sieci korporacyjnych.

Samba 2.2/3.0 jako Podstawowy Kontroler Domeny NT (PDC)

Jeśli postanowiłeś stworzyć we własnej sieci domenę NT w stylu NT 4.0, możesz do tego użyć darmowego pakietu Samba w wersji 2.2/3.0 (możesz też użyć Samba TNG, ale nie zostało to ujęte w tym opisie) oraz jakiegoś systemu Unix, np. Linux. Serwer oparty o Sambę 2.2.x mógł pełnić rolę kontrolera domeny NT dla klientów Windows 95/98/Me muszą być spełnione warunki:

  • Samba musi być jedynym kontrolerem domeny w tej grupie roboczej. Wynika to z tego że pakiet Samba 2.2.x potrafi działać tylko jako PDC.

  • Samba musi korzystać z zabezpieczeń na poziomie użytkownika (opcja Samby security = user).

  • W sieci musi być serwer odwzorowywania nazw czyli w skrócie WINS, może być on oparty na Sambie lub Windows NT

  • Dodatkowo żeby Samba mogła być kontrolerem domeny dla klientów Windows NT/2000/XP musi używać kodowanych haseł (zalecane ale nie konieczne w przypadku klientów Windows 95/98/Me) i muszą być zakładane konta zaufanych maszyn tylko dla tych wersji systemów Windows.

Poniżej została przedstawiona konfiguracja zawarta w pliku smb.conf dla Samby 2.2/3.0 jako Podstawowego kontrolera domeny NT dla klientów wszystkich wersji Windows oraz Samby. Dużym ułatwieniem przy dołączaniu klientów Windows z rodziny NT jest zawarta tutaj opcja "add user script" lub "add machine script" (zależnie od wersji Samby) wraz z przypisanym jej parametrem, która powoduje zakładanie automatyczne kont zaufanych maszyn dla tych systemów. Dlatego wystarczy tylko dodać wcześniej "zwykłego" użytkownika do systemu Unix (passwd) i Samby (smbpasswd), tak jak dla Windows 95/98/Me. W poniższej konfiguracji zostały też zdefiniowane inne rzeczy takie jak, skrypt logowania i  katalogi domowe użytkowników. Oczywiście możesz skopiować ten plik tylko wywal z niego tłumaczenia po prawej zaznaczone na czerwono.

---------------- plik konfiguracyjny smb.conf dla Samby 2.2/3.0 jako PDC ------------
[global]
# podstawowe opcje konfiguracji serwera
netbios name = ARCHIWUM
server string = ARCHIWUM
workgroup = WARIACI
guest account = archiwum
# uwierzytelnianie 
security = user
encrypt passwords = yes
update encrypted = No
smb passwd file = /etc/samba/smbpasswd
unix password sync = no

# konta maszyn Samba 2.2
add user script = /usr/sbin/useradd -d /dev/null -g machines -c 'Konto Maszyny %I' -s /bin/false -M %u 

# konta maszyn Samba 3.0
add machine script = /usr/sbin/useradd -d /dev/null -g machines -c 'Konto Maszyny %I' -s /bin/false %u 
nt acl support = no
map to guest = Bad User
domain logons = yes
logon script = logon.bat
# opcje logów i rejestrowania
log file = /var/log/samba/log.%I
max log size = 50
log level = 2
# opcje przeglądarki, domeny, serwera czasu 
os level = 200
domain master = yes 
local master = yes
prefered master = yes
time server = yes
wins support = yes
# profile mobilne
logon home = \\%L\%U\profile
logon path = \\%L\%U\profile
# polskie znaczki Samba 2.2
; character set = ISO8859-2
; client code page = 852

# polskie znaczki Samba 3.0
; unix charset = ISO8859-2
; dos charset = CP852
# opcje sieciowe
interfaces = 192.168.1.1 127.0.0.1
hosts allow = 192.168.1.
bind interfaces only = yes
# Skrypty Logowania
[netlogon]
path = /etc/samba/logon
comment = Usługa logowania domenowego
guest ok = no
browseable = no
write ok = no
# Katalogi Domowe Użytkowników
[homes]

comment = Katalog Domowy
guest ok = no
browseable = no
write ok = yes
<< deklaracja sekcji ustawień globalnych

<< nazwa komputera w sieci
<< opis komputera widoczny obok nazwy netbioswej
<< grupa robocza komputera 
<< konto w systemie używane przez dostęp gościny

<< metoda zabezpieczeń, tutaj na poziomie użytkownika
<< włącza kodowanie haseł
<< przydatne tylko przy migracji z haseł niekodowanych
<< położenie pliku z baza użytkowników i haseł
<< wyłącza synchronizacje haseł samby i systemu


<< konta maszyn przy podłączaniu do domeny będą automatycznie zakładane
na serwerze z Sambą 2.2

<< konta maszyn przy podłączaniu do domeny będą automatycznie zakładane na serwerze z Sambą 3.0


<< w tym przypadku umożliwia poprawny dostęp gościny
<< umożliwia logowania domenowe
<< skrypt logowania

<< położenie logów z podziałem na klienty po adresie IP
<< maksymalna wielkość logów podana w KB
<< poziom logowania


<< "ważność" systemu w sieci
<< główna przeglądarka domeny
<<
główna przeglądarka lokalna
<< Samba jako preferowana przeglądarka
<< Samba jako serwer czasu
<< Samba jako serwer WINS

<< ścieżka dla profili dla Windows 95/98/98SE/Me
<<
ścieżka dla profili dla Windows NT4/2000/XP/2003
opcje kodowanie znaków dla Samby 2.2:
<< po stronie serwera gdzie działa Samba
(Unix)
<<
po stronie klienta (np. Windows)
opcje kodowanie znaków
dla Samby 3.0:
<< po stronie serwera gdzie działa Samba (Unix)
<< po stronie starszych klientów (np. DOS/Windows 9x)

<< interfejsy sieciowe na których nadaje samba
<< zezwolenie tylko dla kompów z tymi adresami
<< na reszcie interfejsów samba nawet się nie rozgłasza


<< deklaracja udziału skryptów logowania domenowego
<< ścieżka udostępnionego udziału
<< komentarz udziału
<< zakaz wjazdu dla gości
<< zasób standardowo niewidoczny
<< bez możliwości zapisu w udziale

<< deklaracja udziału katalogów domowych
<< komentarz udziału
<<
zakaz wjazdu dla gości
<<
zasób standardowo niewidoczny
<< umożliwienie zapisu w udziale

------------------------------------------------------------------------------------

Skrypt logowania domenowego

Teraz tworzymy skrypt logowania czyli pliczek logon.bat wskazany przez opcje "logon script = logon.bat" w smb.conf, który wyląduje w udziale netlogon i umożliwi mapowanie dysków sieciowych oraz synchronizacje czasu z serwerem.

UWAGA: Plik logon.bat utwórz pod systemem Windows i potem wrzuć go na serwer, wynika to z tego że musi on zawierać windowsowe zakończenia wiersza, a nie uniksowe.

--- skrypt logowania logon.bat -----

# Skrypt logowania do domeny
echo Ustawiam aktualny czas
net time \\archiwum /set /yes
echo Mapuje stacje sieciowe na udziały serwera Archiwum
net use m: \\archiwum\programy


----------------------------------------

Skrypt ten będzie się wykonywał na komputerach logujących się do domeny z prawami logującego się użytkownika.

Mapowanie katalogów domowych

W skrypcie logowania domenowego (logon.bat) możemy umieścić komendę mapowania katalogów domowych użytkowników domenowych. Jako że użyjemy tutaj zmiennej "homes" nie będzie problemów wynikających z tego że każdy użytkownik ma katalog domowy o innej nazwie.

--- skrypt logowania logon.bat -----

# Skrypt logowania do domeny
echo Ustawiam aktualny czas
echo Mapuje katalog domowy użytkownika na serwerze Archiwum
net use x: \\archiwum\homes

----------------------------------------

Zauważ że przy powyższym wpisie w skrypcie logowania katalog domowy będzie się mapował podwójnie w Windows  z linii NT czyli NT 4.0/200x/xp. Gdyż w tych Windowsach robi "się samo" a raz robić będzie się przez skrypt logowania.
Za te "robienie się samo" odpowiada w sambie (w smb.conf) opcja:
logon drive = Z:

Jak jej nie masz wpisanej (pewno tak jest) to jest zdefiniowana jak wyżej, oczywiście ma ona zastosowanie przy logowaniu się do domeny tak samo jak skrypt lokowania z netlogon. Nie jest to jakiś urok samby ale domen NT. Rozwiązania masz dwa:

  • wyczyścić powyższą opcje, czyli w pliku smb.conf wpisz po prostu tylko:
    logon drive =
    ale nie jestem pewny czy zadziała, zerknij na testparm czy to przełknie

  • uzależnić skrypt logowania od platformy systemowej klienta, czyli dla win9x z mapowaniem homes, a dla WinNT bez mapowania homes bo i tak samo się to zmapuje. Samo uzależnienie robisz dzięki zmiennej Samby %a, która może przybrać postać: Samba, UNKNOWN, WfWg, Win2K, Win95, WinNT. Warto żebyś użył poza dwoma postaciami zmiennych co Ci potrzebne na pewno (Win2K, Win95), również UNKNOWN bo czasem rożnie bywa. Owe uzależnienie od %a, robisz na co najmniej dwa sposoby:

    • bawiąc się ta ścieżką
      [netlogon]
      path = /etc/samba/logon/%a

    • bawiąc się nazwa pliku/skryptu logowania
      logon script = %a.logon.bat
      oczywiście zakładam ze wiesz ze odpowiednie pliki/katalogi trzeba dla zmiennej %a wpierw utworzyć

Dodawanie użytkowników domenowych 

Użytkownik domenowy to taki który ma konto na kontrolerze domeny NT, w tym wypadku na Sambie. Wystarczy że dodasz użytkownika do systemu i do bazy użytkowników Samby (w przypadku używania kodowanych haseł tak jak tutaj). Tak dodajemy użytkownika typek do systemu na serwerze gdzie jest Samba:

useradd -c "Użytkownik Samby" -s /bin/false -g smbuser typek

Jak widać użytkownik ten (typek) nie posiada powłoki systemowej, bo i po co, oraz został przypisany odpowiedniej grupy (smbuser), która musi juz istnieć w systemie Unix. Tak dodajemy użytkownika typek do bazy użytkowników Samby (smbpasswd) i nadajemy mu hasło:

smbpasswd -a typek

Dodawanie kont maszyn dla Windows z rodziny NT

Jeśli chcemy móc dodawać do domeny NT klienty Windows z rodziny NT, należy dodać przy użyciu smbpasswd użytkownika z prawami administracyjnymi systemu czyli np. root. Tylko taki użytkownik może dodawać klienty Windows NT/2000/XP do domeny NT, zakładając im konta zaufanych maszyn (w naszym przypadku automatycznie). I właśnie m.in. z powodu że użytkownik root musi być dodany do użytkowników Samby należy wyłączyć synchronizacje haseł  miedzy bazą Samby (smbpasswd), a systemem (passwd), przy pomocy opcji w smb.conf "unix password sync = no". Konta maszyn dodawane są automagicznie podczas dodawania Windows z rodziny NT do domeny przez użytkownika root, dzięki wpisowi w smb.conf w postaci:

Dla Samby 2.2 wpis ten wygląda tak:
add user script = /usr/sbin/useradd -d /dev/null -g machines -c 'Konto Maszyny %I' -s /bin/false -M %u 

Dla Samby 3.0 wpis ten wygląda tak:
add machine script = /usr/sbin/useradd -d /dev/null -g machines -c 'Konto Maszyny %I' -s /bin/false %u 

Zauważ że konta maszyn będą przypisane do odpowiedniej grupy (machines), która musi juz istnieć w systemie Unix. Konto dla użytkownika domenowego musisz utworzyć jak wcześniej. Konta maszyn zresztą tez możesz tworzyć ręcznie za każdym razem kiedy tego potrzebujesz, chociaż jest to mozolne ale możesz nie chcieć używać opcji `add user script` lub `add machine script`, wtedy więc klepiesz w konsoli gdzie jest Samba:

useradd -c "Konto Maszyny" -s /bin/false -g machnes komputer$

Najważniejsze to to że konto maszyny musi być dodane do systemu ze znakiem dolara na końcu nazwy ($), a nazwa to oczywiście ma być nazwa nebiosowa maszyny jaką chcemy dodać. Jak widać konto maszyny nie posiada powłoki systemowej, bo i po co, oraz zostało przypisane odpowiedniej grupy. Tak dodajemy konto maszyny "komputer" do bazy użytkowników Samby (smbpasswd):

smbpasswd -a -m komputer

Zauważ, że teraz nie został dodany znak dolara ($) ale za to trzeba użyć przełącznika -m. Lub to samo dla Samby 3.0:

pdbedit -a -m -u komputer

Profile mobilne

Jedną z podstawowych zalet wg. niektórych logowania do domeny NT są tzw. profile wędrujące czy jak kto woli mobilne. Pozwalają one dla użytkowników systemów Windows używać swoich ustawień programów i systemu na rożnych komputerach w tej samej sieci pod warunkiem zalogowania się do tej samej domeny NT z tym samym użytkownikiem. Trzeba zaznaczyć że systemy Windows z rodziny 9x mają inna format profilu użytkownika od Windows z rodziny NT, dlatego miejsca składowania tych profili są kontrolowane przez dwa parametry wskazujące odpowiednie ścieżki UNC systemom Windows (czyli w stylu \\Serwer\Katalog\Użytkownik). Oczywiście można próbować używać mieszanych profili ale może być tego różny skutek. Standardowo profile mobilne są włączone w Sambie, wartości domyślne dla tych opcji to:

logon home = \\%N\%U << domyślna ścieżka dla profili dla Windows 95/98/98SE/Me
logon path = \\%N\%U\profile << domyślna ścieżka dla profili dla Windows NT4/2000/XP/2003

Zmienna %N oznacza nazwę serwera NIS twojego katalogu domowego uzyskanego z twojego wpisu NIS auto.map. Jeśli Samba nie została skompilowana z opcją --with-automount oznacza to to samo co %L czyli nazwa NetBIOS serwera. Natomiast zmienna %U oznacza nazwę użytkownika sesji, nazwę którą klient chciał, niekoniecznie taka sama jaką otrzymał.

Owe ścieżki podawane są formacie UNC czyli SMB (czyli w stylu \\Serwer\Katalog\Użytkownik), dzięki temu możesz profile skierować na inny serwer przeznaczony tylko do przechowywania profili. Powyższe domyślne rozwiązanie powoduje przechowywanie profili mobilnych w katalogach domowych użytkowników na serwerze PDC, co nie zawsze jest najlepszym rozwiązaniem. Zalecanym rozwiązaniem jest umieszczenie katalogu z profilami w oddzielnym udostępnieniu. Pozwala to na kontrolowanie uprawnień dostępu (czyli zwiększającym poufność i bezpieczeństwo) oraz umożliwiającym ewentualną prosta migracje oraz tworzenie kopii zapasowych profili. W tym celu ustaw opcje profili jak poniżej w smb.conf:

logon home = \\%L\Profiles\%U
logon path = \\%L\Profiles\%U

A utworzenie udostępnienia dla profili mobilnych jak poniżej

[Profiles]
path = /home/profiles
browseable = no
guest ok = yes
# moduł VFS sprawdzający pilnujący praw 0700 dla danego użytkownika
vfs objects = fake_perms

Moduł VFS dla Samby 3.0 o nazwie fake_perms kontroluje czy pliki i katalogi profili mobilnych są ustawione tylko do odczytu.. Więcej możesz poczytać o nim w dziale Zarządzanie zasobami udostępnionymi - opis dla Samba/Unix.

Wyłączenie profili mobilnych można zrobić generalnie na dwa sposoby:

Założenia systemowe

Jedną z zalet tworzenia domen NT jest scentralizowane zarządzanie złożeniami systemowymi (Polityką systemu i kont użytkowników) na komputerach klienckich czyli członkach domeny. Polega to na umieszczeniu odpowiedniego pliku dla danego systemu operacyjnego z założeniami systemowymi w katalogu głównym udziału netlogon na PDC.

Windows 95/98/Me

Dla systemów Windows 95/98/Me plik z założeniami systemowymi który należy umieścić w netlogon nazywa się Config.POL. Ten plik należy stworzyć za pomocą programu Poledit.exe czyli Edytora założeń systemowych. Jest on dostępny na cd instalacyjnym Windows 98 w katalogu tools/reskit/netadmin/poledit. Więcej na ten temat możesz poczytać w dziale Użytkownicy i uprawnienia - Windows 95/98/Me

Windows NT 4.0

W systemie Windows NT 4.0 plik z założeniami systemowymi który należy umieścić w netlogon nazywa się NTConfig.POL. Ten plik należy stworzyć za pomocą programu Poledit.exe czyli Edytora założeń systemowych. Jest on dostępny wraz z Service Pack 3 dla Windows NT 4.0.

Windows 2000/XP/2003

W systemach Windows 2000/XP/2003 założenia systemowe opierają się o zasady grup defilowane przez narzędzie gpedit.msc. Więcej na ten temat możesz poczytać w dziale Użytkownicy i uprawnienia - Windows 2000/XP/2003. W domenie owe założenia systemowe czyli zasady grup są ściśle związane ze strukturą Active Directory, którą obecnie Samba 3.0 potrafi obsługiwać tylko w  roli stacji klienckiej. Dlatego też nie jest obecnie możliwe obsłużenie Windows 2000/XP/2003 z centralnie składowanymi założeniami grup na Samby jako kontrolerze domeny. Istnieje natomiast możliwość zdefiniowania centralnie uprawnień dla Windows 2000/XP/2003 w stylu Windows NT 4.0 czyli za pomocą NTConfig.POL i programu Poledit.exe. W tym wypadku napotkamy co prawda na pewne ograniczenia funkcjonalności dostępne dopiero w założeniach grup.

Dystrybucja oprogramowania

Wraz z pojawieniem się Active Directory czyli domen w stylu Windows 2000/2003 pojawiła się m.in. bardzo przydatna funkcjonalność dystrybucji oprogramowania czyli zaplanowanej automatycznej instalacji na wielu klientach. Na obecnym etapie Samba obsługuje Active Directory tylko jako klient i sama w sobie nie posiada funkcjonalności zapewniającej dystrybucje oprogramowania. Istnieją natomiast projekty pozwalające w pewnej części zapewnić ową funkcjonalność nie tyle przy użyciu Samby jako PDC ale bardziej jako niezależne programy stanowiące z Samba w roli PDC znakomita darmowa alternatyw dla Windows Server. Poniższe programy pozwalają dystrybuować oprogramowanie na stacje klienckie:

  • WPKG - a Windows Packager - Narzędzie znakomicie uzupełniające system Samba/Unix w roli PDC czyli m.in.. oparte o Linux, *BSD, usprawniające pracę administracyjne dla systemów Windows 2000/XP/2003/Vista czyli obsługujących Active Directory i Zasady Grup (Group Policy / GPO). Poniżej jest wymienionych parę cech (ale nie wszystkie) WPKG:

    • w pełni zautomatyzowana dystrybucja oprogramowania dla systemów Windows 2000/XP/2003/Vista

    • obsługa oprogramowania wielu formatach np. MSI, EXE, itp.

    • obsługa oprogramowania dla pojedynczych komputerów oraz różnych grup

    • prosta instalacje, aktualizacje i usuwanie oprogramowania

    • uruchamianie własnych skryptów dodających drukarki, synchronizujących czas, zmieniających uprawnienia, wpisy w rejestrach, itp.

    • praca w domenie, grupie roboczej lub chociażby poprze  VPN (nie jest potrzeby kontroler domeny)

    • * praca z Samba/Linux, Windows Serwer oraz innymi systemami obsługującymi "Otoczenie sieciowe"

    Strona domowa projektu - http://wpkg.sourceforge.net/.

     

  • Adamoto - Narzędzie oparte o serwer www  Apache, bazę danych MySQL oraz serwer Java Tomcat. Obecnie Adamoto wspiera dystrybucje oprogramowania na klientach Windows i Linux.  Jednak od dłuższego czasu projekt Adamoto wydaje się nie być rozwijany. Strona domowa projektu - http://adamoto.sourceforge.net/.

Tyle magii Samby jako Podstawowego Kontrolera Domeny NT.


Drukuj Dokument