Linuksowa nowela

Novell NetWare jest u nas dość popularny i ceniony - przede wszystkim za funkcjonalność, niezawodność i usługi katalogowe. Skoro zaś wielu potencjalnych użytkowników odstrasza wysoka cena licencji, pojawienie się na horyzoncie darmowego Linuksa było kwestią czasu.

Novell NetWare jest u nas dość popularny i ceniony - przede wszystkim za funkcjonalność, niezawodność i usługi katalogowe. Skoro zaś wielu potencjalnych użytkowników odstrasza wysoka cena licencji, pojawienie się na horyzoncie darmowego Linuksa było kwestią czasu.

Mimo ścisłej ochrony przez Novella różnych specyfikacji, dotyczących NetWare, powstały darmowe rozwiązania, umożliwiające nie tylko dostęp do zasobów NetWare, ale i częściowo emulujące funkcjonalność serwera NetWare. Prezentujemy konfigurację oraz korzystanie z linuksowego emulatora ser-wera NetWare o nazwie MARS.

Po pierwsze IPX

Pakiet ten wymaga obsługi protokołu IPX w jądrze. Aby ją włączyć w SuSE, wystarczy do pliku "/etc/rc.d/boot.local" dopisać dyrektywę ładowania modułu: insmod ipx &

Mars napada

Drugi krok to zainstalowanie pakietu ncpfs i MARS. Oba programy znajdują się w katalogu "marsnw" na drugim dysku CD-ROM. Instalowanie obu pakietów odbywa się za pomocą polecenia: "rpm -i nazwa_pakietu.rpm". W pliku "/etc/rc.config" należy też ustawić zmienną START_MARSNWE="yes". Po ponownym uruchomieniu systemu zostanie załadowany protokół IPX i serwer MARS (z ustawieniami domyślnymi).

Szczegółowej konfiguracji można dokonać, używając poleceń "ipx_configure" lub "ipx_interface" (zapisano je w pakiecie ncpfs). Pierwsze z nich ma automatycznie określić numery sieci IPX oraz wykryć obowiązujące w sieci typy ramek. W sieci Ethernet protokół IPX obsługuje ramki ethernet_802.2, ethernet_802.2, ethernet_II oraz ethernet_SNAP. Z programu "ipx_configure" należy korzystać wtedy, gdy podłączamy się do działającej sieci IPX, np.

ipx_configure -auto_interface=on -auto_primary=on

W przypadku "ipx_interface" trzeba podać nazwę interfejsu sieciowego, przez który zamierzamy uzyskać dostęp do sieci IPX, typ ramki i numer sieci. Parametr "p" ustawia interfejs jako primary.

ipx_interface add -p eth0 802.3 23

Routing

Jeżeli planujemy uczynić ze stacji Linuxa router IPX, trasy routingu można budować za pomocą programu "ipx_route". Statyczny routing wymaga włączenia w jądrze obsługi wewnętrznego numeru sieci IPX oraz przydzielenia mu numeru za pomocą programu "ipx_internal_net". Wszystkie przykłady w dalszej części tekstu odnoszą się do sieci IPX, składającej się z czterech podsieci, w których działają trzy serwery NetWare o nazwach: ZTFS1, ZTFS2 i ZTFS4 oraz serwer MARS o nazwie ZTFS3, uruchomiony w systemie Linux.

Linux jako serwer systemu NetWare

Okno programu SYSCON wyświetlające parametry serwera MARS.

Okno programu SYSCON wyświetlające parametry serwera MARS.

Oprogramowanie MARS NW Emulator umożliwia zastosowanie Linuksa jako emulatora serwera Novell NetWare, działającego na bazie protokołu IPX. Pomimo wielu uproszczeń i zgodności jedynie na po-ziomie usług BINDERY, MARS posiada kilka atrakcyjnych zalet: brak ograniczeń licencyjnych, funkcjonalny serwer plików i drukarek zgodny z NetWare, brak ograniczeń liczby jednocześnie zalogowanych użytkowników, obsługa dynamicznego routingu RIP/SAP, łatwy dostęp do nośników CD poprzez osobny wolumin, darmowe oprogramowanie klienta dosowego, możliwość uruchamiania ze stacji klienckiej programów po stronie serwera, tworzenie uprawnień zarówno według "trustees", jak i zestawów praw uniksowych, obsługa protokołu packet burst oraz przestrzeni nazw OS/2 i NFS. MARS nie obsługuje modułów NLM, zatem bezużyteczne staje się oprogramowanie typu klient/serwer.

