Tańce w domenie

Na ostateczną wersję Samby 4 trzeba poczekać co najmniej pół roku. Będzie ona funkcjonalnym zamiennikiem dla domeny Windows Server 2000/2003.

Na ostateczną wersję Samby 4 trzeba poczekać co najmniej pół roku. Będzie ona funkcjonalnym zamiennikiem dla domeny Windows Server 2000/2003.

Samba jest pakietem oprogramowania, który umożliwia współpracę komputerom działającym pod kontrolą wzajemnie niekompatybilnych systemów Windows i Unix/Linux. Obejmuje oprogramowanie zarówno serwerowe, jak i klienckie. Powszechnie znana stabilna wersja Samba 3, od dawna stosowana jako serwer plików i drukarek w sieciach Windows, obecnie emuluje także kontroler domeny Windows NT 4.0. Od niedawna Samba może jeszcze więcej - właśnie ukazała się wstępna wersja Samba 4 niosąca sporo nowości.

Potrzeba matką wynalazku

Historia Samby rozpoczęła się mniej więcej 12 lat temu w Australii, kiedy to Jeremy Allison stworzył prototyp programu zapewniającego połączenie systemu DOS z klientem Patchworks do serwera z systemem Solaris. Wersja 2.0 wyznaczyła nowy poziom współpracy - pojawiła się możliwość pracy w charakterze klienta domeny Windows. Od wersji 2.2 Samba może pracować jako kontroler domeny Windows NT, a klient domeny praktycznie przestał sprawiać problemy.

Po kolejnych ulepszeniach pojawiła się wersja 3.0, która może być kontrolerem domeny zgodnym z Windows NT 4.0, umożliwiając rejestrowanie nazw NetBIOS i żądań NETLOGON. Pracując jako członek domeny Active Directory, Samba 3 używa uwierzytelnienia za pomocą mechanizmu Kerberos, a także DCE-RPC; może też posłużyć się katalogami zgodnymi z protokołem LDAP. Zgodność z rozwiązaniami Microsoftu jest naprawdę wysoka - obsługiwany jest nawet format Unicode, co eliminuje problemy ze znakami diakrytycznymi w różnych językach.

Samba jest bardzo popularnym narzędziem, łatwym do wykorzystania przez różnych producentów oprogramowania. Z Samby 3 do komunikacji z Windows korzysta m.in. Mac OS X. Wszelkie operacje dokonywane za pomocą graficznych narzędzi (Server Admin GUI) są potem zapisywane do standardowego pliku smb.conf. Ponadto Samba jest wykorzystywana przez wiele "czarnych skrzynek" pełniących rolę serwera plików i drukarek przeznaczonych dla małych sieci.

Kierunki rozwoju

Od trzech lat trwa bardzo intensywny rozwój pakietu Samba w kierunku emulowania kolejnych wersji serwerów Microsoftu. Na witryniehttp://www.samba.org dostępna jest od niedawna wersja przeglądowa (Samba 4 TP1) przeznaczona raczej do przetestowania samej technologii, a nie wdrażania w firmowej sieci. Samba 4 emuluje usługi Active Directory w wersji serwera Windows 2000 i nowszej (testy obejmują tryb Windows 2000/2003 mixed). Jak wiadomo, w systemie Active Directory nie ma już podziału na PDC i BDC (typowego dla Windows NT 4.0). Dzięki Sambie serwer Unix ma mieć docelowo pełną funkcjonalność usług Active Directory Windows Server 2003. Deweloperzy serwera Samba stawiają sobie od dawna za cel obsługę wywołań w taki sposób, jak to robi najnowsza wersja serwera Windows - tam, gdzie jest to możliwe. Gdy stary model domeny NT zastąpiło Active Directory, utrudnienie w rozwijaniu serwera polegało na tym, że Active Directory jest znaczącą częścią serwera Windows. Deweloperzy Samby stanęli przed zadaniem odtworzenia wielu funkcji serwera, co wymagało implementacji wszystkich brakujących elementów.

Dokumentacja szczegółów działania usług Active Directory jest niekompletna i stąd stworzenie funkcjonalnego zamiennika było dosyć karkołomne. Dotyczyło to w szczególności rozpoznania protokołu NTLM używanego w sieciach Windows oraz modyfikacji popularnego oprogramowania Kerberos. Ten ostatni jest od dawna wykorzystywany w wielu systemach Unix, niemniej przystosowanie otwartej specyfikacji protokołu do zmodyfikowanej przez producenta Windows było poważnym zadaniem.

Katalog pełen nowości

W Sambie 4 użyto otwartej implementacji Kerberosa (Heimdal Kerberos - opracowanej niezależnie od MIT poza USA, aby uniknąć kłopotów prawnych z eksportem narzędzi kryptograficznych). Kod jest łatwy do modyfikacji i posiada bardzo dobry interfejs do innych aplikacji. Dzięki temu lepiej nadaje się do modułowego pakietu, jakim jest Samba 4. Wewnątrz tej realizacji protokołu Kerberos istnieje warstwa abstrakcji, która oddziela bazę haseł od pozostałej części implementacji. W oryginalnej wersji Heimdal można wybrać między LDAP albo prostą bazą klucz-wartość, zaś Samba 4 użyje nowego narzędzia - LDB.

Kolejnym składnikiem usług Active Directory jest katalog LDAP. Deweloperzy Samby postanowili w wersji 4 unikać uzależnienia projektu od serwera OpenLDAP.

Przyczyna jest prosta - instalacja OpenLDAP wymaga wykonania wielu dodatkowych, dość złożonych czynności, przy czym korzystanie z OpenLDAP i tak jest opcjonalne. Zamiast OpenLDAP w wersji 4 wykorzystywana jest baza "ldapopoodobna" - LDB (LDAP-like Database). Stanowi ona warstwę abstrakcji umożliwiającą przechowywanie danych albo w LDAP, albo w prostej plikowej bazie danych.

Wydajność LDB jest zapewne wystarczająca do pracy niezbyt dużych sieci, ale celem deweloperów Samby jest przystosowanie jej do współpracy z naprawdę dużymi katalogami. Prawdopodobnie docelowo znajdą się tutaj wtyczki do "dużych" serwerów usług katalogowych, umożliwiające współpracę np. z katalogami Novella, Sun Microsystems czy Oracle'a.

Porządek w interfejsach

Kolejna nowość Samby 4 to komponent GENSEC, którego zadaniem jest odtworzenie wszechobecnego w Windows interfejsu SSPI (Security Support Provider Interface). Nowością jest także PIDL - kompilator plików IDL (Interface Definition Language) służących do opisywania interfejsów API przy użyciu skryptów Perl. PIDL kompiluje pliki IDL do kodu języka C, który można uruchomić w środowisku serwera Samba. W systemach Microsoftu zadanie kompilacji IDL wykonuje program midl. Sam fakt powstania kompilatora IDL na kod C świadczy o zmianie podejścia deweloperów Samby - dotychczas pakiety były interpretowane wprost przez serwer. Bardzo ważnym elementem nowego serwera jest VFS - wirtualny system plików. Jego zadaniem jest prezentacja zasobów w taki sposób, aby lepiej odpowiadała ona typowym dla Windows listom dostępowym wywodzącym się jeszcze z Windows NT oraz by pozwalała na umieszczanie informacji w strumieniach NTFS. Strumienie umożliwiają umieszczenie danych w niewidocznych obiektach przypisanych do widocznego pliku - ta słabo udokumentowana własność systemu plików NTFS jest stosunkowo mało znana. VFS zawiera także zestaw narzędzi do zarządzania, dzięki którym możliwe jest emulowanie zachowania systemu plików NTFS, co w starszych wersjach Samby nie było możliwe. VFS jednocześnie eliminuje kłopoty z nazwami plików zawierających znaki Unicode.

Gdy dołączenie stacji roboczej do domeny Active Directory się powiedzie, dalsza praca jest już zbliżona do standardowej współpracy z serwerem Windows. Możliwe jest zadawanie zapytań do DNS i otrzymana zostanie odpowiedź CLADAP. Możliwe jest wykonywanie połączeń EPM (RPC), a nawet nowych sesji NETLOGON, co pozwala na wynegocjowanie mechanizmów zabezpieczeń takich jak 128-bitowe klucze sesji.

Nie wszystko jeszcze działa

