Konfiguracja pakietu mars_nwe

Niejednokrotnie zachodzi potrzeba udostępnienia konkretnych plików i usług klientom pracującym pod kontrolą systemu DOS lub Windows 95/98/NT. Można to zrealizować na wiele sposobów, zwykle jednak wymagających poniesienia kosztów, związanych z zakupem odpowiedniego oprogramowania (Windows NT Server, Novell NetWare, ...). Rozwiązaniem alternatywnym może być instalacja darmowego pakietu mars_nwe autorstwa Martina Strovera na serwerze pracującym pod kontrolą systemu Linux lub FreeBSD. Dodatkową zaletą takiego rozwiązania jest integracja wielu usług na jednej maszynie, co pozwala ograniczyć koszty związane z zakupem sprzętu i administracją.

Możliwości pakietu mars_nwe

Aktualna wersja pakietu (0.99.pl14 w chwili pisania tekstu) prawie całkowicie emuluje system Novell NetWare 3.11 oraz większość funkcji wersji 3.12. Dzięki temu, na serwerze opartym na mars_nwe można wykonywać szereg typowych operacji sieciowych:





   udostępnianie plików (łącznie z obsługą długich nazw), drukarek i komend UNIX'owych (PIPE filesystem)

   dystrybucja poczty poprzez pakiet Pegasus Mail oraz PIPE filesystem

   zdalne uruchamianie stacji

   routing IPX (tylko na Linuxie)

   kontrolowania dostępu do plików (łącznie Trustees i prawa UNIX'owe)

   wszystkie typowe operacje na Bindery
Instalacja pakietu

Pakiet mars_nwe może być zainstalowany na serwerach opartych o systemy operacyjne: Linux, FreeBSD, UnixWare.

Instalacja oprogramowania mars_nwe na platformie FreeBSD ogranicza się do wydania polecenia:

# make all install clean

w katalogu /usr/ports/net/mars_nwe.

Po zakończeniu tego kroku, można przejść do konfiguracji i uruchamiania nowego serwera plików.

W przypadku systemu FreeBSD konieczna będzie rekompilacja kernela z dodaną do pliku konfiguracyjnego linią:

options IPX Konfiguracja pakietu

Zmiana ustawień serwera polega na edycji pliku /usr/local/etc/nw.conf. Ze względu na dość znaczną objętość pliku konfiguracyjnego, został on podzielony na oddzielne sekcje, które postaram się opisać.

Sekcja 1

Definiujemy tu sposoby udostępniania poszczególnych woluminów.

Składnia:
1		WOLUMIN	KATALOG	[OPCJE]	[UMASKDIR UMASKFILE]

WOLUMIN   - nazwa udostępnianego woluminu
KATALOG   - udostępniany katalog po stronie UNIXowej
OPCJE     - sposób udostępnienia woluminu (opis opcji w pliku konfiguracyjnym)
UMASKDIR  - domyślne prawa dla tworzonych katalogów
UMASKFILE - domyślne prawa dla tworzonych plików
Sekcja 2

Definiujemy tu nazwę serwera.

Składnia:
2 NAZWA
Sekcja 3

Wewnętrzna podsieć serwera (odpowiednik interfejsu loopback po stronie UNIXowej).

Składnia:
3 NUMER

Na systemie FreeBSD lub UnixWare numer podsieci wewnętrznej musi się zgadzać z numerem podsieci zewnętrznej. W innych przypadkach może on być całkowicie przypadkowy.
Sekcja 4 i 5

Nie dotyczy systemu FreeBSD i UnixWare.
Sekcja 6

Definiujemy tu numer wersji, którą "udaje" mars_nwe.

Składnia:
6 WERSJA

WERSJA -  0 dla wersji 2.15
1 dla wersji 3.11
2 dla wersji 3.12
Sekcja 7 i 8

Flagi związane z hasłami i logowaniem (opis w pliku konfiguracyjnym).
Sekcja 9

Domyślne prawa dostępu do tworzonych katalogów i plików.

Składnia:
9		KATALOGI	PLIKI
Sekcja 10 i 11

UID oraz GID użytkownika o minimalnych prawach (zwykle nobody).

Składnia:
10 UID
11 GID
Sekcja 12 i 13

Definiujemy tu poszczególne konta i ich odpowiedniki po stronie UNIXowej oraz domyślne hasło dostępu.

Składnia:
12		SUPERVISOR_LOGIN		UNIX_LOGIN		HASŁO
13		USER_LOGIN			UNIX_LOGIN		HASŁO
Sekcja 15

Definiujemy tu automatycznš translację istniejšcych kont UNIXowych na konta na serwerze plików.

Składnia:
15		OPCJA		DOMYŚLNE_HASŁO
Sekcja 16 i 17

Flagi sterujące obsługą Bindery.
Sekcja 18

Flaga sterująca dodawaniem stron tytułowych do oczekujących wydruków.
Sekcja 21

Definiujemy tu poszczególne kolejki wydruków.

Składnia:
21		NAZWA		KATALOG		KOMENDA

NAZWA 		-  nazwa kolejki
KATALOG 	-  położenie kolejki (od strony klienta)
KOMENDA		-  UNIXowa komenda wydruku
Sekcja 22

Wpis serwera wydruku do Bindery.
Sekcja 30

Tryby odczytu plików.
Sekcje 40-47

Redefinicja ścieżek podanych w pliku config.h.
Sekcja 50

Translacje nazw plików pomiędzy systemami plików.
Sekcje 60, 61, 63, 68, 69, 70, 71

Zmiana domyślnych ustawień serwera, zdefiniowanych w pliku config.h.
Uruchamianie

Po zakończeniu edycji pliku nw.conf konieczne będzie uruchomienie interfejsu IPX przy pomocy komendy (wykonywanej oddzielnie dla każdego interfejsu sieciowego):

# /sbin/ifconfig nazwa_interfejsu ipx numer_podsieci

Ażeby umożliwić poprawne działanie systemu, konieczne również będzie uruchomienie demona routingu IPX przy pomocy komendy:

# /usr/sbin/IPXrouted -s

Po tych krokach, nowy serwer plików jest już w pełni skonfigurowany i gotowy do rozpoczęcia pracy. Uruchamiamy go komendą:

# /usr/local/sbin/nwserv

i obserwujemy systemowy log (/var/log/nw.log). Prawidłowo skonfigurowany serwer powinien być od tej chwili widoczny dla stacji. Aby umożliwić poprawną pracę DOS'owych stacji, należy jeszcze umieścić na woluminie SYS następujące pliki: LOGIN.EXE, MAP.EXE, LOGOUT.EXE, SYSCON.EXE i SLIST.EXE, które znajdują się na każdym serwerze plików Novell NetWare.

Podsumowanie

W chwili obecnej pakiet możemy traktować jeszcze jako wersję testową. Można zauważyć kilka niedogodności, m.in.:





   słabą współpracę z systemem FreeBSD (obsługa wyłącznie ramki ETHERNET_II),

   brak możliwości blokowania konta po określonej ilości błędnych prób zalogowania,

   wysoką podatność na czynniki zewnętrzne (przy wysokim obciążeniu i niespodziewanych operacjach możliwe jest spowodowanie sygnału 11 i unieruchomienie serwera plików),

   bardzo niski poziom bezpieczeństwa, udało mi się wykryć 61 (!) potencjalnych buffer overflow'ów, z czego na kilka napisałem już exploity.

Jednak mimo powyższych problemów, uważam, że jest to najlepszy emulator serwera plików Novell Netware dla systemów UN*X.


Creative Commons License
Wszystkie materiały na mojej stronie dostępne są na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 2.5 Polska.