02.doc

(540 KB) Pobierz
Rozdział X

 

Rozdział 2. ¨ NetWare oraz NetBIOS              53



Rozdział 2.
NetWare oraz NetBIOS

Rozdział ten porusza dwa ważne tematy w kontekście protokołów komunikacyjnych: technologie NetWare oraz NetBIOS. NetWare jest sieciowym systemem operacyjnym opracowanym i rozwijanym od wczesnych lat 80. przez firmę Novell. NetBIOS jest zaś kompletnym API (Application Programming Interface), pozwalającym komunikować się aplikacjom uruchomionym na różnych komputerach, wprowadzonym przez IBM jako środowisko komunikacji w sieciach lokalnych (LAN). NetBIOS umożliwia komunikację zarówno w sposób połączeniowy, jak i bezpołączeniowy. NetWare i NetBIOS stały się dominującymi systemami sieciowym od połowy lat 80. do wczesnych lat 90.

NetWare — wprowadzenie

Technologia NetWare wyposaża użytkownika w szeroką gamę różnego rodzaju demonów usług opartych na architekturze klient-serwer. Serwer jest komputerem lub aplikacją świadczącą klientom usługi, takie jak na przykład dostęp do plików czy drukarek (patrz rysunek 2.1). IPX (Internetwork Packet Exchange) oryginalnie był protokołem używanym przez NetWare do routingu pakietów przez sieć.

Rysunek 2.1.

Architektura
klient-serwer

IPX — Internetwork Packet Exchange

IPX jest protokołem bezpołączeniowym i pod tym względem jest podobny do zawodnego sposobu dostarczania datagramów oferowanego przez protokół IP (opisany w rozdziale 1.). Również, podobnie do protokołu IP, IPX wymaga, by każde urządzenie komunikujące się za jego pomocą posiadało unikalny adres, składający się z dwóch części: numeru sieci (segmentu) oraz numeru komponentu. Numer sieci IPX jest przydzielonym 32-bitowym adresem, zaś numer węzła — 48-bitowym sprzętowym adresem MAC (Media Access Control) interfejsu sieciowego. Przypominam, że MAC jest 48-bitowym unikalnym numerem wbudowanym przez producenta m.in. w każdy interfejs sieciowy NIC (Network Interface Card). Przykład adresu IPX znajduje się na rysunku. 2.2.

Rysunek 2.2.

Przykładowy adres IPX

Budowa nagłówka i transportowanie datagramów IPX

NetWare IPX korzysta z kilku schematów transportu w celu przetworzenia w ramki, informacji i danych protokołów wyższych warstw. Wśród tych najbardziej popularnych są: 802.3 Raw (pierwszy opracowany przez Novell nazywany też Novell Ethernet 802.3), 802.3 (standard IEEE — Novell 802.2), Ethernet II, Ethernet SNAP (rozszerzenie dla 802.3).

Sieciowe numery IPX odgrywają główną rolę podczas wymiany pakietów między różnymi segmentami sieci. Każdy segment ma przydzielony unikalny sieciowy adres (32-bitową liczba), dzięki której pakiety IPX mogą być transportowane do odpowiednich komputerów w różnych sieciach. Uzupełnieniem adresu jest numer tzw. socketu, który służy do zidentyfikowania procesu docelowego na komputerze odbiorcy. Budowa pakietu IPX jest pokazana na rysunku 2.3.

Rysunek 2.3.

Budowa pakietu IPX

t   Suma kontrolna. Domyślnie w polu tym znajdują się zera, jednakże może
w nim się znajdować suma kontrolna obliczona na podstawie części IPX pakietu.

t   Długość pakietu. Całkowita długość pakietu IPX.

t   TC (czas życia). Kiedy pakiet jest przetwarzany przez urządzenia sieciowe (routery) pole to jest zwiększane o 1. Największa dopuszczalna wartość dla tego pola wynosi 15. Gdy któryś z routerów powiększy jego wartość do 16, pakiet zostanie porzucony.