Dodanie zgodnej z Windows implementacji Kerberosa (oraz SPNEGO) do obsługiwanego protokołu CIFS było najważniejszym wyzwaniem przy tworzeniu nowej wersji Samby. Obecnie klient pracujący pod kontrolą Windows XP SP2 prawidłowo uzyskuje ticket z serwera Kerberos oraz używa go do zalogowania się do serwera Samba.

Wiadomo na pewno, że działanie klucza sesji jest poprawnie zaimplementowane, bowiem działa dobrze zarówno podpisywanie SMB (poważny problem bardzo starych wersji Samby, wymagający modyfikacji rejestru w serwerze i kliencie Windows w celu wyłączenia tej opcji), jak i ustawianie hasła. Samba 4 współpracuje poprawnie nawet z cieszącym się złą sławą polem protokołu Kerberos - certyfikatem Kerberos PAC (Privilege Access Certificate). PAC jest uważany za celową modyfikację mającą na celu utrzymanie niezgodności z innymi implementacjami Kerberosa.

W obecnym stanie projektu Samba 4 wiele funkcjonalności oryginalnej domeny Active Directory nie zostało jeszcze zaimplementowanych. Na przykład nie działa drukowanie, nie jest obsługiwana rola członka domeny ani serwera poza domeną (standalone server). Zdarzają się też kłopoty z dostępem do niektórych zasobów. Ponadto logowanie z maszyny Windows XP SP2 przy użyciu Kerberosa błędnie stwierdza wygaśnięcie hasła tego samego dnia.

Ciekawostką jest fakt, że ustawienia ograniczające uprawnienia użytkownika przypisane za pomocą polis GPO nie są prawidłowo zapisywane na stacjach roboczych (nie pojawiają się w rejestrze klienta) pracujących z systemem Windows XP SP2 przy włączonej zaporze. Notabene, taki sam błąd, choć w mniejszej skali, występuje w kilku znanych mi instalacjach Windows 2003 Server bez Service Pack 1.

Wersja do testów, nie do pracy

Wraz z finalną wersją serwera Samba 4 dostępne ma być narzędzie do administracji oparte na przeglądarkowym programie SWAT (Samba Web Administration Tool). Ze względu na fakt, że narzędzie wykorzystuje JavaScript, twórcy Samby przewidują poważne zmiany w tym narzędziu. Niemniej, do czasu rozwiązania innych problemów, ulepszanie interfejsu ma niski priorytet.

Razem z "czwórką" dostępne ma być także narzędzie do migracji z domeny Active Directory. Aplikacja nazywana żartobliwie Vampire umożliwia pobranie informacji o użytkownikach domeny Windows NT 4.0, 2000 lub 2003 oraz o serwerze i umieszczenie ich w bazie serwera Samba. Potem można wyłączyć kontroler domeny Windows, uruchomić serwer DNS na maszynie Samby i zalogować klienta do domeny obsługiwanej już przez Sambę.

Deweloperzy projektu Samba powtarzają, że obecna wersja jest jedynie demonstracją nowej technologii i odradzają migrację do najnowszej wersji. Przynajmniej na razie jest ona niestabilna i część komponentów, np. baz haseł, prawdopodobnie zostanie opracowana od nowa. Również bezpieczeństwo wersji testowej jest bardzo niskie, bowiem priorytetową sprawą było zrealizowanie najważniejszych elementów składających się na pracę Samby jako serwera zastępującego serwer z usługami Active Directory. Obecnie podstawowa obsługa list dostępowych dotyczy tylko bazy użytkowników, nie zaś rejestru.

Nowości w SAMBIE 4

  • Pełna emulacja domeny Active Directory Windows 2000/2003
  • Modularny, w pełni funkcjonalny moduł uwierzytelniania Kerberos (obsługuje nawet pole PAC)
  • Rezygnacja z OpenLDAP na rzecz warstwy pośredniej LDP (LDAP-like Database), pozwalającej na budowanie prostych baz haseł, a jednocześnie ułatwiającej integrację z zewnętrznymi katalogami LDAP
  • VFS - wirtualny system plików emulujący usługi NTFS, włącznie z listami dostępowymi, obsługą Unicode, a nawet strumieniami
  • Implementacja interfejsu SSPI (Security Support Provider Interface)
  • Kompilator plików IDL do kodu C
  • Narzędzia do migracji z domeny Windows do Samba 4
  • Integracja narzędzi do zarządzania SWAT


TOP 200