plik


Rozdział 41.Konfigurowanie grup dyskusyjnych Tim Parker W tym rozdziale: * Usenet i grupy dyskusyjne * NNTP * Konfiguracja przeglšdarek grup dyskusyjnych 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”.

Wyszukiwarka

Podobne podstrony:
Izaj 41 w,10,13 JEHOWA JEST GOTOWY BRAĆ NAS ZA RĘKĘ
arkusz Matematyka poziom p rok 10?41
arkusz Matematyka poziom p rok 10?41 (2)
AE 2012 04 13 10 44 41
41 Wojna sześciodniowa 5 10 VI67
arkusz chemia poziom p rok 10?41

więcej podobnych podstron