t   Typ pakietu. Może oznaczać m.in.:

t    (typ 0) — nieznany typ pakietu,

t    (typ 1) — pakiet informacji o topologii sieci,

t    (typ 4) — pakiet IPX używany przez protokół rozprzestrzeniania danych o usługach — SAP (Service Advertisement Protocol),

t    (typ 5) — pakiet SPX,

t    (typ 17) — pakiet wewnętrzny protokołu NetWare,

t    (typ 20) — rozprzestrzeniany pakiet IPX NetBIOS.

t   Segment docelowy. Adres sieci, do której należy odbiorca pakietu. Jeśli odbiorca pakietu znajduje się w sieci lokalnej, segment przyjmuje wartość 0.

t   Komponent docelowy. Adres sprzętowy docelowego interfejsu sieciowego.

t   Soket docelowy. Numer soketu używanego przez docelowy proces.

t   Segment źródłowy. Adres sieci, do której należy nadawca pakietu.

t   Komponent źródłowy. Adres sprzętowy interfejsu sieciowego nadawcy.

t   Soket źródłowy. Numer soketu używanego przez proces będący nadawcą pakietu.

t   Dane. Dane pakietu IPX, które bardzo często zawierają nagłówek protokołu wyższej warstwy.

A oto przykłady nagłówków IPX otrzymane za pomocą sniffera:

Rysunek 2.4.

Zrzuty przykładowych nagłówków pakietów IPX

SAP — Service Advertisement Protocol

SAP jest protokołem, za pomocą którego różnego rodzaju demony serwerów sieciowych mogą rozprzestrzeniać informację o swojej obecności i rodzaju świadczonych usług. Zazwyczaj informacje tego typu, zawierające adres serwera oraz identyfikator usługi, rozsyłane są w 60-sekundowych odstępach. Identyfikator SAP (liczba heksadecymalna) określa rodzaj świadczonej usługi, na przykład 0x0007 oznacza serwer drukowania. Przyjrzyjmy się sytuacji przedstawionej na rysunku 2.5.

Rysunek 2.5.

Przykład rozprzestrzeniania informacji SAP

W scenariuszu tym serwer drukowania oraz serwer plików rozprzestrzeniają komunikaty SAP co 60 sekund. Router nasłuchuje tych komunikatów, budując na ich podstawie bazę danych usług, skojarzonych z adresami sieci przez niego obsługiwanych. Utworzona baza danych będzie również rozsyłana po sieci co 60 sekund. Jeśli klient (komputer A) wyśle zapytanie o określony proces zajmujący się drukowaniem na serwerze drukowania, router odpowie, podając odpowiedni adres żądanej usługi, co umożliwi klientowi bezpośrednie skontaktowanie się z poszukiwaną usługą.

Przechwycenie nieodfiltrowanych komunikatów SAP powoduje zaprzestanie dalszego rozprzestrzeniania cennych informacji o usługach sieciowych.

Budowa nagłówka SAP, przykłady, filtrowanie

Pakiety SAP zawierają informacje o maksymalnie 7 usługach. Jeśli istnieje konieczność przekazania wiadomości o większej ich liczbie — wysyła się więcej pakietów. Schemat budowy komunikatu SAP zawiera następujące pola (patrz rysunek 2.6).

Rysunek 2.6.

Pakiet SAP

t   Operacja. Pole określające, czy pakiet jest zapytaniem, czy odpowiedzią.

t   Typ usługi. Identyfikator typu usługi na przykład:

t    0x0004: File Server (serwer plików),

t    0x0005: Job Server (serwer zadań),

t    0x0007: Print Server (serwer drukowania),

t    0x0009: Archive Server (archiwum),

t    0x000A: Job Queue (kolejka zadań),

t    0x0021: SNA Gateway,

t    0x002D: Time Sync (serwer czasu),

t    0x002E: Dynamic SAP,

t    0x0047: Advertising Print Server,

t    0x004B: Btrieve VAP,

t    0x004C: SQL VA,

t    0x0077: nieznana usługa,

t    0x007A: NetWare VMS,

t    0x0098: NetWare Access Server (serwer dostępowy NetWare),

t    0x009A: Named Pipes Server,

t    0x009E: NetWare-UNIX,

t    0x0107: NetWare 386,

t    0x0111: Test Server,

t    0x0166: NetWare Management,

t    0x026A: NetWare Management.

t   Nazwa usługi. Zawiera unikalny ciąg znaków będący nazwą serwera.

t   Adres segmentu. Adres sieciowy serwera.

t   Adres komponentu. Adres sieciowy komponentu.

t   Adres soketu. Numer soketu dla żądań i odpowiedzi serwera

t   Czas życia. Liczba routerów i bramek na drodze pomiędzy klientem a serwerem.

Skoro wiemy już, jak zbudowany jest komunikat SAP, przyjrzyjmy się jego przykładom, które znajdują się na rysunku 2.7.

Aby oszczędzić na przepustowości sieci oraz zabezpieczyć się przed przeciążeniami spowodowanymi pakietami SAP, routery i bramki wyposażane są w odpowiednie filtry odrzucające niechciane pakiety SAP. W średnich i dużych sieciach z setkami a czasami tysiącami usług filtry te są bardzo często koniecznością. Zaleca się skonfigurowanie
 

Rysunek 2.7.

Zrzut nagłówka datagramu SAP wykonany za pomocą sniffera

filtrów komunikatów SAP, tak aby odrzucały te z nich, które nie są konieczne dla działania sieci. Na przykład fizycznie oddalone od siebie sieci z reguły nie potrzebują udostępniać sobie drukarek.

Hakerzy, którym uda się zaatakować router czy bramkę, mogą spowodować silne obciążenie lub nawet załamanie dużych sieci, usuwając lub modyfikując filtry pakietów SAP. Tzw. przeciążenie pakietami SAP jest częstym powodem degradacji przepustowości sieci opartych na technologii Novell.

SPX — Sequenced Packet Exchange

Głównym protokołem transportowym używanym w technologii NetWare jest SPX, który jest protokołem nadrzędnym w stosunku do IPX (pozostaje do niego w podobnym stosunku, co TCP do IP). Podobnie jak TCP, SPX zapewnia niezawodny sposób dostarczania danych, wykorzystując w tym celu protokół IPX . By uzyskać dostęp do Internetu, Novell wykorzystał datagramy IPX umieszczane w datagramach UDP (które z kolei są transportowane w datagramach IP). SPX jest protokołem, używającym okna o rozmiarze jednego pakietu, zorientowanym na transmisję w pakietach.

Budowa i przykłady nagłówków SPX

Nagłówek pakietu SPX zawiera informacje zdefiniowane według następującej listy (patrz rysunek 2.8).

Rysunek 2.8.

Budowa nagłówka pakietu SPX

t   Sterowanie połączeniem. W polu znajdują się informacje służące do kontroli przepływu danych.

t   Typ strumienia danych. Rodzaj danych przenoszonych za pomocą pakietu:

t    0xFE — zawiadomienie o zakończeniu połączenia,

t    0xFF — potwierdzenie odbioru zawiadomienia o zakończeniu połączenia,

t    0x00 — do wykorzystania przez użytkownika.

t   Identyfikator połączenia (nadawcy). Przydzielony numer połączenia IPX (po stronie nadawcy). Używany do demultiplexingu (koncepcja podobna do portów używanych przez protokoły TCP oraz UDP — patrz rozdział 1.).

t   Identyfikator połączenia (odbiorcy). Przydzielony przez odbiorcę numer połączenia IPX. Używany do demultiplexingu.

t   Numer sekwencji. Numer ostatnio wysłanego pakietu. Pakiety są zliczane w obu kierunkach osobno.

t   Numer kolejnej sekwencji. Numer sekwencji oczekiwanego pakietu.

t  ...

Zgłoś jeśli naruszono regulamin