Program “slist”wyświetla listę dostępnych serwerów NetWare.

Program “slist”wyświetla listę dostępnych serwerów NetWare.

Emulator wymaga prawidłowo skonfigurowanego protokołu TCP/IP i pełnego wsparcia protokołu IPX w jądrze systemu. W skład pakietu wchodzą następujące programy:

nwserv - program główny, który inicjuje i przejmuje kontrolę nad pozostałymi programami, odpowiedzialny również za routing RIP/SAP;

ncpserv - program obsługujący żądania NCP przyłączonych klientów;

nwbind - realizuje usługi bazy BINDERY;

nwconn - proces tworzony przy udziale ncpserv dla każdego przyłączonego klienta.

Przykładowy plik konfiguracyjny “nwserv.conf”.

Przykładowy plik konfiguracyjny “nwserv.conf”.

Wszelkie zmiany konfiguracyjne, związane z funkcjonowaniem emulatora, wykonujemy w pliku: "/etc/nw-serv.conf". Każda opcja w tym pliku jest opatrzona przykładem, wzbogaconym o komentarz. Poszczególne opcje grupowane są w sekcje numerowane od jednego. Większość z nich ma już z góry ustawione wartości, jednak w wielu przypadkach będą prowadzone modyfikacje. Zmiany mogą dotyczyć przede wszystkim sytuacji, gdy MARS ma być dołączony do działającej sieci IPX i funkcjonować razem z innymi serwerami NetWare. W dalszej części tekstu opisujemy jedynie przykładowe ustawienia. Najpierw w sekcji nr 1 należy podać nazwy woluminów dyskowych oraz przypisane im nazwy katalogów z systemu Linux. Na tym etapie określamy również typ woluminu, zestaw uprawnień oraz linuksową maskę praw dla nowo tworzonych katalogów i plików, np.

1 SYS /var/mars_nwe/sys kT 711 600

1 VOL1 /var/mars_nwe/vol1 ktO 711 600

1 VOL2 /var/mars_nwe/vol2 kp

1 HOME ~ kO -1

1 CDROM /mnt/cdrom kmor

Na pierwszej pozycji należy umieścić wolumin SYS, który powinien zawierać katalogi: SYSTEM, PUBLIC, LOGIN oraz MAIL. Taki zestaw katalogów zasadniczo wynika z architektury systemu plików NetWare.

Pierwsza kolumna to numer sekcji, kolejne to nazwa woluminu i odpowiadający im katalog w systemie Linux. Czwarta kolumna określa typ i właściwości woluminu.

W tym przykładzie "k" umożliwia dostęp do plików zapisanych małymi literami, "T" definiuje obowiązujący system uprawnień, jako zgodny z "trustees" systemu NetWare, ignorując uprawnienia linuksowe. Uprawnienia "trustees" przechowywane są w osobnym katalogu: "/var/nwserv/trustees". Parametr "t" opiera system uprawnień na bazie zarówno "trustees", jak i prawach uniksowych, "O" dodatkowo uwzględnia system nazw OS/2. Parametr "m" definiuje wolumin jako wymienny, "o" wymusza obsługę tylko jednego systemu przestrzeni nazw, "r" umożliwia jedynie odczyt danych z woluminu, "p" tworzy wolumin typu PIPE. W systemie PIPE każdy program, w tym również skrypt powłoki, może zostać wykonany z poziomu klienta poprzez wywołanie funkcji odczytu lub zapisu. W efekcie klient za pomocą zwykłego polecenia DOS-owego może uruchomić dowolny program po stronie serwera.


Zobacz również