41, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta


Rozdział 41.
Konfigurowanie grup dyskusyjnych


Tim Parker

W tym rozdziale:

Jeśli posiadasz dostęp do Internetu, wcześniej czy później będziesz chciał skorzystać z dobrodziejstw oferowanych przez grupy dyskusyjne sieci Usenet. Jest to jeden z najbardziej dynamicznych (i najbardziej kontrowersyjnych) aspektów Internetu. Choć można korzystać tylko z list korespondencyjnych, większość użytkowników jest zainteresowana szczególnie dostępem do sieci Usenet.

Usenet został stworzony po to, aby ułatwić użytkownikom dostęp do grup dyskusyjnych (ang. newsgroups). Grupa dyskusyjna pozwala każdemu, kto ma do niej dostęp, na publiczną rozmowę z pozostałymi członkami grupy. Usenet jest obsługiwany przez miliony sieci w setkach krajów, a korzystają z niego setki milionów użytkowników.

Każdy komputer, który połączony jest z Internetem, czy to bezpośrednio, czy przez bramkę internetową lub połączenie modemowe, może uzyskać dostęp do sieci Usenet. W tym celu trzeba posiadać odpowiednie oprogramowanie, które potrafi załadować i odesłać wiadomości, oraz przeglądarkę, umożliwiającą czytanie i pisanie artykułów.

Oprogramowanie implementujące przekazywanie wiadomości z Usenetu poprzez sieci lokalne nazywane jest NNTP (ang. Network News Transfer Protocol). Za pomocą NNTP system może współpracować z każdym innym obsługującym Usenet. NNTP wchodzi w skład większości dystrybucji Linuxa, dzięki czemu nie trzeba szukać dodatkowego oprogramowania.

Usenet i grupy dyskusyjne

Usługa Usenet składa się z dwóch elementów. Najpierw trzeba załadować do systemu wszystkie wiadomości, za co odpowiedzialne jest oprogramowanie transportujące (NNTP dla połączeń TCP i CNews dla UUCP), a następnie połączyć je i przekonwertować do czytelnej dla użytkownika postaci. Pierwotnie grupy dyskusyjne korzystały wyłącznie z protokołu UUCP, dlatego większość oprogramowania obsługiwała ten standard, a funkcje umożliwiające przesyłanie danych w inny sposób zostały dodane później. Ponieważ większość z Was używać będzie protokołów TCP/IP, w tym rozdziale skoncentrujemy się na oprogramowaniu NNTP.

Transfer wiadomości odbywa się za pomocą techniki nazywanej trasowaniem rozpływowym (ang. flooding). Jeden komputer łączy się z drugim i wysyła do niego wszystkie artykuły (proces przesyłania artykułów nazywa się po angielsku newsfeed). Ten z kolei łączy się i wysyła artykuły do następnego komputera lub kilku komputerów. Takie rozwiązanie pozwala na uniknięcie centralnego rozprowadzania danych. W każdym systemie znajduje się lista komputerów, do których należy przesłać dane.

W systemie biorącym udział w przesyłaniu artykułów może zostać dodany nowy artykuł. Do każdego z artykułów dołączona jest lista serwerów, które go już „widziały” (nazywana ścieżką, ang. Path), co pozwala zapobiegać wielokrotnemu przesyłaniu tych samych danych. System, do którego trafia artykuł, dopisuje swój identyfikator do ścieżki, używając notacji UUCP.

Można ograniczyć obszar, na którym dany artykuł ma być rozprowadzany, przez odpowiedni wpis w jego nagłówku. Dzięki temu możesz napisać artykuł, który będzie czytany tylko w sieci lokalnej (komputery sieci lokalnej po prostu nie prześlą go dalej).

Aby zapobiec powstawaniu duplikatów artykułów krążących w sieci Usenet, każdy z nich posiada swój identyfikator (zapisany w polu Message-Id nagłówka), składający się z niepowtarzalnego numeru i nazwy systemu, w którym artykuł został napisany.

Identyfikator artykułu używany jest przez każdy komputer w momencie rozpoczęcia transferu danych. W każdym systemie znajduje się plik o nazwie history, zawierający identyfikatory dostarczonych do systemu artykułów, na którego podstawie system stwierdza, czy chce, aby dana wiadomość została przesłana, czy też ma już jej własną kopię. Za przesyłanie odpowiednich informacji odpowiedzialny jest protokół ihave/sendme.

Za pomocą protokołu ihave/sendme jeden komputer przesyła do drugiego listę wszystkich posiadanych artykułów i czeka, aż tamten prześle informacje o tym, które z nich chce otrzymać. Artykuły są przesyłane pojedynczo, w odpowiedzi na sygnały sendme. Następnie proces może zostać odwrócony. Takie rozwiązanie działa dobrze, ale jest dość niewygodne przy przesyłaniu większych ilości danych. Z tego powodu (oraz z powodu niewielkiej prędkości przesyłu danych poprzez modemowe połączenia UUCP) protokół ihave/sendme raczej nie jest używany w przypadku, gdy trzeba regularnie przesyłać duże ilości artykułów. Przykładowo, przesłanie 100 MB artykułów za pomocą protokołu ihave/sendme każdego dnia jest praktycznie niewykonalne.

Inną metodą jest przesyłanie za pośrednictwem szybkiego połączenia wszystkich posiadanych artykułów do następnego komputera (ang. batching), który może usunąć te, które już ma (porównując ich numery identyfikacyjne z zapisanymi w pliku history). Ta metoda jest jednak również dość uciążliwa, ponieważ komputer odbierający otrzymuje dużo danych i musi je przetworzyć, co obciąża system.

Istnieją zasadniczo trzy metody dostępu do artykułów przechowywanych w innym systemie. Za pomocą NNTP można załadować artykuły, używając techniki podobnej do protokołu ihave/sendme. Można również zamówić artykuły, które powstały po określonej dacie. Trzecim sposobem jest czytanie artykułów po jednym, bez konieczności ładowania ich do swojego komputera. W tym celu trzeba jednak zalogować się do systemu zdalnego, co w dzisiejszych czasach często nie stanowi problemu.

NNTP

NNTP może działać w dwóch trybach: aktywnie i biernie. Tryb aktywny (podobny do protokołu CNews ihave/sendme) polega na tym, że system wysyłający (klient) oferuje dany artykuł odbierającemu (serwer), który go przyjmuje lub odrzuca. Ten tryb powoduje duże obciążenie serwera, który musi przetworzyć wszystkie posiadane artykuły.

Tryb bierny polega na tym, że komputer odbierający zamawia wszystkie artykuły, które przybyły od określonej daty (za pomocą polecenia newnews). Następnie usuwa artykuły powtarzające się lub niepotrzebne, wykorzystując polecenie article. Jest to rozwiązanie mniej obciążające serwer, który musi tylko wysłać większą liczbę artykułów, ale ze względów bezpieczeństwa serwer przed przesłaniem danych powinien upewnić się, że zamawiający ma prawo czytać otrzymywane informacje.

NNTP został zaimplementowany dla systemu Linux przez Stana Barbera i Phila Lapsleya jako program rezydentny nntpd. Zwykle jest on rozprowadzany w postaci kodu źródłowego, ponieważ do poprawnego działania wymaga wprowadzenia kilku informacji dotyczących systemu.

System nntpd składa się z programu-serwera i dwóch programów-klientów (jednego dla trybu aktywnego, drugiego dla biernego). Dodatkowo większość wersji nntpd zawiera zamiennik programu inews.

Alternatywą dla nntpd może być program INN (InterNetNews), opracowany przez Richa Salza. Jest on również rozprowadzany z wieloma dystrybucjami Linuxa. Pozwala na korzystanie zarówno z UUCP, jak i TCP, ale przeznaczony jest raczej dla większych komputerów. Jeśli przewidujesz korzystanie z wielu grup dyskusyjnych, powinieneś zamiast systemu nntpd zainstalować program INN. Ponieważ nntpd wystarcza dla większości użytkowników, skoncentrujemy się na jego konfiguracji. Dokładniejsze informacje na temat programu INN znajdziesz w dokumentacji dołączonej do oprogramowania lub dostępnej w węzłach BBS i FTP oraz w postaci dokumentu FAQ posyłanego często na listy dyskusyjne.

Kiedy NNTP otrzymuje artykuł z innego komputera, przekazuje go do jednego z programów obsługujących grupy dyskusyjne. Zwykle jest to program rnews lub inews. Możliwe jest również skonfigurowanie NNTP tak, by współpracował z programem relaynews, pozwalającym na przesyłanie wszystkich artykułów do następnych komputerów (ang. batching - proces ten został omówiony wcześniej). Aby można było używać NNTP, należy skonfigurować plik /usr/lib/news/history, zawierający informacje niezbędne do przesyłania danych za pomocą niektórych protokołów.

Instalowanie serwera NNTP

Serwer NNTP o nazwie nntpd zwykle rozprowadzany jest w postaci kodu źródłowego. Trzeba go skompilować w systemie lokalnym, po wprowadzeniu do kodu źródłowego pewnych informacji o systemie. Informacje te można dostarczyć za pomocą programu zapisanego zwykle w pliku o nazwie /usr/lib/news/common/conf.h. Uruchom ten program (jest on w zasadzie zestawem makropoleceń) i odpowiedz na wszystkie zadawane pytania. Jeśli nie możesz go znaleźć, użyj polecenia find:

find / -name conf.h -print

Proces instalacji NNTP zacznij od utworzenia katalogu, w którym będą przechowywane przychodzące artykuły. Może to być na przykład /usr/spool/news/.tmp (lub /var/ spool/news/.tmp). Właścicielem tego katalogu powinien być użytkownik news, należy więc wydać polecenia:

mkdir /usr/spool/news/.tmp
chown news.news /usr/spool/news/.tmp

Serwer NNTP można skonfigurować na dwa sposoby. Może on działać przez cały czas, wówczas należy uruchomić go w jednym z plików rc (zwykle rc.inet2) w trakcie uruchamiania systemu. Można również uruchamiać go tylko wtedy, gdy jest potrzebny, za pośrednictwem programu inetd.

Jeśli nntpd ma działać przez cały czas, upewnij się (sprawdzając w pliku /etc/inetd.conf), że nie jest on wywoływany również przez program inetd, ponieważ spowoduje to konflikt.

Jeżeli chcesz, aby nntpd uruchamiany był przez proces inetd, co może nieco odciążyć system w czasie, gdy grupy dyskusyjne nie muszą być obsługiwane, musisz wprowadzić odpowiednie informacje do pliku /etc/inetd.conf. Za pomocą dowolnego edytora ASCII dodaj do niego wiersz:

nntp stream tcp nowait news /usr/etc/in.nntpd nntpd

