Rozdział 41.Konfigurowanie grup dyskusyjnych
Tim Parker
W tym rozdziale:
* Usenet i grupy dyskusyjne
* NNTP
* Konfiguracja przeglšdarek grup dyskusyjnych
Jeli posiadasz dostęp do Internetu, wczeniej 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 bezporednio, 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ć wiadomoci, oraz przeglšdarkę, umożliwiajšcš czytanie i
pisanie artykułów.
Oprogramowanie implementujšce przekazywanie wiadomoci 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ększoci 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 wiadomoci, 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 wiadomoci 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
przelš 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 przele 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 iloci
danych. Z tego powodu (oraz z powodu niewielkiej prędkoci 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 iloci 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 porednictwem 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
okrelonej dacie. Trzecim sposobem jest czytanie artykułów po jednym, bez
koniecznoci ł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 okrelonej 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. Jeli przewidujesz korzystanie z wielu grup
dyskusyjnych, powiniene zamiast systemu nntpd zainstalować program INN.
Ponieważ nntpd wystarcza dla większoci 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 wczeniej).
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. Jeli 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łacicielem 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 porednictwem programu inetd.
Jeli 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, okrelajšcym usługi dostępne za
porednictwem protokołu TCP/IP, musi znajdować się wpis:
nntp 119/tcp readnews untp
W większoci 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 zawartociš pola nazwa_serwera, plik nie
jest przeszukiwany dalej. Jeli natomiast pasuje tylko częciowo (tzn. zgadza
się numer podsieci) przeszukiwanie jest kontynuowane. Aby okrelić 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 wartoci:
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. Jeli
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. Jeli 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 domylne 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ć. Jeli 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
oczywicie możliwoć odpowiadania na nie. Można zapoznać się z tematami
poruszanymi w danej grupie, zapisać się do grupy i wykonywać inne czynnoci.
Przeglšdarki różniš się między sobš złożonociš, użytecznociš i wygodš
obsługi. Wraz z dystrybucjami Linuxa dostarczane sš zarówno aplikacje
graficzne, jak i działajšce w trybie tekstowym. Programici 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łanie 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š nowociš, jakš
wprowadził trn, była możliwoć ledzenia wštków (ang. thread, sš to artykuły
powišzane tematycznie). W większoci 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 zawartoci pliku /usr/lib/news/active i rozpoczęcie
indeksowania wszystkich grup wyszczególnionych w tym pliku.
Jeli 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.
Jeli 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. Domylnie nowe artykuły
indeksowane sš co 10 minut. Polecenie uruchamiajšce ten program można umiecić
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łaciciela
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żliwoci 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, jeli sam sprawdzisz, który najbardziej
Ci odpowiada.
Jeli 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.
Wyszukiwarka
Podobne podstrony:
Izaj 41 w,10,13 JEHOWA JEST GOTOWY BRAÄ NAS ZA RÄKÄarkusz Matematyka poziom p rok 10?41arkusz Matematyka poziom p rok 10?41 (2)AE 2012 04 13 10 44 4141 Wojna szeĹciodniowa 5 10 VI67arkusz chemia poziom p rok 10?41wiÄcej podobnych podstron