• Amiga w sieci lokalnej Ethernet (2) - Samba i Tango

08.02.2005 21:12, autor artykułu: Emers / Appendix
odsłon: 6422, powiększ obrazki, wersja do wydruku,

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.

Teoria

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.

Przygotowania

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.

Tango

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.

Samba

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.

SWAT

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.

Na koniec

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.

    
dodaj komentarz
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem