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_nweAktualna 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 |
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ć.
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 |
Definiujemy tu nazwę serwera. Składnia: 2 NAZWA |
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. |
Nie dotyczy systemu FreeBSD i UnixWare. |
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 |
Flagi związane z hasłami i logowaniem (opis w pliku konfiguracyjnym). |
Domyślne prawa dostępu do tworzonych katalogów i plików. Składnia: 9 KATALOGI PLIKI |
UID oraz GID użytkownika o minimalnych prawach (zwykle nobody). Składnia: 10 UID 11 GID |
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 |
Definiujemy tu automatycznš translację istniejšcych kont UNIXowych na konta na serwerze plików. Składnia: 15 OPCJA DOMYŚLNE_HASŁO |
Flagi sterujące obsługą Bindery. |
Flaga sterująca dodawaniem stron tytułowych do oczekujących wydruków. |
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 |
Wpis serwera wydruku do Bindery. |
Tryby odczytu plików. |
Redefinicja ścieżek podanych w pliku config.h. |
Translacje nazw plików pomiędzy systemami plików. |
Zmiana domyślnych ustawień serwera, zdefiniowanych w pliku config.h. |
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.
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.

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.