Taki wpis może się tam już znajdować, zaznaczony jako komentarz (znak # w pierwszej kolumnie). W takim przypadku wystarczy usunąć symbol komentarza.

Bez względu na to, czy nntpd działa cały czas, czy jest uruchamiany przez proces inetd, w pliku /etc/services, określającym usługi dostępne za pośrednictwem protokołu TCP/IP, musi znajdować się wpis:

nntp 119/tcp readnews untp

W większości wersji Linuxa taki wpis istnieje, ale jest zaznaczony jako komentarz - usuń wtedy znak #.

Konfigurowanie nntpd

Po skompilowaniu programu nntpd (które następuje automatycznie po uruchomieniu programu conf.h) powinieneś skonfigurować plik /usr/lib/news/nntp_access i zdecydować, które serwery i w jaki sposób będą mogły łączyć się z Twoim komputerem za pomocą nntpd. Wpisy w tym pliku mają format:

nazwa_serwera read|xfer|both|no post|no zabronione

nazwa_serwera musi być albo pełną nazwą domenową, albo adresem IP. Można również podać część nazwy lub numeru IP, zezwalając na dostęp wszystkich systemów wchodzących w skład podsieci. Jeżeli nazwa komputera, który próbuje się połączyć, dokładnie zgadza się z zawartością pola nazwa_serwera, plik nie jest przeszukiwany dalej. Jeśli natomiast pasuje tylko częściowo (tzn. zgadza się numer podsieci) przeszukiwanie jest kontynuowane. Aby określić prawa dostępu dla wszystkich komputerów, można zamiast nazwy serwera użyć słowa default.

Prawa dostępu definiowane są w drugim polu. Rozpoznawane są cztery wartości:

read komputer może otrzymywać artykuły;

xfer komputer może wysyłać artykuły;

both komputer może otrzymywać i wysyłać artykuły;

no brak dostępu do artykułów.

Trzecie pole mówi o tym, czy komputer zdalny może wysyłać nowe artykuły. Jeśli znajduje się tu wartość post, komputer może wysyłać nowe artykuły, a lokalny system NNTP zadba o skompletowanie informacji w ich nagłówkach. Jeśli słowo no pojawi się w drugim lub trzecim polu, system nie będzie mógł wysyłać nowych artykułów.

Ostatnie pole zawiera listę grup, do których komputer nie będzie miał dostępu. Pole to rozpoczyna się od wykrzyknika i ma format listy, której poszczególne elementy rozdzielane są przecinkami (taki format jest również używany w programie CNews), na przykład wpis:

chatton.bignet.com both post !alt.local

pozwala komputerowi chatton.bignet.com na wysyłanie i odbieranie artykułów ze wszystkich grup dyskusyjnych za wyjątkiem grup alt i local. Serwer może również wysyłać nowe artykuły.

Prawdopodobnie będziesz chciał skonfigurować plik /usr/lib/news/nntp_access tak, aby wszystkim systemom zdalnym przyznać jakieś domyślne uprawnienia, a następnie stworzyć konkretne wpisy dla systemów, z którymi faktycznie chcesz współpracować. Oto przykładowa zawartość pliku /usr/lib/news/nntp_access:

#wpis domyslny
default xfer no
#pelny dostep dla chatton
chatton.bignet.com both post
#tylko odczyt dla brutus
brutus.bignet.com read no

Dzięki takiemu rozwiązaniu każdy komputer będzie mógł przesyłać artykuły do Twojego komputera (ale nie będzie mógł wysyłać nowych artykułów), natomiast komputer chatton.bignet.com posiada pełne uprawnienia, a brutus.bignet.com tylko prawo odczytu artykułów.

W niektórych systemach NNTP zaimplementowane są systemy autoryzacji, które zabezpieczają przed dostępem do danych przez osoby niepowołane. Ponieważ jak na razie nie działają one dość sprawnie, najlepiej ich nie używać. Jeśli posiadasz nowszą wersję nntpd, poszukaj w dokumentacji informacji o zastosowaniu tych mechanizmów.

Konfiguracja przeglądarek grup dyskusyjnych

Przeglądarka grup dyskusyjnych przedstawia w sposób wygodny dla użytkownika dane zapisane przez takie programy, jak nntpd czy CNews. Pozwala czytać, zapisywać, drukować i wykonywać inne operacje na artykułach, włączając oczywiście możliwość odpowiadania na nie. Można zapoznać się z tematami poruszanymi w danej grupie, zapisać się do grupy i wykonywać inne czynności.

Przeglądarki różnią się między sobą złożonością, użytecznością i wygodą obsługi. Wraz z dystrybucjami Linuxa dostarczane są zarówno aplikacje graficzne, jak i działające w trybie tekstowym. Programiści przystosowują również swoje ulubione przeglądarki działające pierwotnie w systemach UNIX czy DOS.

Nie możemy omówić wszystkich dostępnych przeglądarek, ale pokażemy, jak skonfigurować najpopularniejsze z nich. Te informacje w połączeniu z dokumentacją powinny pozwolić Ci uporać się z konfigurowaniem dowolnej przeglądarki. Ponieważ prawie z każdą dystrybucją rozprowadzane są programy trn i tin, właśnie im przyjrzymy się bliżej w tym rozdziale.

Konfigurowanie programu trn

Przeglądarka trn, wykorzystywana powszechnie przez użytkowników UNIX-a, oparta jest na klasycznej już przeglądarce rn (ang. read news). Główną nowością, jaką wprowadził trn, była możliwość śledzenia wątków (ang. thread, są to artykuły powiązane tematycznie). W większości systemów program trn jest gotowy do użycia bez żadnych dodatkowych zabiegów konfiguracyjnych, o ile nie chcesz korzystać z obsługi wątków.

Aby trn mógł odnaleźć artykuły powiązane ze sobą tematycznie, musi posiadać bazę danych o poszczególnych wątkach. Jest ona zwykle przechowywana w pliku /usr/local/ bin/rn/mthreads, a tworzy ją program mthreads. Najlepiej uruchamiać go w regularnych odstępach czasu za pomocą programu cron (zwykle tak często, jak ładowane są nowe artykuły). Program trn będzie działał bez programu mthreads, ale nie będzie umożliwiał obsługi wątków.

Polecenie mthreads bez żadnych argumentów generuje bazę danych tylko dla ostatnio załadowanych artykułów we wszystkich grupach dyskusyjnych. Aby poindeksować wszystkie grupy od zera, wydaj polecenie:

mthreads all

Spowoduje ono sprawdzenie zawartości pliku /usr/lib/news/active i rozpoczęcie indeksowania wszystkich grup wyszczególnionych w tym pliku.

Jeśli chcesz indeksować tylko niektóre grupy, możesz przekazać ich nazwy jako argumenty wywołania polecenia mthreads (w wierszu poleceń lub pliku crontab), na przykład polecenie

mthreads rec.auto.antique

spowoduje poindeksowanie bazy wątków grupy rec.auto.antique. Możliwe jest też poindeksowanie kilku grup - należy wówczas podać ich nazwy rozdzielone przecinkami jako argumenty polecenia mthreads. Możesz również indeksować całe gałęzie grup, na przykład tak:

mthreads alt

Aby nie indeksować którejś z grup, poprzedź jej nazwę wykrzyknikiem; polecenie:

mthreads rec.auto,rec.audio,!rec.audio.tech

spowoduje poindeksowanie grup gałęzi rec.auto i rec.audio, za wyjątkiem grupy rec.audio.tech.

Jeśli nowe artykuły ładujesz bardzo często, możesz rozważyć uruchomienie programu mthreads jako programu rezydentnego, dzięki czemu nie trzeba uruchamiać go co jakiś czas, a nadchodzące artykuły są przetwarzane natychmiast - obciąża to jednak nieco bardziej zasoby systemu. Aby uruchomić program mthreads jako program rezydentny, należy użyć opcji -d. Domyślnie nowe artykuły indeksowane są co 10 minut. Polecenie uruchamiające ten program można umieścić w jednym z plików rc.

Konfigurowanie programu tin

W przeciwieństwie do programu trn, tin nie wymaga interwencji użytkownika do zbudowania bazy danych o wątkach - tworzy ją za każdym razem, gdy użytkownik wchodzi na listy dyskusyjne. Indeksowanie przebiega dość szybko, chyba że grupa zawiera więcej niż 500 nowych artykułów.

Plik zawierający indeks zapisywany jest w katalogu domowym użytkownika pod nazwą .tin/index/nazwa_grupy_dyskusyjnej. Jego rozmiary mogą być całkiem spore, dlatego warto rozważyć utworzenie jednego indeksu, z którego będą mogli korzystać wszyscy użytkownicy. Taki efekt można uzyskać zmieniając właściciela programu tin:

chown news.news tin

Baza danych o wątkach będzie teraz zapisywana w pliku /usr/spool/news/.index.

Możesz również uruchomić program rezydentny tind, który zadba o aktualizację bazy danych na bieżąco. Kod źródłowy tego programu dostarczany jest wraz z niektórymi dystrybucjami Linuxa, ale rzadko jest on rozprowadzany w wersji skompilowanej - dlatego do jego zainstalowania konieczny będzie kompilator języka C i program narzędziowy make.

Podsumowanie

Po skompilowaniu, zainstalowaniu i skonfigurowaniu systemu NNTP i przeglądarek, możesz zacząć korzystać z możliwości oferowanych przez grupy dyskusyjne. Oprócz przeglądarek tin i trn dostępne są też inne programy tego typu, na przykład nn, również zawierający obsługę wątków. Wybór jednego z nich jest kwestią indywidualnych preferencji. Najlepiej, jeśli sam sprawdzisz, który najbardziej Ci odpowiada.

Jeśli chcesz zabezpieczyć swój system przed hakerami, zajrzyj do rozdziału 42. „Bezpieczeństwo w sieci”.

O tworzeniu kopii zapasowych systemu plików przeczytasz w rozdziale 45. „Kopie zapasowe”.

Automatyzacja zadań, takich jak ładowanie artykułów z grup dyskusyjnych w ciągu nocy, opisana jest w rozdziale 46. „cron i at”.

656 Część VI Linux dla administratorów

656 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\41.DOC

E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\41.DOC 649

Rozdział 41. Konfigurowanie grup dyskusyjnych 655



Wyszukiwarka

Podobne podstrony:
43, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
34, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
58, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
26, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
08, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
10, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
57, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
29, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
46, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
60, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
36, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
49, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
62, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
D, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
55, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
28, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
61, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
42, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
03, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta

więcej podobnych podstron