W poprzednim odcinku nauczyliśmy się konfigurować MiamiDX tak, żeby bezproblemowo działał w sieci z innymi komputerami, tyle, że nic, poza satysfakcją, nam to nie dawało. Na pewno ogromna większość chciałaby powymieniać pliki z innymi i tym się właśnie zajmiemy w tym odcinku.
Otoczenie sieciowe to wymysł firmy Microsoft. Chcieli oni stworzyć łatwy system wymiany plików między połączonymi komputerami. Wymiana miała korzystać z powszechnie uznanego stantartu TCP/IP, ale nie bazować na dotychczasowych rozwiązaniach (FTP). Zarezerwowano do tego celu porty, napisano oprogramowanie i zintegrowano to z systemem operacyjnym. Dzięki temu komputery w sieci bez problemu się "widziały". Jeden rozpoznawał drugi za pomocą nazwy, tzw. NetBIOS Name, którą to oczywiście sami ustalamy. W przypadku podłączenia większej (niż dwa) ilości komputerów jeden z nich spełnia rolę mastera sieci, co znaczy to, że wysyła innym listę aktualnie dostępnych użytkowników. Gdy jedna z maszyn wysyła zapotrzebowanie na taką listę, na łączach zaczyna się prawdziwa wojna. Każdy system na swój własny priorytet bycia masterem (Windows 2000 ma najwyższy, potem jest WinNT, gdzieś tam dalej Windows'98), więc jeśli w sieci jest parę takich samych systemów (np same Windowsy'98), to walczą one ze sobą o to, który ma wysłać oczekującemu listę użytkowników. Stara prawda, która mówi, że "gdzie dwóch się bije tam trzeci korzysta" w tym wypadku się nie sprawdza, bowiem ten trzeci (czyli komputer wysyłający zapotrzebowanie na listę) zazwyczaj traci, bo albo nie dostaje listy w ogóle, albo to co otrzymał mija się z prawdą. Idealnym rozwiązaniem jest postawienie serwera i nadanie mu najwyższego priorytetu - wtedy mamy pewność, że listę dostaniemy zawsze i kompletną, gdy jednak nie jest to możliwe, to trzeba albo się z tym pogodzić, albo spróbować zrobić mastera z Amigi.
Instalacja otoczenia sieciowego na Windowsach ogranicza się do zainstalowania jednej z usług, co zaowocuje pojawieniem się na pulpicie ikonki symbolizującej sieć. Na Amidze wymaga to więcej zachodu, bowiem w żadnej z wersji Workbencha tego nie ma. Na pomoc przychodzi nam Unixowy port zwany Samba. Dzięki niemu będziemy mogli zrobić dużo więcej, niż koledzy z pecetami i praktycznie to samo, co na Linuxie. Ale gdzięki temu będziemy mogli jedynie udostępniać pliki... Żeby je ściagać potrzebujemy innego programu - Tango, dzięki któremu proces kopiowania przebiegnie szybko, sprawnie i estetycznie. Z poprzedniego zdania wywnioskować można, że do ściągania plików od innych nie potrzebna jest instalacja Samby - tak rzeczywiście jest. Jeśli ktoś chce spełniać w sieci funkcję pasożyta może zaraz po podstawowej konfiguracji MiamiDX przejść do Tango, inni muszą prześledzić krok po kroku konfigurację Samby.
Do rozpoczęcia instalacji będziemy potrzebowali paru rzeczy. Najważniejsza jest Samba, której wersję 2.0.7 można ściągnąć z aminetu (comm/tcp/samba_2.0.7.lha), Tango (comm/tcp/Tango.lha) oraz oczywiście działające już w sieci MiamiDX. Użytkownicy AmiTCP poczują się dyskryminowani, ale opisu na ten stos TCP/IP nie będzie. Powody są dwa: po pierwsze jak ktoś był na tyle mądry, że zainstalował (i skonfigurował) AmiTCP, to konfiguracja otoczenia za pomocą dołączonego pliku (INSTALL.Amiga) nie sprawi mu problemu, a wszystko co tu przeczytają mogą bez przeszkód przenieść do AmiTCP, a po drugie sam używam go na co dzień i do tej pory NIE UDAŁO mi się zmusić go do poprawnego działania w otoczeniu. Chodzi przede wszystkim o udostępnianie plików, bo Amigę owszem, w sieci widać, ale odczytanie listy plików kończy się niepowodzeniem. Jeśli ktoś się z tym uporał - proszę o kontakt.
Najpierw zajmiemy się tym, gdyż praktycznie zaraz po rozpakowaniu
archiwum możemy zacząć przeglądać dyski innych w sieci. Lecz zanim
klikniemy na ikonkę installera musimy założyć gdzieś katalog Samba i
zrobić do niego przypis o takiej samej nazwie, czyli np.:
makedir Work:Internet/Samba
assign Samba: Work:internet/Samba
Teraz już installer zrobi wszystko sam. Teoretycznie. Odpalenie programu
nic nie daje, bowiem Tango nie znajduje swoich własnych locali. Problem ten
występuje na polskich Workbenchach i objawia się tym, że program na
podstawie używanego języka szuka locali w danym katalogu. Polskiej wersji
nie ma, więc program się nie uruchamia.
Przegranie angielskich locali do
polskiego katalogu także nic nie daje i program uparcie twierdzi, że czegoś
mu brakuje. Dzieje stę tak dlatego, że mimo iż plik tango.catalog znajduje
się w polskim katalogu, to jednak nadal jest to wersja angielska. Żeby to
poprawić musimy wziąć się za edycje pliku tango.catalog jakimś hex-editorem
(na przykład tym z FM3). Edytujemy taki plik i szukamy zaraz na początku
napisu "english". Zmieniamy go na "polski", ale zostaje jeszcze jeden znak.
W tym celu przechodzimy do okienka z liczbami szesnastkowymi i jako ostatni
znak wpisujemy dwa zera (00). Po tym zapisujemy zmiany i od tej pory Tango
nie będzie sprawiało problemów. Podobno jest jeszcze drugi, prostszy
sposób. W ustawieniach locali wystarczy wybrać oprócz polskiego także
angielski. Sam osobiście tego nie sprawdzałem, ale powinno działać.
Pierwsze odpalenie powinno zaowocować pojawieniem się listy. Program wcześniej będzie sprawdzał stos TCP/IP, szukał mastera i innych rzeczy. Czesto się zdarza, że mastera nie znajdzie i wtedy nie pokaże nic - czasami pomaga ponowne odpalenie programu, ale jeśli sytuacja będzie się powtarzała, to możemy mastera przyznać sobie sami, lub w gadgecie tekstowym pod listą wpisać nazwę Biosu interesującego nas komputera. Tak naprawdę to Tango sprawia problemy co drugiemu użytkownikowi i chyba przyjdzie nam jeszcze sporo czekać na niezawodną wersję. Ci, którzy będą mieli szczęście i ujrzą listę komputerów będą mogli zacząć je przeglądać. Wejście do udostępnionego katalogu spowoduje zamontowanie jego w systemie jako nowe urządzenie. To chyba najlepsze rozwiązanie, bowiem możemy do kopiowania plików użyć dowolnego programu, jak FileMaster, czy DOpus. Więcej - takie mountlisty możemy zachować i montować je samemu w razie potrzeb bez konieczności uruchamiania Tango. Nie mamy jednak w takim przypadku pewności, czy dany komputer jest aktualnie włączony i próba uruchomienia takiej mountlisty skończy się dłuższą kontemplacją w oczekiwaniu na zwolnienie systemu. Wadą takiego rozwiązania jest narastająca liczba ikonek na blacie, których nie sposób się pozbyć.
Problemy z Tango nie kończą się na instalacji i złym odczytywaniem listy... To dopiero początek. Może się zdarzyć tak, że po próbie wejścia na dysk sieciowy ujrzymy requester, że system nie może znaleźć urządzenia o dziwnej nazwie USER_C: (to tylko przykład). Jest to objaw tego, że użytkownik USER udostępniający dysk C: jest traktowany jako urządzenie, a USER systemowi nic nie mowi. Żeby to zmienić musimy przypisać takiemu użytkownikowi jego IP w sieci. W tym celu przechodzimy do MiamiDX Database/Hosts i go tam dodajemy. Opis tej zakładki był w poprzednim odcinku, więc jeśli ktoś jeszcze tego nie opanował, to zachęcam do przeczytania. Listę IPów wraz z nazwami Biosów uzyskamy za pomocą programu nbtscan, o którym także była mowa wcześniej. Gdy już wszystkich wpiszemy (zakladając że to jest wykonalne - trudno dopisać 100 osób), to Tango zacznie już normalnie działać. W zasadzie ten krok powinni zrobić wszyscy, bo nawet jeśli Tango samo szuka IP odczytywanego użytkownika, to robi to znacznie dłużej, niż odczytanie tego z listy w MiamiDX. Zmuszenie Tango do samodzielnego szukania IP wcale nie jest takie proste. W preferencjach, w zakładce Network są dwa przyciski do zaptaszkowania. Jeśli komus się nie marzy wpisywanie setek osób do MiamiDX, powinien się zainteresować tymi opcjami. Podobno niektórym zaczęło działać po zaptaszkowaniu pierwszego.
I to wszystko, co o Tango powiedzieć trzeba. Dużo więcej powiedzieć należy, ale nie ma sensu opisywać dogłębnie obsługi i każdego błędu, jaki się może zdarzyć. Ten program trzeba po prostu opanować i umieć z niego korzystać. Zapytają niektorzy czy jest alternatywa... Jest, ale to raczej ciekawostka. Na Aminecie leży skrypt arexxowy (biz/dopus/OpusSMBHandler.lha) który po podpięciu pod lister Opusa pozwoli na przeglądanie plików u innych, ale tak niezręcznie i topornie to działa, że nie należy tego traktować poważnie.
Tutaj nie pójdzie tak łatwo, bo jest sporo rzeczy, ktore trzeba ustawić, niemniej uważnie śledząc moje wskazówki powinno się udać od razu. Instalacja składa się z dwóch części: dodanie wpisów do MiamiDX i część właściwa - konfigurowanie pakietu. Ci bardziej leniwi niech zajrzą na stronę www.amigasamba.org - tam znajdą plik instalacyjny robiący wszystko automatycznie, ale pewne rzeczy nie będą się pokrywały z moim opisem. Tak więc wybór jest taki: albo ktoś korzysta z instalera i nie zależy mu na dopasowaniu ustawień do własnych potrzeb, albo instaluje ręcznie poznając jednocześnie Sambę.
Po rozpakowaniu proponuję cały katalog przegrać tam, gdzie leżą inne
rzeczy do Internetu (lub sieci). Jeśli ktoś wcześniej instalował Tango, to
za moją radą zrobił już katalog Samba i utworzył do niego przypis. W takim
przypadku wystarczy przegrać zawartość katalogu. Mamy więc już ścieżkę
dh1:Work/Internet/Samba a w niej inne katalogi, w tym bin. Ponieważ assign
jest potrzebny zawsze, więc trzeba go dodać do sekwencji startowej:
assign Samba: dh1:Internet/Samba
To jednak nie wszystko - wspomniany katalog bin musi być na liście
katalogów przeszukiwanych przez system, więc dodajemy ścieżkę:
path Samba:bin
Oczywiste jest, że te polecenie należy wpisać po assignie. Od tej pory, w
jakim katalogu byśmy aktualnie nie byli, zawsze system znajdzie pliki z
pakietu Samby. Zakładam, że z tym nie ma problemów, bo to są podstawowe
rzeczy. Przyszla kolej na MiamiDX. Przechodzimy do lubianego zapewne przez
wszystkich Database, a tam wybieramy Services. Jeśli jeszcze tam tego nie
ma, to dodajemy następujące wpisy:
Name: netbios-ns
ID: 137
Protocol: udp
Name: netbios-dgm
ID: 138
Protocol: udp
Name: netbios-ssn
ID: 139
Protocol: tcp
Name: swat
ID: 901
Protocol: tcp
W każdym przypadku pole Aliases zostaje puste. Zrobienie pomyłki na tak
wczesnym etapie nie wróży nic dobrego na przyszłość, więc proponuje wpisy
dokonywać uważnie i bezbłędnie. Jeśli poszło bez problemów, to nie jest żle
i dalsza konfiguracja nie sprawi problemów. Następne na liście jest InetD:
Service: netbios-ssn
Socket: stream
Protocol: tcp
Wait: nowait
User: root
Server: Samba:bin/smbd
Name: smbd
Args: --puste--
Service: netbios-ns
Socket: dgram
Protocol: udp
Wait: wait
User: root
Server: Samba:bin/nmbd
Name: nmbd
Args: --puste--
Service: swat
Socket: stream
Protocol: tcp
Wait: nowait
User: root
Server: Samba:bin/swat
Name: swat
Args: -a
Tym razem tylko trzy, ale za to jakie. Zawartość każdego pola zostala
podana, więc nie chcę słyszeć że ktoś nie umiał. Co oznacza --puste-- chyba
nie muszę tłumaczyć. Kolej na Groups. Tutaj dużo dodawania nie będzie:
Group name: siec
Group ID: 1000
Users: pcguest
Kilka słów wyjaśnienia, co teraz zostało zrobione. Stworzyliśmy na potrzeby
sieci nową grupę użytkowników. Grupa się nazywa siec, a należy do niej
pcguest. Jest to wymagane w Sambie, ponieważ ktoś, kto wchodzi na nasz
komputer musi mieć jakieś prawa do odczytywania lub kasowania, więc musimy
takiego użytkownika zdefiniować. Na razie tego nie zrobiliśmy, ale wiemy,
że do grupy należy pcguest. Jeśli ktoś przewiduje dogłębniej wykorzystać
możliwości Samby i dać rożne prawa rożnym ludziom to za pcguest po
przecinku (albo spacji, nie pamiętam) powinien dopisać kolejnych. Nazwa
dowolna. Groups jednak nic nie da, trzeba każdego użytkownika zdefiniować w
Users:
User name: pcguest
Password: -
User id: 1001
Group id: 1000
Real name: PC Guest
Home sys: sys:
Shell: endcli
Jak widać dodaliśmy właśnie naszego pcguest. Użytkownik ten nie ma hasła
(czyli - w kolumnie) i przydzielone są mu jakieś dziwne numerki. Pierwszy
to identyfikator, każdy następny powinien mieć inny, najlepiej kolejny.
Jest także identyfikator grupy, w naszym przypadku nadaliśmy grupie siec
numer 1000, więc tutaj ustalamy, że ów użytkownik należy do tej właśnie
grupy. Należy uważać, żeby każdy numer w tej kolumnie miał swój własny wpis
w Groups, bo w przeciwnym wypadku nic z tego nie będzie. Grupy nie możemy
zmieniać dla każdego następnego użytkownika - jeśli grupa jest ta sama, to
zawsze wpisujemy jej identyfikator. Co innego z dopisywanymi osobami -
tutaj każdy musi mieć inny numer User id. Można to prześledzić na
dołączonych screenshotach. Wpisane są trzy grupy, każda ma inny
identyfikator i innych użytkowników. Wszyscy są zdefiniowani i zależnie od
grupy każdy ma inny numer. W ostatniej grupie są dwie osoby i druga
ma ustawione hasło, więc aby wejść na komputer musi je wpisać. Reszta pól
nie jest już tak ważna, bo Real name to komentarz, Home dir to katalog
domowy (w naszym wypadku zupełnie niepotrzebny), a Shell to skrypt wykonany
po zalogowaniu się telnetem (dla bezpieczeństwa niech zostanie endcli).
Jeśli to zostało zrobione to czeka nas jeszcze jedna rzecz. W SysCtl
znajdujemy linijkę inetd.toomany i zmieniamy wartość na wyższą. 50 powinno
wystarczyć, aczkolwiek kieśli kiedyś Miami otworzy okienko informacyjne z
wiadomością, że coś zostało zablokowane z powodu zbyt częstych odwołań (i
wiemy, że to nie są działania celowe kogoś z sieci), to można to zmienić na
więcej. I na tym konfiguracja MiamiDX się na razie kończy, dobrym pomysłem
jest zapisanie ustawień.
Pora przejść do konfiguracji właściwej. Żeby Samba działała potrzebuje
pliku konfiguracyjnego. W tym celu w Samba:lib tworzymy plik smb.conf o
następującej zawartości:
[global]
workgroup = LAMER
netbios name = AMIGA
server string = Emers
security = SHARE
log file = /Samba/log/log.%m
max log size = 500
load printers = No
local master = No
guest account = pcguest
guest only = Yes
guest ok = Yes
Przygotowany konfig powinien działać zawsze, potrzebne są jednak drobne
modyfikacje. Pierwsza to:
workgroup = LAMER
Każda sieć ma jakąś nazwę, zwaną grupą roboczą. Domyślnie ustawiona jest po
prostu na WORKGROUP, ale można to zmienić na inną i tu właśnie wpisujemy
jej nazwę. Po co to potrzebne? Załóżmy że mamy w sieci pecety, Amigi i
Macintoshe i chcemy ich sieci jakoś porozdzielać, ale żeby jednocześcnie
wszystkie widziały się nawzajem. Wpisujemy więc pecetom grupę PECETY,
Amigom AMIGI a Macintoshom MAKI. Dzięki temu będziemy mieli podział na wzór
katalogów, w każdym inne komputery. Na potrzeby małej sieci najlepiej mieć
jednak tą samą grupę, więc po podłączeniu do sieci każdy powinien się
spytać o tą nazwę.
netbios name = AMIGA
To jest wspomniana na wstępie nazwa, za pomocą ktorej komputery się rozpoznają.
Tutaj należy wpisać to, co wpisane zostało w MiamiDX w TCP/IP. Ważne jest
także, żeby w MiamiDX/Database/Hosts nasza nazwa biosu miała
przyporzadkowany nasz numer IP. Pisałem o tym w poprzednim odcinku.
server string = Emers
To po prostu komentarz. Można tu wpisać cokolwiek.
local master = No
Wspomniałem wcześniej o bójce komputerów o bycie masterem. Tą linią
stwierdzamy, że masterem być nie chcemy. Nie wiem jak Amiga poradzi sobie z
rozdzielaniem listy, więc lepiej to wyłączyć, ale jeśli ktoś naprawdę chce,
lub musi, to albo niech zamailuje do mnie, albo sam poczyta dokumentację.
Dla tych, którzy wybiorą drugi wariant podpowiem, żeby ustawić także wysoki
numer dla zmiennej os level, 100 będzie wystarczającą wartością.
guest account = pcguest
guest only = Yes
guest ok = Yes
Tutaj ustalamy kim będzie osoba, która będzie się usiłowała dostać na nasz
komputer. W tym przypadku będzie to pcguest, który nie ma hasła. Dla
bezpieczeństa lepiej z tym nie eksperymentować, bo może się okazać, że nasz
gość pokasował nam pare plików na dysku.
Resztę lepiej zostawić tak jak jest (chyba że ktoś nie chce logować
połączeń - wtedy może to wyłączyć). Oczywiście oprócz tego jest mnóstwo
innych parametrów i polecam przejrzeć dokumentacje do smb.conf.
Jak już skonfigurowaliśmy Sambę globalnie, czas udostępnić jakieś
katalogi. Robi się to w tym samym pliku, pod zmiennymi globalnymi. Ogólny
wzór jest taki:
[Nazwa]
comment = Komentarz
path = ścieżka
Właściwie do zwykłego udostępnienia wystarczą tylko te trzy linie. Pierwsza
to nazwa, pod jaka będzie widoczny na liście udostępniony katalog, a druga
to komentarz. Przy ścieżce trzeba się zatrzymać na chwilę. Samba została
przeniesiona z Unixa i korzysta z jego sposobu zapisu pliku. Niewiele on
się różni od amigowego, niemniej drobne różnice są. Najważniejsze jest to,
że ścieżkę zaczyna się od /. Potem podajemy nazwę partycji (lub
identyfikaror, czyli np dh1:), znowu / i potem jest już normalnie, "po
naszemu". Jeśli więc chcemy udostępnić katalog Stuff:Muza/MP3 to wpiszemy:
path=/stuff/muza/mp3
Prawda że proste? Oczywiście zamiast stuff może być dhx. Możemy także
udostępnić całą partycję, lub katalog. Nie próbowałem co sie stanie jeśli
wpiszemy samo /, lub podamy plik wraz ze ścieżką - to pozostawiam do
sprawdzenia dociekliwym. Przykładowe odostępnienie wygląda tak:
[mp3]
comment = Nowe
path = /stuff/mp3
[c64]
comment = Commodore
path = /users/emu/C=64
Jak widać każdy katalog ma te same wartości, ale co jeśli chcemy
udostępnić katalog tylko jednej, wybranej osobie? To już wyższa szkoła
jazdy i nie polecam tego początkującym. Prawde mówiąc sam jeszcze tego nie
robiłem, ale podpowiem, że każde udostępnienie może mieć inne linie które
pozwolą zawęzić nam liczbę osób mogących odczytać katalog. Dzięki
kombinacjom guest ok, user, writeable host allow osiągniemy cel.
I to już praktycznie koniec konfiguracji Samby. Po resecie wszystko
powinno się wczytać i sieciowi koledzy będą mogli przeglądać nasze pliki.
Jeśli jednak coś nie działa, to proponuje jeszcze raz uważnie prześledzić
całą instalacje - być może wkradła się jakaś literówka, lub coś zostało
przeoczone. Jeśli jednak wszystko działa jak należy, to jednak nie można
jeszcze spocząć na laurach, jest jeszcze jedna rzecz do zrobienia.
W MiamiDX dodawaliśmy jakąś dziwną rzecz na porcie 901. Jest to
graficzny interfejs pomagający w konfigurowaniu Samby. Żeby go uruchomić
należy w przeglądarce wpisać adres:
localhost:901
Naszym oczom powinna ukazać się strona. Tak, generuje ją nasz komputer.
Zanim zaczniemy robić cokolwiek musimy się zarejestrować. SWAT korzysta z
haseł wpisanych w MiamiDX, zatem musimy sobie jakies ustawic dla
administratora. Może to być użytkownik o nazwie root, lub jakiś inny, ale
pamiętać należy, żeby potem dodać tę samą osobę w swacie w linku password.
Jeśli to zrobiliśmy, przetestowaliśmy i działa, to jeszcze raz, na chwile wracamy do
MiamiDX/Database/InetD i we wpisie swata wyrzucamy -a z argumentów. Po tym
każde wejście na tę stronę będzie poprzedzone autoryzacją. Dlaczego? Ano
dlatego, że -a to jest parametr włączający wersję demo. Na stronę może
wejść każdy z sieci i bez niczyjej wiedzy udostępnić sobie katalog.
Włączenie autoryzacji nie pozwoli mu na to, jeśli nie będzie znał hasła.
Gdy już to zostało zrobione proponuje dokładniej się zapoznać z linkami.
Możemy dzięki temu łatwiej zmieniać konfigurację, udostępniać katalogi i
podglądać, co ktoś od nas ściąga. O swacie krążą różne opinie, jedni go
lubią, inni nie, więc każdy będzie musiał sobie sam odpowiedzieć na pytanie,
czy tego potrzebuje. Jeśli nie, to lepiej wyrzucić wpis z Miami.
Podstawowa instalacja otoczenia sieciowego dobiegła końca. Tyle powinno wystarczyc, żeby móc normalnie zaistnieć w sieci. Ci, co chcą czegoś więcej niech piszą na maila, postaram się pomóc w miarę możliwości.