Linux NET-3-HOWTO, Linux w sieci Terry Dawson, VK2KTJ, terry@perf.no.itg.telstra.com.au v1.0, 22 luty 1997 wersja polska piotr.pogorzelski@ippt.gov.pl w1.0, kwiecień 1997 Obsługa sieci w jądrze systemu Linux została napisana niemal od zera. Osiągi sieci tcp/ip w najnowszych wersjach jądra sprawiają, że Linux staje się godną uwagi alternatywą dla innych, dominujących w tej dziedzinie systemów. Naszym celem jest opisanie w jaki sposób zain­ stalować i skonfigurować oprogramowanie sieciowe, oraz różne inne narzędzia pomagające w obsłudze sieci. ______________________________________________________________________ Table of Contents: 1. Zmiany w stosunku do poprzedniej wersji 2. Wprowadzenie. 2.1. Uwagi na temat ego dokumentu 3. Jak korzystać z tego dokumentu (NET-3-HOWTO-HOWTO ?). 4. Informacje ogólne na temat pracy Linuxa w sieci. 4.1. Krótka historia rozwoju modułów sieciowych jądra Linuxa. 4.2. Skąd zdobyć inne informacje na temat zastosowań sieciowych Linuxa. 4.3. Skąd zdobyć inne, nie związane z Linuxem informacje na temat technik sieciowych. 5. Podstawowe informacje na temat konfigurowania sieci. 5.1. Czego potrzebuję aby rozpocząć? 5.1.1. Aktualne źródła jądra. 5.1.2. Aktualne narzędzia sieciowe. 5.1.3. Programy-aplikacje sieciowe. 5.1.4. Adresy. 5.2. GDzie umieścić polecenia koniguracyjne ? 5.3. Tworzenie interfejsów sieciowych. 5.4. Konfiguracja interfejsu sieciowego. 5.5. Konfiguracja resolvera nazw. 5.5.1. Co to jest nazwa? 5.5.2. Jakie inforamacje będą niezbędne. 5.5.3. /etc/resolv.conf 5.5.4. /etc/host.conf 5.5.5. /etc/hosts 5.6. Konfiguracja interfejsu pętli zwrotnej 5.7. Trasowanie (routing). 5.7.1. Do czego służy program 5.8. Konfiguracja serwerów i usług sieciowych. 5.8.1. (TT 5.8.1.1. Przykład pliku 5.8.2. (TT 5.8.2.1. Przykład pliku 5.9. Inne pliki konfiguracyjne związane z siecią. files. 5.9.1. (TT 5.9.2. (TT 5.10. Bezpieczeństwo sieciowe i sterowanie dostępem. 5.10.1. /etc/ftpusers 5.10.2. /etc/securetty 5.10.3. Mechanizm sterowania dostępem pakietu 5.10.3.1. /etc/hosts.allow 5.10.3.2. /etc/hosts.deny 5.10.4. /etc/hosts.equiv 5.10.5. Prawidłowa konfiguracja demona 5.10.6. Firewalle. 5.10.7. Inne sugestie. 6. Informacje specyficzne technologi sieciowej 6.1. ARCNet 6.2. Appletalk ( 6.2.1. Konfiguracja oprogramowania Appletalk. 6.2.2. Eksportowanie plików Linuxa przez Appletalk. 6.2.3. Udostępnianie twojej drukarki pod Linuxem w sieci Appletalk. 6.2.4. Uruchamianie oprogramowania Appletalk. 6.2.5. Test oprogramowania appletalk. 6.2.6. Uwagi na temat korzystania z oprogramowania Appletalk. 6.2.7. Więcej informacji 6.3. ATM 6.4. AX25 ( 6.5. DECNet 6.6. EQL - multiple line traffic equaliser 6.7. Ethernet 6.8. FDDI 6.9. Frame Relay 6.10. Zliczanie ruchu (IP Accounting) 6.11. IP Aliasing 6.12. Filtrownie pakietów (IP Firewalling) 6.13. IPX ( 6.14. IPv6 6.15. ISDN 6.16. IP Masquerade 6.17. IP Transparent Proxy 6.18. Mobile IP 6.19. Multicast 6.20. NetRom ( 6.21. PLIP 6.21.1. Schemat kabla do połączenia PLIP. 6.22. PPP 6.22.1. Utrzymywanie za pomocą 6.23. Rose protocol ( 6.24. SAMBA - `NetBEUI', `NetBios' support. 6.25. Klient protokołu SLIP 6.25.1. dip 6.25.2. slattach 6.25.3. Kiedy używać każdego z tych programów ? 6.25.4. Statyczny serwer SLIP linie modemowe i programem DIP. 6.25.5. Dynamic SLIP server with a dialup line and DIP. 6.25.6. Korzystanie z programu dip. 6.25.7. Stałe połączenie SLIP przez linię dzierżawioną - slattach. 6.26. Serwer SLIP. 6.26.1. Serwer korzystający z programu 6.26.1.1. Skąd wziąć 6.26.1.2. Konfiguracja pliku 6.26.1.3. Konfiguracja pliku 6.26.1.4. Konfiguracja pliku 6.26.1.5. Konfiguracja pliku 6.26.1.6. Konfiguracja pliku 6.26.2. Serwer SLIP korzystający z programu 6.26.2.1. Konfiguracja pliku 6.26.3. Serwer SLIP korzystający z pakietu 6.27. Obsługa protokołu STRIP (Starmode Radio IP) 6.28. Token Ring 6.29. X.25 6.30. WaveLan Card 7. Kable i okablowanie 7.1. Szeregowy kabek bezmodemowy (Serial NULL Modem cable) 7.2. KAbel portu równoległego (kabel PLIP) 7.3. Okablowanie ethernetowe 10base2 (cienki koncentryk) 7.4. Skrętka (Twisted Pair Ethernet Cable) 8. Spis stosowanych terminów 9. Linux u dostawców Internetu ? 10. Podziękowania 11. Copyright. 12. Od tłumacza ______________________________________________________________________ 11.. ZZmmiiaannyy ww ssttoossuunnkkuu ddoo ppoopprrzzeeddnniieejj wweerrssjjii Dodatki: mnóstwo. Poprawki/uaktualnienia: wszystko. 22.. WWpprroowwaaddzzeenniiee.. Oryginalny dokument NET-FAQ, napisy przez Matta Welsha w celu zebrania odpowiedzi na najczęściej zadawane pytania na temat pracy Linuxa w sieci, powstał zanim ktokolwiek myślał o Projekcie Dokumentacji Linuxa (LDP). Dokument dotyczył bardzo wczesnych wersji rozwojowych modułów sieciowych jądra. Został zastąpiony przez NET-2-HOWTO, jeden z oryginalnych doumentów projektu LDP. Opisywał oprogramowanie sieciowe znane pod nazwą "wersja 2." i "wersja 3.". W tym dokumencie opisujemy jedynie moduły sieciowe jądra w "wersji 3". Poprzednie wersje tego dokumentu osiągneły ogromnr rozmiary, ze względu na wielką ilosć materiału, którego dotyczyły. Była to jedna z przyczyn powstania kilku innych dokumnetów HOWTO opisujących specyficzne problemy związane z siecią. Wszędzie gdzie będzie to możliwe, będziemy odwoływać się do tych dokumentów i opisywać problemy, które jeszcze nie posiadają własnych dokumentów. 22..11.. UUwwaaggii nnaa tteemmaatt eeggoo ddookkuummeennttuu Zawsze doceniam wszelkie uwagi, szczególnie wartościowe wnioski. Proszę kierujcie je bezpośrednio do mnie email . 33.. JJaakk kkoorrzzyyssttaaćć zz tteeggoo ddookkuummeennttuu ((NNEETT--33--HHOOWWTTOO--HHOOWWTTOO ??)).. Format tego dokumentu różni się od poprzednich wersji. Przegrupowałem podrozdziały, tak aby materiał opisowy zgromadzony na początku dokumentu mogł zostać przez czytalnika pominięty. Po nim występuje ogólny opis zagadnień sieciowych, informacje, które trzeba zrozumieć zanim przejdzie się do ostatniej części dokumentu - technicznej dokuemntacji stosowanej technologii. PPrrzzeecczzyyttaajj rroozzddzziiaałłyy ooggóóllnnee Informacje tutaj podane odnoszą nię niemal do wszystkich poźniejszych części dokumentu i są niezbędne do ich zrozumienia. ZZaassttaannóóww ssiięę nnaadd sswwoojjąą ssiieecciiąą Powinieneś wiedzieć jak jest (lub będzie) zbudowana twoja sieć, dokładnie jaki sprzęt i technologie są (będą) wykorzystywane. PPrrzzeecczzyyttaajj rrooddzziiaałłyy ooppiissuujjąąccee wwyykkoorrzzyyssttyywwaannee pprrzzeezz cciieebbiiee technologie" Gdy już wiesz co cię konkretnie zapoznaj się z wybranymi rozdziałami. Znajdziesz tam szczegóły dotyczące opisywanej technologii. WWyykkoonnaajj kkoonnffiigguurraaccjjee ssiieeccii Powinieneś spróbować skonfigurować sieć uważnie notując wszystkie napotkane problemy. JJeeśśllii ppoottrrzzeebbuujjeesszz ppoosszzuukkaajj ddaallsszzeejj ppoommooccyy Jeśli napotkasz problemy, w rozwiązaniu których niniejszy dokument nie będzie pomocny, wtedy zapoznaj się z rozdziałem poświęconym znajdowaniu dalszej pomocy i zgłaszaniu znalezionych błędów. BBaaww ssiięę ddoobbrrzzee!! Sieć to dobra zabawa, ciesz się nią. 44.. IInnffoorrmmaaccjjee ooggóóllnnee nnaa tteemmaatt pprraaccyy LLiinnuuxxaa ww ssiieeccii.. 44..11.. KKrróóttkkaa hhiissttoorriiaa rroozzwwoojjuu mmoodduułłóóww ssiieecciioowwyycchh jjąąddrraa LLiinnuuxxaa.. Opracowanie zupełnie nowej implementacji protokołu tcp/ip, pracująego równie dobrze jak inne istniejące implementacje nie było łatwym zadaniem. Decyzja aby napisać wszystko od zera została podjęta w czasie gdy istniała niepewność, że istniejące implementacje mogą zostać zaprzepaszczone przez restrykcyjne licencje, z powodu toczącej się sprawy sądowej rozpoczętej przez U.S.L. i w momencie gdy sieć była przepełniona świeżym entuzjazmem aby zrobić to inaczej, a być może nawet lepiej niż zostało do tej pory zrobione. Pierwszym ochotnikiem przewodzenia w pracach nad rozwojem modułów jądra do obsługi sieci był Ross Biro . Wykonał prostą i niepełną, lecz w większości przypadków działającą implementacje podstawowych procedur, uzupełnionych przez procedury drajwera karty sieciowej ethernet WD-8003. To wystarczyło, aby przyciągnąć rzeszę ludzi, umożliwić im testowanie i eksperymentowanie. Niektórm udało się nawet doprowadzić do włączenia swoich komputerów do Internetu. Nacisk społeczności Linuxowej na rozwój obsługi sieci przez jądro wciąż wzrastał. Gdy korzyści i stysfakcja z wykonywanej pracy przestały rekompensować w wystarczającym stopni poświecenia i odpieranie rosnących nacisków, Ross zrezygnował z roli prowadzącego budowę oprogramowania sieciowego. Jego wysiłki poświęcone na stworzenie w tak burzliwych czasach czegoś użytecznego stały się katalizatorem przyszłych prac i należy je zaliczyć do najważniejszych czynnikó, które przyczyniły się do osiągnięcia sukcesu. Orest Zborowski dołączył do jądra oryginalny interfejs programistyczny gniazd BSD. Był to ogromny krok naprzód, ponieważ umożliwiał proste przenoszenie na Linuxa wielu istniejących programów sieciowych, bez konieczności ich nadmiernej modyfikacji. Mniej więcej w tym samym czasie Laurence Culhane opracował pierwszy drjwer protokołu SLIP. Wiele osób, które nie posiadały dostępu do sieci Ethernetowych otrzymało możliwość eksperymentowania z nowym oprogramowaniem sieciowym. Ponownie część osób wykorzystała te oprogramowanie do przyłączania się do Internetu. W ten sposób uzmysłowili reszcie jakie możliwości otworzyłyby się przed Linuxem, gdyby tlko posiadał pełną obsługę sieci. Zwiększyło również liczbę osób aktywnie wykorzystujących i eksperymentujących z istnejącym oprogramowaniem. Jednym z ludzi, który równie aktywnie pracował nad zbudowaniem modułów obsługi sieci w jądrze Linuxa był Fred van Kempen . Po krótkim okresie niepewności wywołanym rezygnacją Rossa Biro z prowadzenia projektu, Fred zaoferował swój czas i umiejętności, i przyjął tę rolę w zasadzie bez żadnych sprzeciwów. Fred miał ambitne plany na temat kierunków rozwoju oprogramowania obsługi sieci w jądrze Linuxa i aktywnie je realizował. Stworzył oprogramowanie znane pod nazwą NET-2 (oprogramowanie Rossa nosiło nazwę NET), z którego wielu ludzi korzystało przez długi czas. Fred wprowadził wiele inowacji do programu rozwoju oprogramowania dynamiczny interfejs urządzeń, obsługę protokołu AX.25 (Amateur Radio) i bardziej modułowe implementacje obsługi funkcji sieciowych. Oprogramowanie NET-2 było wykorzystywane przez stale rosnącą grupę ludzi, w miarę jak świat dowiadywał się, że coś takiego istnieje. Oprogramowanie sieciowe nadal było rozpowszechniane w postaci łatek do standardowej dystrybucji jądra i przez długi czas nie było rozpowszechniane razem z jądrem Linuxa. NET-FAQ i późniejszy NET-2-HOWTO opisywały całkiem skomplikowana procedurę uruchomienia sieci pod Linuxem. Fred skoncentrował się na wprowadzaniu nowości do standardowej implementacji sieci, a to zabierało czas. Społeczność użytkowników zaczynała się niecierpliwić oczekujac na coś co działałoby bezbłędnie i zadawalałoby 80% z nich. I podobnie jak w przypadku Rossa, naciski na Freda, jako koordynatora projektu cały czas wzrastały. Alan Cox zaproponował rozwiązanie zaistniałej sytuacji. Zaproponował, że weźmie kod napisany przez Freda i przetestuje go. W ten sposób zapewni jego stabilność satysfakcjonując grono niecerpliwych użytkowników, uwalniając tym samym Freda od licznych nacisków i umożliwiając mu dalszą pracę nad rozwojem oprogramowania. Tak też zrobił, co zakończyło się pełnym sukcesem. Pierwsza wersja oprogramowani stworzona przez Alana nosiła nazwę NET-2D (Debugged - odpluskwiony). Oprogramowanie pracowało stabilnie w większości standardowych konfiguracji i większość użytkowników była wreszcie szczęśliwa. Alan bez wątpienia posiadał umiejętności i pomysły, które chciał zrealizować ku pożytkowi całej społeczności Linuxa. Następstwem było wiele dyskusji na temat kierunków rozwoju oprogramowania sieciowego NET-2 Linuxa. Rozwinęly się dwie różne szkoły, jedna, której ideą było "wpierw niech to działa, później niech będzie to lepsze" i druga z ideą "niech wpierw to będzie lepsze". Ostatecznie wmieszał się w to Linus, oferując swoje wsparcie Alanowi w jego wysiłkach włączając jego kod do standardowej dystrybucji jadra Linuxa. To postawiło Freda w bardzo trudnej pozycji. Został pozbawiony ogromnej rzeszy użytkowników aktywnie testujących i eksperymentujących z jego oprogramowaniem sieciowym, co oznaczało, że jego dalszy rozwój byłby trudny i powolny. Fred ontynuował przez którki czas swoje prace, ostatecznie rezygnując i pozstawiając Alana jako nowego lidera w wysiłkach nad udoskonaleniem oprogramowania sieciowego Linuxa. Wktrótce swoje talenty w tematyce ujawnił Donald Becker i stworzył ogroną liczbę sterowików kart sieciowych ethernet, niemal wszystkich dostępnych w obecnych wersjach jądra. Byli również inni, których wkład w tej dziedzinie był znaczący, lecz praca Donalda była tak płodna, że wymaga osobnej uwagi. Alan kontynuował pracę nad szlifowaniem oprogramowania NET-2-D, równocześnie starając się zająć problemami określonymi jako 'do zrobienia' (TODO). Gdy jądro Linuxa rozwinęło się na tyle by osiągnąć wersję 1.3.*, jego część dotycząca obsługi sieci składała się niemal z wersji NET-3, na której bazyją aktualne wersje. Alan pracował nad wieloma aspektami i funkcjami sieciowymi otrzymując wsparcie od wielu utalentowanych ludzi należących do internetowej społeczności Linuxa. Dzięki temu oprogramowanie rozrastało się jednocześnie w wielu kierunkach. Alan opracował dynamiczne strowniki urządzeń i pierwsze implementacje standardów AX.25 i IPX. Kontynuował pracę , powoli restruturyzując i wprowadzając upleszenia, aż usyskał obecną postać. Obsługa PPP została zaimplementowana przez Michaela Callahana i Ala Longyeara . Miało to ogromne znaczenie i ogromnie zwiększyło libczę osób aktywnie wykorzystujących Linuxa w zastosowaniach sieciowych. Jonathon Naylor znacznie usprawnił początkowy kod Alana obsługi protokołu AX.25. Wprowdził obsługę protokołu NetRom. Obsługa AX.25/NetRom jest ogromnie ważna, ponieważ żaden inny system operacyjny nie posiada w standardowej dystrybycji obsługi tych protokołów. Były również ogromne rzesze innych ludzi, którzy w zanaczący sposób przyczynili się do rozwoju oprogramowania sieciowego Linuxa. Wiele z tych nazwisk znajdziesz później w częściach omawiających poszczególne technologie. Inni przyczynili się do rozwoju bądź opracowując róznych modułów oprogramowania, bądź przysyłająć poprawki usuwające różne błędy, bądź oferując sugestie, raporty z testów lub choćby wsparcie moralne dla aktywnych twórców. Każdy z nich może twierdzić, że brał w tyn udział i oferowałtyle ile mógł. Kod jądra linuxa przeznaczony do obsługi sieci jest świetnym przykładem rezultaów jakie można osiągnąć pracując w tak anarchiczny sposób, jaki to miało miejsce w tym przypadku. Jeśli się to jescze nie zadziwiło, to pamiętaj o jednym: prace rozwojowe nadal trwają. 44..22.. ssiieecciioowwyycchh LLiinnuuxxaa.. SSkkąądd zzddoobbyyćć iinnnnee iinnffoorrmmaaccjjee nnaa tteemmaatt zzaass­­ ttoossoowwaańń Istnieje kilka miejsc, gdzie można znaleźć dobre informacje na temat sieciowych zastosowań Linuxa. Alan Cox, aktualny opiekun i lider oprogramowania sieciowego Linuxa, prowadzi stronę internetową zawierającą najciekawsze i najważniejsze informacje na temat aktualnego rozwoju sieci w Linuxe: www.uk.linux.org . Innym znakomitym miejscem jest książka napisana przez Olafa Kircha pod tytułem Poradnik dla administratorów sieci. Powstała w ramach Projektu dokumentacji Linuxa i jest dostępna tutaj: Poradnik dla administratorów sieci - wersja HTML lub w innych formatach tutaj archiwum ftp sunsite.unc.edu LDP . Książka Olafa jest całkiem wyczerpująca i dostarcza dobrego, stojacego na wysokim poziomie przeglądowego spojrzenia na konfigurację sieci pod Linuxem. Istnieje specjalna grupa dyskusyjna (angielsko języczna), poświęcona sieci i podobnym problemom: comp.os.linux.networking Instnieje angielsko języczna lista dyskusyjna, na którą możesz się zapisać i gdzie możesz zadawać pytania odnoszące się do funkcji sieciowych Linuxa. Aby się zapisać musisz wysłać następujący list: To: majordomo@vger.rutgers.edu Subject: anything at all Message: subscribe linux-net W większości serwerów IRC istnieją zwykle kanały #linux, na których obecni tam ludzie będą potrafili odpowiedzieć na pytania dotyczące sieci pod Linuxem. Pamiętaj, że zgłaszając jakikolwiek problem należy podawać jak najwięcej dotyczących go szczegółów. Koniecznie należy podać wersje używanego oprogramowania, sczególnie wersję jądra (uname -a), wersję takich narzędzi jak _p_p_p_d lub _d_i_p i dokładną naturę problemu na który napotkałeś. To znaczy dokładnie zanotowane komunikaty systemowe jakie otrzymałeś i dokładny opis składni wydawanych poleceń. 44..33.. tteemmaatt tteecchhnniikk ssiieecciioowwyycchh.. SSkkąądd zzddoobbyyćć iinnnnee,, nniiee zzwwiiąązzaannee zz LLiinn­­ uuxxeemm iinnffoorrmmaaccjjee nnaa Jeśli szukasz podstawowych informacji o tcp/ip, polecam zapozananie się z następującymi dokumentami: wwpprroowwaaddzzeenniiee ddoo ttccpp//iipp dostępne w wersji tekstowej i postscriptowej . ttccpp//zzaarrzząąddzzaanniiee pprroottookkoołłeemm iipp dostępne w wersji textowej i postscriptowej . Jeśłi poszukujesz dokładniejszych informacji na temat sieci tcp/ip mocno polecam: "Internetworking with TCP/IP" by Douglas E. Comer ISBN 0-13-474321-0 Prentice Hall publications. Jeśli chcesz się nauczyć w jaki sposób budować programy sieciowe w środowiskach zgodnych z systemem UNIX, mocno polecam: "Unix Network Programming" by W. Richard Stevens ISBN 0-13-949876-1 Prentice Hall publications. Możesz również skorzystać z grupy dyskusyjnej comp.protocols.tcp-ip . Istotnym źródłem konkretnych informacji technicznych związanych z Internetem i protokołem tcp/ip są dokumenty RFC. RFC to skrót od "Request For Comments", jest to standardowy sposób ogłaszania i dokumentowania obowiązujących standardów internetowych. Istnieje wiele miejsc skąd można poprać dokumenty RFC. Większość z nich to archiwa ftp, część udostępnia dokumenty RFC również przez interfejs WWW dostarczając jednocześnie możliwość przeszukiwania wszystkich dokumentów w poszukiwaniu słów kluczowych. Jednym z archimum dokumntów RFC jest: baza danych Nexor RFC . 55.. PPooddssttaawwoowwee iinnffoorrmmaaccjjee nnaa tteemmaatt kkoonnffiigguurroowwaanniiaa ssiieeccii.. Aby porawnie skonfigurować sieć, musisz zapoznać się i zrozumieć informacje prezentowane w kolejnych podrozdziałach. Są to podstawowe zasady funkcjonowania sieci, niezależnie od jej wewnętrznej natury. 55..11.. CCzzeeggoo ppoottrrzzeebbuujjęę aabbyy rroozzppoocczząąćć?? Zanim zaczniesz budować lub konfigurować swoją sieć będziesz potrzebował kilku rzeczy. Najważniejsze z nich to: 55..11..11.. AAkkttuuaallnnee źźrróóddłłaa jjąąddrraa.. Ponieważ jądro którego używasz może nie posiadać obsługi sieci, lub kart sieciowych, które posiadasz, będziesz prawdopodobnie potrzebował źródła jądra, abyś mogł skompilować nowe jądro z odpowiednimi opcjami. Najnowszą wersją jądra mozna uzyskać z: ftp.funet.fi . Zwykle pliki źródłowe powinny być rozpakowane do katalogu /usr/src/linux. Jeśli potrzebujesz informacji jak dodać do jądra dodatkowe łaty lub jak skompilować jądro powinieneś przeczytać Kernel- HOWTO . Jeśli wyraźnie nie zostało to zaznaczone, zalecam pozostanie przy standardowych wersjach jądra (te z parzystymi numerami wersji po pierwszej kropce). Wersje testowo-rozwojowe (z nieparzystą drugą liczbą) mogą mieć zmienioną strukturę wewnętrzną lub wprowadzone inne zmiany uniemożliwiające poprawną współpracę z innym oprogramowaniem zainstalowanym na twoim systemie. Jeśli nie jesteś pewien, że poradzisz sobie z tego rodzaju problemami, w połączeniu z możliwosćią wystąpienia błędu w innym oprogramowaniu, nie używaj wersji rozwojowych. 55..11..22.. AAkkttuuaallnnee nnaarrzzęęddzziiaa ssiieecciioowwee.. Narzędzia sieciowe to programy służące do konfigurowania urządzeń sieciowych Linuxa. Np. pozwalają na przydzielenie urządzeniu numeru adresu IP lu na skonfigurowanie routingu (marszruty). Nwe dystrybucje Linuxa zawierają wszelkie niezbędne narzędzia sieciowe. Jeśli ich jescze nie zainstalowałeś, powinieneś to teraz zrobić. Jeśli nie instalowałeś Linuxa z dystrybucji, będziesz musiał pobrać źródła i skompilować narzędzia samodzielnie. To nie jest trudne. Narzędziami sieciowymi opiekuje się Bernd Eckenfels i są dostępne pod adresem: ftp.inka.de lub kopia ftp.linux.uk.org . Pamiętaj aby wybrac wersję najbardziej odpowiednią dla wersji jądra, które posiadasz, postępuj zgodnie z uwagami zawartymi w instalowanym pakiecie. Aby skonfigurować wersję aktualną w momencie pisania tego dokumentu musisz wykonać następujące polecenia: # # cd /usr/src # tar xvfz net-tools-1.32-alpha.tar.gz # cd net-tools-1.32-alpha # make config # make # make install # Dodatkowo jeśli zamierzasz skonfigurować firewall lub korzystac z funkcji IP Masquerade, potrzenujesz programu _i_p_f_w_a_d_m. Najnowszą wersję można zdobyć tutaj: ftp.xos.nl . Pamiętaj, że dostępnych jest kilka wersji. Musisz wybrać tę, która najlepiej współpracuje z jądrem, które posiadasz. Aby skonfigurować wersję aktualną w momencie pisania tego dokumentu musisz wykonać następujące polecenia: # # cd /usr/src # tar xvfz ipfwadm-2.3.0.tar.gz # cd ipfwadm-2.3.0 # make # make install # 55..11..33.. PPrrooggrraammyy--aapplliikkaaccjjee ssiieecciioowwee.. Sieciowe programy użytkowe (aplikacje sieciowe) to takie, jak np. _t_e_l_n_e_t,_f_t_p i ich odpowiedniki po stronie serwera. Dystrybucją większości z nich zajmuje się David Holland . Można je zdobyć z ftp.uk.linux.org . Aby skonfigurować wersję aktualną w momencie pisania tego dokumentu musisz wykonać następujące polecenia: # # cd /usr/src # tar xvfz /pub/net/NetKit-B-0.08.tar.gz # cd NetKit-B-0.08 # more README # vi MCONFIG # make # make install # 55..11..44.. AAddrreessyy.. Adresy protokołu IP (Internet Protocol) składają się z czterech bajtów. Zwykle zapisuje się w notacji zwanej 'dziesiętną-z kropkami (decimal dotted notation). Każdy bajt jest zamieniany na liczbę dziesiętną (0-255), opuszczając wszelkie zera na początku (chyba, że liczba jest równa zero) i zapisywany kolejno, rozdzielony jeden od drugiego kropką `.'. Konwencja wymaga, aby każdy interfejs sieciowy komputer czy routera posiadał własny numer IP. Można ten sam numer przydzielać do róznych urządzeń sieciowych jednego komputera, lecz zwykle każdy interfejs posiada własny numer IP. Numery IP sieci to nieprzerwane sekwencje adresów IP. Wszystkie adresy należące do jednej sieci mają wspólną liczbę cyfr w pełnym adresie IP. Część adresu wspólna dla wszystkich adresów IP należących do sieci nazywa się numerem sieci (adresu IP).Pozostałe cyfry określają adres komputera . Liczba bitów które są wszpólne dla wszystkich adresów w ramach jednej sieci nazywamy maską siecie (netmaską). Rolą netmaski jest określenie które adresy przynależą do sieci, której ona dotyczy, a które nie. Rozważmy następujący przykład: rnet Protocol Networks are contiguous sequences of IP addresses. All addresses within a network have a number of digits within the address in common. The portion of the address that is common amongst all addresses within the network is called the `network portion' of the address. The remaining digits are called the `host portion'. The number of bits that are shared by all addresses within a network is called the netmask and it is role of the netmask to determine which addresses belong to the network it is applied to and which don't. For example, consider the following: ----------------- --------------- Host Address 192.168.110.23 Adres komputera Network Mask 255.255.255.0 Netmaska Network Portion 192.168.110. Cześć sieciowa adresu Host portion .23 Cześć komputerowa adresu ----------------- --------------- Network Address 192.168.110.0 Adres sieci Broadcast Address 192.168.110.255 Adres ogłoszeniowy (informacja wysłana pod ten adres dotrze do wszystkich komputerów danej sieci) ----------------- --------------- Jeśli dowolny adres IP poddamy operacji bitowej koniunckcji z jego netmaską, otrzymamy w ten sposób adres sieci, do której on należy. Adres sieci jezt zatem najmniejszym adresem w puli adresów danej sieci z zawsze wypełnioną zerami częscią komputerową adresu. Adres ogłoszeniowy (broadcast) to specjaly adres IP. Wszystkie komputery w danej sieci prócz nasłuchiwania pakietów adresowanych pod ich numer IP, nasłuchują również pakietów kierowanych na ten adres. Jeśli chemy wysłać pakiet, który ma dotrzeć do wszystkich komputerów w danej sieci, korzystamy właśnie z adresu ogłoszeniowego. Różnego rodzaje informacje dotyczące np. trasowania (routingu) lub zawierające różane ostrzerzenia nadawane są właśnie na ten adres, tak aby wszystkie komputery otrzymały go jednocześnie. Istniejądwa standardy jak powinien wyglądaćadres ogłoszeniowy. W powyższym przykładzie byłto 192.168.110.255. Z nieznanych przyczyn w niektórych miejscach jako adresu ogłoszeniowego użwa się adresu sieci. W ppraktyce zasadnizco nie ma zanczenia, której konwencji uzywamy, pod warunkiem, że wszystkie komputery mają skonfigurowany adres ogłoszeniowy w ten sam sposób. Z przyczyn administracyjnych w początkowym okresie rozwoju protokołu IP, pewne grupy adresów IP zostału połączone w sieci, które z kolei zostały połączone w klasy. Te klasy dostarczają określoną liczbę różnej wielkości sieci, które mogą być przydzielane użytkownikom. Wygląda to mniej więcej tak: ---------------------------------------------------------- | Klasa | Netmaska | Adresy sieciowe | | sieci | | | ---------------------------------------------------------- | A | 255.0.0.0 | 0.0.0.0 - 127.255.255.255 | | B | 255.255.0.0 | 128.0.0.0 - 191.255.255.255 | | C | 255.255.255.0 | 192.0.0.0 - 223.255.255.255 | |Multicast| 240.0.0.0 | 224.0.0.0 - 239.255.255.255 | ---------------------------------------------------------- Z których adresów powinieneś korzystać zależy bezpośrednio od tego co robisz. Aby uzyskać wszystkie adresy których potrzebujesz możesz być zmuszony do wykonania kombinacji następujących działań: IInnssttaallaaccjjaa LLiinnuuxxaa ww iissttnniieejjąącceejj ssiieeccii IIPP Jeśli hcesz zainstalować Linuxa w istniejącej sieci IP powinieneśskontaktowaćsię z administratorem sieci i poprosić go o następujące informacje: ˇ Adres IP komputera ˇ Adres IP sieci ˇ Adrs ogłoszeniowy (broadcast) ˇ Netmaska ˇ Adres routera ˇ Adres serwera DNS Następnie powinieneś skonfigurować urządzenie sieciowe podając uzyskane informacje. Nie możesz wziąć ich z powietrza i oczekiwać, że wszystko będzie działać poprawnie. BBuuddoowwaanniiee nnoowweejj ssiieeccii,, kkttóórraa nniiggddyy nniiee bbęęddzziiee ppooddłłąącczzoonnaa ddoo internetu" Jeśli budujesz prywatną sieć i nie masz zamiaru podłączać ją do Internetu to możesz wybrać zupełnie dowolne numery IP. Jednak dla bezpieczeństwa i porządku powinieneś skorzystać z grupy adresów IP pozostawionych dokładnie w tym celu. Sąone określone w dokumencie RFC1597: ----------------------------------------------------------- | Zarezerwowane prywatne adresy IP | ----------------------------------------------------------- | Klasa | Netmaska | Adres komputera | | sieci | | | ----------------------------------------------------------- | A | 255.0.0.0 | 10.0.0.0 - 10.255.255.255 | | B | 255.255.0.0 | 172.16.0.0 - 172.31.255.255 | | C | 255.255.255.0 | 192.168.0.0 - 192.168.255.255 | ----------------------------------------------------------- Powinieneś się wpierw zdecydować jak wielka będzie twoja sieć, a następnie wybrać tyle adresów IP ile potrzebujesz. 55..22.. GGDDzziiee uummiieeśścciićć ppoolleecceenniiaa kkoonniigguurraaccyyjjnnee ?? Istnieje kilka sposobów realizacji procedury uruchamiania systemu Linux. Po załadowaniu jądra uruchamiany jest program o nazwie `init'. Porgram init odczytuje swój plik konfiguracyjny /etc/inittab i kontynuuje proces uruchamiania systemu. Istnieje kilka odmian programu init i to jest właśnie przyczyna różnic w konfiguracji między różnymi dystrybucjami czy komputerami. Zwykle plik /etc/inittab zawiera pozycję wyglądającą mniej więcej tak: si::sysinit:/etc/init.d/boot Ten wiersz określa nazwę skryptu który ostatecznie jest odpowiedzialny za proceduręstartową. Jest to mniej więcej odpowiednik pliku AUTOEXEC.BAT w DOSie. SKrypt startowy uruchamia zwykle różne inne skrypty i siećjest konfigurowana zwyklę jednym z takich skryptów. Poniźsza tabela może posłużyć jako przewodnik po twoim systemie: ------------------------------------------------------------------------------- Dystryb. |Konfiguracja interfeju(karty)/routingu | Inicjalizacja ------------------------------------------------------------------------------- Debian |/etc/init.d/network |/etc/init.d/netbase | |/etc/init.d/netstd_init | |/etc/init.d/netstd_nfs | |/etc/init.d/netstd_misc ------------------------------------------------------------------------------- Slackware|/etc/rc.d/rc.inet1 |/etc/rc.d/rc.inet2 ------------------------------------------------------------------------------- RedHat |/etc/sysconfig/network-scripts/ifup-|/etc/rc.d/init.d/network ------------------------------------------------------------------------------- Większość nowocześnych dystrybucji zawiera program, który umożliwi konfigurację wielu podstawowych interfejsów sieciowych. Jeśłi masz taki program powinieneś sprawdzić czy jest on dla ciebie wystarczający, zanim zdecydujesz się na ręczną modyfikacje. configuration. ----------------------------------------- Dystryb. | Program konfiguracji sieci ----------------------------------------- RedHat | /sbin/netcfg Slackware | /sbin/netconfig ----------------------------------------- 55..33.. TTwwoorrzzeenniiee iinntteerrffeejjssóóww ssiieecciioowwyycchh.. W większości systemów Unix urządzenia sieciowe znajdują się w katlogu _d_e_v. W linuxie tak nie jest. Linux tworzy urządzenia sieciowe dynamicznie, dlatego nie wymaga istnienia plików urządzeń sieciowych. W większości przypadków urządzenia sieciowe są tworzone automatycznie przez sterowniki tych urządzeń w czasie ich iniclacji i rozpoznawania sprzętu. Na przykład sterowniki sieciowych kart ethernetowych tworzą interfejsy o nazwach eth[0..] sekwencyjnie w miarę rozpoznawania kolejnych urządzeń. Pierwsz znależiona karta ethernetowa staje się urządzeniem eth0, druga eth1 itf. Jednak w niektórych przypadkach, zwykle kiedy korzystamy z protokołów SLIP lub PPP, urządzenia sieciowe są tworzone na żądanie programów wykonywanych przez użytkownika. Odbywa się podobny sekwencyjny przydział nmazw urządzeń, lecz nie dzieje się to w sposób automatyczny w czasie ładowania systemu. Dzieje się tak dlatego, że wprzeciwieństwie do kart ethetnetowych liczba akrywnych interfejsów slip lub ppp w całym okresie pracy komputera może się zmieniać. Powiemy o tym dokłaniej w dalszej części. 55..44.. KKoonnffiigguurraaccjjaa iinntteerrffeejjssuu ssiieecciioowweeggoo.. Jeśli posiadasz już wszelkie niezbędne oprogramowanie i informacje o potrzebnyhc adresach sieciowych możesz rozpocząć konfigurację interfejsu. Kiedy mówimy o konfiguracji interfejsu sieciowego mamy na myśli proces przydzielenia mu odpowiedniego adreu IP i nadania odpowiednich wartości innym jego parametrom. W tm celu najczęściej posługujemy się programem _i_f_c_o_n_f_i_g (interface configre). Zwykle używa się go sposób podobny do podanego poniżej: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up W tym przypadku konfiguruję kartę ethernetową `eth0' nadając jej adres IP `192.168.0.1' i netmaskę `255.255.255.0'. Parametr `_u_p' na końcu wiersza oznacza, że intefejspowinien zostać aktywowany (rozpocząć prazcę). Jadro konfigurująć interfejsy sieciowe przyjmuje pewne domyślne wartośći parametrów. a przykład mogłbyś podać adres IP i adres ogłoszeniowy (broadcast) danego interfejsu, lecz jeśli tego nie zrobisz jądro znajdzie sensowne wartości dla tych parametrów na podstawie klasy konfigurowaneo adresu IP. W moim przykładzie jądro przyjmie, że jest interfejs jest konfigurowany w sieci klasy C i nada adresowi sieci wartość `192.168.0.0', a adresowi ogłoszeniowemu `192.168.0.255'. Polecenie _i_f_c_o_n_f_i_g posiada znacznie więcej opcji. Najważniejsze z nich to: uupp włącznie interfejsu. ddoowwnn wyłączenie interfejsu. --aarrpp włączenie lub wyłączenie korzystania z protokołu ARP na tym interfejsie --aallllmmuullttii włączenie lub wyłączenie korzystania z trybu zmuszone do odbierania wszelkich pakietów, a nie tylko tych adresowanych bezpośrednio do niego. Jest bardzo ważna dla programów _t_c_p_d_u_m_p i innych podglądaczy pakietów. mmttuu NN ustawienie wielkości parametru _M_T_U danego urządzenia. nneettmmaasskk aaddddrr adres sieci, do której należy (jest podłączony) interfejs. iirrqq aaddddrr ten parametr ma zastosowanie tylko dla niektórych modułów sprzętowych. Pozwala na ustawienie wartośćprzerwania IRQ z którego powinno korzystaćdane urządzenie. --bbrrooaaddccaasstt aaddddrr pozwala na włączenie odbierania pakietów skierowanych na podany adres ogłoszeniowy, lub na zablokowanie odbierania tych pakietów. --ppooiinnttooppooiinntt aaddddrr pozwala na podanie adresu komputera na drugim końsu połączzenia point-to-point obsługiwanego przez ten interfejs. Ma to miejsce w przypadku takich protokołów jak _s_l_i_p czy ppp. hhww <> <> pozwala na określenie adresu sprzętowego urządzenia lecz tylko dla ograniczonego rodzaju urządzeń. Nie jest często używany w sieciach Ethernet, za to zęsto wykorzystuje sięgo w sieciach AX.25. Polecenie _i_f_c_o_n_f_i_g można stosować dla każdego interfejsu sieciowego. Niektóre porgramy użytkownika, jak _p_p_p_d czy _d_i_p korzystają z niego w celu zkonfigurowania interfejsu sieciowego, tyż po jego utworzeniu. W takim przypadku nie jest potrzebna ręczna konfiguracja tych urządzeń. 55..55.. KKoonnffiigguurraaccjjaa rreessoollvveerraa nnaazzww.. `_R_e_s_o_l_v_e_r _n_a_z_w ' jest częscią standardowej biblioteki linuxa. JEgo podstawową funkcją jest zamiana wygodnych dla czlowieka nazw komputerów, jak `ftp.funet.fi' na ich adres 128.214.248.6, którym posługują się komputery. 55..55..11.. CCoo ttoo jjeesstt nnaazzwwaa?? Prawdopodownie spotkałeś się z nazwami komputerów, lecz być może nie weisz w jaki sposób są konstruowane lub rozkłądane. Nazwy domen internetowych są w swojej naturze hierachiczne, to znaczy posiadają strukturę drzewiastą. _d_o_m_e_n_a jest rodziną, grupą nazw. _D_o_m_e_n_a może być podzielona na _p_o_d_d_o_m_e_n_y (subdomain). _N_o_m_e_n_a _n_a_j_w_y_ż_s_z_e_g_o _p_o_z_i_o_m_u (top level domain) jest domeną, która jednocześnie nie jest poddomeną. Domeny najwyższego poziomu są określone w dokumencie RFC-920. Poniżej kilka przykładów domen najwyższego poziomu. CCOOMM organizacje komercyjne EEDDUU organizacje edukacyjne GGOOVV organizacje rządzowe MMIILL organizacje wojskowe OORRGG inne organizacje oozznnaacczzeenniiee kkrraajjuu dwuliterowe kody państw, reprezentujące konkretne państwo. Każda z domen najwyższego poziomu posiada poddomeny. Domey najwyższego poziomu o nazwach odpowiadających kodom państw, są zwykle podobnie podzielone, jak domeny najwyższego poziomu tzn. można tzm znaleźć poddomeny com, edu, gov, mil i org. Na koniec otrzymujemy com.au i gov.au dla organizacji komercyjnych i rządowych w Australii. Z przyczyn historycznych większośćdomen należących do domen najwyższego poziomu dotyczy organizacji amerykańskich, choć Stany Zjednoczone mają również własną domenę `.us'. Następny poziom podziału odzwierciedla zwykle nazwę instytucji/organizacji. Dalsze poddomeny różnią się w swojej naturze, często ten poziom domen jest zależny od wewnętrznej struktury instytucji lecz może być zależny od dowolnego, rozsądnego kryterium przyjętego przez osoby zarządzające siecią w danej instytucji. Ostatni w strukturze człon domeny, lecz pierwszy z lewej w jej nazwie oznacza _n_a_z_w_ę _k_o_m_p_u_t_e_r_a (hostname) i musi być jednoznaczny w danej poddomenie. Pozostała część jezt nazywana _d_o_m_e_n_ą danego komputera (domainname), a całość jest nazywana `_F_u_l_l_y _Q_u_a_l_i_f_i_e_d _D_o_m_a_i_n _N_a_m_e _F_Q_D_M' - Pełna nazwa domenowa. Biorąc za przykład mój komputer pocztowy, jego FQDN to `perf.no.itg.telstra.com.au'. To znaczy, że komputer nazywa się `perf', a domena `no.itg.telstra.com.au'. Nazwa mojej domeny rozpoczyna się od członu oznaczającego kraj, Australię. Ponieważ jesteśmy organizacją komercyjną kolejnym poziomem jest `com'. `telstra' oznacza nazwę firmy (starą), a dalsze człony są pochodną wewnętrznej struktury naszej firmy. Moj komputer należy do Information Technolog Group w sekcji Network Operations. 55..55..22.. JJaakkiiee iinnffoorraammaaccjjee bbęęddąą nniieezzbbęęddnnee.. Muszisz wiedzieć do jakiej domeny należy twój komputer. Oprogramowanie resolwera nazw wykonuje swoją pracę odwołując się do _s_e_r_w_e_r_a _D_N_S (Domain Name Server), będziesz potrebował adres IP najbliższego serwera DNS. Muszisz poprawić try pliki. Omówię każdy z nich. 55..55..33.. //eettcc//rreessoollvv..ccoonnff /etc/resolv.conf jest głównym plikiem konfiguracyjnym resolwera nazw. Posiada bardzo prosty format. Jest to plik tekstowy zawierający jedno polecenie na wiersz. Najczęscieś stosuje się trzy słowa kluczowe: ddoommaaiinn określan nazwę domeny, do której należy dany omputer sseeaarrcchh okreśła listę domen, które mają być przeszukiwane w poszukiwaniu podanej nazwy komputera (w przypadku gdy nazwa komputera nie została podana w postaci FQDN) nnaammeesseerrvveerr może by powtórzone wielokrotnie, określa adres serwera DNS przykładowy plik /etc/resolv.conf mogłby wyglądać nastepująco: domain maths.wu.edu.au search maths.wu.edu.au wu.edu.au nameserver 192.168.10.1 nameserver 192.168.12.1 W przykładzie podaliśmu, że podstawową domeną, do której należy kom­ puter i która nędzie dodawana do nazwy komputera jeśli nie zsotała podana w formacie FQDN jest maths.wu.edu.au. Jeśłi komputer nie zostanie znależiony w tej doenie resolwer przeszuka jeszcze domenę wu.edu.au. Podano również adresy IP dwóch serwerów DNS. 55..55..44.. //eettcc//hhoosstt..ccoonnff Plik /etc/host.conf to plik, które określa niektóre zachowania resolvera. Jego format jest dokladnie opisany na stronie podręcznika (man resolv+). W większości przypadków wystraczy taki plik: order hosts,bind multi on Ta konfiguracja informuje resolver, że poszukując nazwy komputera nleży wpierw sprawdzać zawarość pliku /etc/hosts, zanim zacznie się zadawać pytania serwerowi DNS. Oznacza również, że należy przekazywać wszystkie znalezione w tym pliku adresy IP odpowiadające nazwie poszukiwanego komputera, a nie tylko pierwszy z nich. 55..55..55.. //eettcc//hhoossttss Plik /etc/hosts jest to miejsce, gdzie umieszcza sie nazwy i adresy loklanych komputerów. Jeśli umieścisz w tym pliku nazwę i adres komputera, nie musisz pytać się o jego adres serwera DNS. Wadą tego rozwiązania jest to, że musisz pamiętać aby informacje zawartew tym pliku były aktualne. W dobrze zarządzanym sytemi w niniejszym pliku można zwykle znaleźć nazwę interfejsu pętli zwrotnej i nazwy loklanych komputerów. # /etc/hosts 127.0.0.1 localhost loopback 192.168.0.1 nazwa.tego.komputera Możesz podać więcej niż jedną nazwę odpowiadającą danemu numerowi IP, jak to zrobiliśmy w pozyższym przykładzie w przypadku lokalnej ptli zwrotnej. 55..66.. KKoonnffiigguurraaccjjaa iinntteerrffeejjssuu ppęęttllii zzwwrroottnneejj Interfejs pętli zwrótnej (`loopback' interface) jest interfejsem specjalnego rodzaju, umożliwiającym nawiązywanie połączeńz samym sobą. Istnieje wiele przyczyn, dla których mogłbyś chcieć to robić. Na przykład w celu przetestowania oprogramowania sieciowego, bez onieczności zawracania głowy komukolwiek inneu. Adres `127.0.0.1' zostałprzypisany specjalnie dla tego interfejsu. Dlatego niezależnie na którym komputerze bedziesz pracował, jeśli połączysz się z komputerem o adresie 127.0.0.1 zawsze to będzie ten komputer, zktórego próbujesz nawiązać połączenie. Skonfigurowanie interfejsu pętli zwortnej jest proste, musisz się upewnić, że przy starcie sytemu wykonuje się następujące polecenie: # ifconfig lo 127.0.0.1 # route add -host 127.0.0.1 lo Więcej na temat polecenia _r_o_u_t_e powiemy w następnym rozdziale. 55..77.. TTrraassoowwaanniiee ((rroouuttiinngg)).. Trasowanie ruchu (routing) to ogromny temat. Można na ten temat napisać bardzo dużo. Większość z was spotka się z całkiem prostymi konfiguracjami trasowania, a część nie. Opowiem o podstawowych prawach trasowania ruchu. Jeśli potrzebujesz bardziej szczegółowych informacji radzę zapoznać się z dokumentami wspomnianymi na początku. Rozpocznijmy od definicji. Cot to jest rasowanie pakietów IP. Oto jedna z definicji, którą ja używam: Trasowanie pakietów IP to proces, w którym komputer z przyłączeniami do wielu sieci decyduje, gdzie wysłać otrzy­ mane pakiety. Zilustrujmy to przykładem. Wyobrażmy sobie typowy biurowy router. Mógłby mieć połączenie PPP z internetem, kilka segmentów ethernetowych obsługujących stacje robocze i jeszcze jedno połączenie PPP do innego biura. Kiedy router otrzymuje datagram z jednego ze swoich przyłączeń sieciowych, trasowanie jest mechanizmem stosowanym przez niego do wyboru portu przyłączeniowego, do którego trzeba przesłać ten datagram. Zwykłe komputery też muszą wyjinywać trasowanie, wszystkie komputery w Internecie posiadają dwa urządzenia sieciowe, jedno z nich to urządzenie pętli zwrotnej (loopback interface) opisane powyżej, a drugie to te, ktorego używa do porozumiewania się z resztą sieci. Może to być karta ethernetowa lub port PPP, czy SLIP. OK, w jaki sposób działa trasowanie? Każdy z komputerów przechowuje listę zasad trasowania, zwaną tabelą trasowania (routing table). Każdy wiersz tej tabeli zawiera co najmniej trzy pola, pierwsze oznaczające adres docelowy, drugie zawiera nazwę interfejsu przez który należy wysłać datagram, a trzecie, opcjonalne, to adres IP innego komputera (tzw. gateway),który przeniesie datagram dalej w jego drodze przez sieć. Pod Linuxem tabelę trasowania można zobaczyć wydając polecenie: # cat /proc/net/route Proces trasowania jest całkiem prosty: otrzymujemy przychodzący data­ gram, adres docelowy (do kogo jest adresowany ten datagram) zostaje porównany z pozycjami tabeli routingu. Wybiera się pozycje, kóra najbardziej pasuje do tego adresu i datagram zostaje przesłany przez określony w tej pozycji interfejs. Jeśli pole gatewaya nie jest puste, wtedy datagram zostaje przesłany do tego komputera przez określony w tej pozycji interfejs seciowy, w przeciwnym wyopadku zakłada się, że adres docelowy leży na sieci obsługiwanej przez podany interfejs. Do manipulacji pozycjami tabeli trasowania służy specjalne polecenie. Wymaga podania w wierszu poleceń dodatkowych parametrów i zamienia je na wywołania funkcji systemowych, które proszą jądro o dodanie, zmodyfikowanie lub usunięcie pozycji w tabeli trasowania (która znajduje się w gestii jądra Linuxa). Polecenie to nazywa się `_r_o_u_t_e'. Prosty przykład. Wyobraźmy sobie, że mamy sieć ehernrtową. Powiedziano nam, że jest to sieć klasy C o adresie 192.168.1.0. Nasz komputer otrzymał adres 192.168.1.10 i powiedziano nam, że router przyłączony do internetu ma adres 192.168.1.1. Pierwszym krokiem jest poprawne skonfigurowanie interfejsu, w sposób opisany wcześniej: # ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up Teraz musimy dodać pozycję do tabeli trasowania, aby powiedzieć jądru, że datagramy do komputerów, których adresy pasujądo wzorca 192.168.1.* powinny być wysyłane przez interfejs ethernetowy. Stosuje się w tym celu polecenie zbliżone d otego: # route add -net 192.168.0.0 netmask 255.255.255.0 eth0 Zwróć uwagę na argument `-net', który mówi programowi route, że ta pozycja oznacza trasę do całej podsieci (network route). Inną możliwością jest pozycja określająca trasę do konkretnego adresu IP tzw. 'host route'. Powyższa pozyscja tabeli trasowania umożliwi nam komunikację ze wszystkimi kompouterami znajdującymi się w naszym segmencie ethernetowym. A co z wszystkimi innymi adresami IP spoza naszego segmentu? Dodanie trasy do każdej sieci.komputera z którym chcielibyśmy się kiedykolwiek komunikować byłoby ogromnym zadaniem. Dlatego wprowadzono tzw _t_r_a_s_ę _d_o_m_y_ś_l_n_ą (efault route). Trasa _d_o_m_y_ś_l_n_a pasuje do każdego adresu docelowego, lecz najgorzej jak tylko jest to możliwe. Dlatego, jeśli istniej inna pozycja pasująca do tego adresu, to ona zostanie wykorzystana zamiast pozycji _d_o_m_y_ś_l_n_e_j. Ideą trasy domyślnej jest umożliwienie zrealizowania polecenia "wszystko inne wysłać tędy". W naszym przykładzie oznacza to następujace polecenie: # route add default gw 192.168.1.1 eth0 Argument `gw' informuje program route, że następny argument oznacza adres IP. lub nazwę atewaya lub routera, do któęgo należy przesyłać wszystkie datagramy pasującego do tej pozycji. Dalszym przesłaniem tych datagramów zajmie się właśnie ten komputer. Tak więc nasza pełna konfiguracja wyglądała by następująco: # ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up # route add -net 192.168.0.0 netmask 255.255.255.0 eth0 # route add default gw 192.168.1.1 eth0 Jeśli dobrze się przyjżysz plikom `rc' zajmującymi się siecią, zobaczysz, że przynajmniej jeden z nich wygląda bardzo podobnie. Jest to bardzo populana koniguracja. Zajmijmy się troszkę bardziej skomplikowanym przypadkiem. Załóżmy, że zajmujemy się konfiguracją routera o którym mówiliśmy wcześniej, tym który posiada połączenie PPP z Internetem, kilka segmentów sieci lokalnej. Niech konkretnie będą to trzy segmenty eternetowe i jedno łącze PPP. Konfiguracja trasowania w tym przypadku wyglądała by następująco: # route add 192.168.1.0 netmask 255.255.255.0 eth0 # route add 192.168.2.0 netmask 255.255.255.0 eth1 # route add 192.168.3.0 netmask 255.255.255.0 eth2 # route add default ppp0 Każda ze stacji roboczych używałaby prostszej formy przezentowanej wcześniej. Tylko router musi określić oddzielnie trasę do każdej z sieci, ponieważ w przypadku stacji roboczej pozycja _d_o_m_y_ś_l_n_a obsłuży wszystkie połączenia pozostawiając routerowi zmartwienie odpowiedniego podziału ruchu. Możesz się zastanawiać, dlaczego trasa domyślna na routerze nie posiada argumentu gw. Przyczyna jest prosta. Protokoły urządzeń szeregowych, takich jak PPP czy SLIP, zawsze mają w swojej sieci tylko dwa komputery, po jednym na każdym końcu. Wskazywanie komputera po drugiej stronie połączenia jako gatewaya jest niepotrzebne i nadmiarowe, ponieważ nie ma innej możliwości niż przesłać pakiety na drugi koniec połączenia PPP. Dlatego nie jest potrzebne okreśanie w tego rodzaju połączeniach gatewaya. Podania gatewaya wyagają w takiej sytuacji inne rodzaje sieci, np. ethernet, arcnet, token ring, które obsługują wiele komputerów na jednym segmen­ cie. 55..77..11.. DDoo cczzeeggoo ssłłuużżyy pprrooggrraamm _r_o_u_t_e_d ?? Konfiguracja trasowania opisana powyżej nadaje się dla prostych konfiguracji sieci, gdzie zawsze istnieje tylko jedna droga do celu. W przypadku bardziej skomplikowanych konfiguracji sieci, sprawy nieco się komplikują. Na szczęście większości was to nie dotyczy. Najwieksze kłopoty jakie sprawia 'trasoeanie ręczne' lub ineczaj mówiąc 'statyczne', polegają na tym, że w przypadku przerwania łacza do komputera docelowego, jedyną metodą nawiązania komunikacji inną drogą (jeśli taka istnieje) jest ręczna interwencja w tabelę trasowania (ręczne uruchomienie odpowiednich poleceń). Naturanie jest to bardzo powolne, niepraktyczne i ryzykowne. Zostały rozwinięte techniki w celu automatycznej modyfikacji tabeli trasowania w przypadku awarii połączeń w celu przełączenia ruchu na drogi obejściowe, wszystkie te metody nazwywane są ogólnie 'trsowaniem dynamicznym'. Być może szłyszałeś o najbardziej popularnych protokołach dynamicznego trasowania. Najczęsciej występującym jes RIP (Routing Information Protocol) i OSPF (Open Shortest Path First Protocol). RIP jest bardzo populany w małych sieciach takic hjak małego rozmiaru sieci korporacyjne lub sieci między budynkami. OSPF jest nowocześniejszym i bardziej sprawnym protokołem, lepiej nadającym się do obsługi dużych konfigracji sieci i lepiej nadaje się do zastosowania w środowiskach, gdzie istnieje duża liczba możliwych tras przesyłania pakietu. Powszechnymi implementacjami tych protokołów są programy _r_o_u_t_e_d -RIP i _g_a_t_e_d -RIP,OSPF i inne. _r_o_u_t_e_d jest zwykle w każdej dystrybucji Linuxa, lub można go znaleźć w pakiecie `NetKit' opisanym wcześniej. Przykład, któty mogłby wymagać zastosowania dynamicznego trasowania mógłby wyglądać następująco: 192.168.1.0 / 192.168.2.0 / 255.255.255.0 255.255.255.0 - - | | | /-----\ /-----\ | | | |ppp0 // ppp0| | | eth0 |---| A |------//---------| B |---| eth0 | | | // | | | | \-----/ \-----/ | | \ ppp1 ppp1 / | - \ / - \ / \ / \ / \ / \ / \ / \ / \ / ppp0\ /ppp1 /-----\ | | | C | | | \-----/ |eth0 | |---------| 192.168.3.0 / 255.255.255.0 Mamy tutaj trzy routery A,B iC. Każdy obsługuje segment sieci klasy C (netmaska 255.255.255.0). Każdy router posiada również łązcze PPP do każdego z pozostałych routerów. Sieć tworzy trójkąt. owinno być już oczywiste, że tabela trasowania na routerza A wygląda następująco: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # route add -net 192.168.2.0 netmask 255.255.255.0 ppp0 # route add -net 192.168.3.0 netmask 255.255.255.0 ppp1 Taka konfiguracja będzie działała poprawnie, dopóki połączenie pomiędzy routerami A i B będzie pracować poprawnie. Jęsli nastąpi awaria tego połączenia komputery na segmencie A nie będą w stania osiągnąć komputerów segmentu B i na odwrót ponieważ ich datagramy będą kierowane d ointerfejsu ppp0 routera A, który uległ właśnie awarii. Jednak komputery z segmentu B będą mogły nadal komunikować się z seg­ mentem D i na odwrót ponieważ połązenie PPP pomiędzy komputerami pozostało nietknięte. Zaczekaj! Skoro A może komunikować się z C i C może komunikować się z B dlaczego nie przesyłać datagramów adresowanych do B przez C zrzucając na niego dostarczenie ich do B? To jest właśnie rodzaj problemu, do rozwiązania którego powstały protokoły trasowania dynamicznego, jak np. RIP. Gdyby na każdym z routerów był uruchominy program _r_o_u_t_e_d wtedy tablice trasowania zostałyby automatycznie poprawione, tak aby odzwierciedlały nowy stan sieci w przypadku awarii któregokolwiek połączenia. Utworzenie takiej konfiuracji jest proste. Na każdym z routerów należy zrobić dwie rzeczy. W przypadku routera A: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # /usr/sbin/routed Demon `_r_o_u_t_e_d'tuż po uruchomieniu automatycznie znajdzie aktywne porty przyłączeń sieciowych, następnie będzie do nich rozsyłał i nasłuchiwał przychodzących z nich komunikatów pozwalając w ten sposób określenie porawnej tabeli trasowania. To był bardzo krótki opis trasowania dynamicznego i jego zastosowań. Jeśli potrzebujesz więcej informacji powinieneś zapoznać się dokumentami, do których referencje znajdziesz na początku tego dokumentu. Istotne sprawy dotyczące dynamicznego trasowania: 1. Potrzeba uruchomienia demona protokołu dynamicznego trasowania zachodzi jedynie wtedy, gdy twój Linux ma możliwość wyboru trasy do komputera docelowego. 2. Demon trasowania dynamicznego będzie automatycznie modyfikował tabelę trasowania dopasowując ją do zmian w strukturze sieci. 3. RIP nadaje się do sieci małych i średnich. 55..88.. KKoonnffiigguurraaccjjaa sseerrwweerróóww ii uussłłuugg ssiieecciioowwyycchh.. Serwery i usługi sieciowe są to te programy, które pozwalają zdalnemu użytkownikowi stać się użytkownikiem twojego komputera. Zdalny użytkownik ustanawia połączenie sieciowe z twoim komputerem i programem oferującym usługę, lub demonem sieciowym, nasłuchującym na danym porcie, akceptuje połączenie i wykonuje program. Istnieją dwa tryby pracy demonów sieciowych. Oba są równie często stosowane. Oto one: nniieezzaalleeżżnnyy program-demon sieciowy nasłuchje na okreśłonych portach sieciowch i w momencie zestawienia przychodzącego połączenia samemu zarządza tym połączeniem w celu udostępnienia danej usługi. ppooddppoorrzząąddkkoowwaannyy sseerrwweerroowwii _i_n_e_t_d serwer _i_n_e_t_d jest specjalnym programem-demonem sieciowym specjalizującym się w obsłudze zestawiania połączeń sieciowych. Posiada własny plik konfiguracyjny, który mówi mu, który mówi mu, który program obsługi usługi powinien zostać uruchomiony dla zaistniałej kombinacji typu połączenia (tcp lub udp) i numeru portu. Porty są opisane w innym pliku, o którym opowiemy już niedługo. Istnieją dwa ważne pliki konfiguracyjne. Są to /etc/services: plik, który kojarzy nazwy z numerami portów i /etc/inetd.conf: plik konfiguracyjny demona _i_n_e_t_d. 55..88..11.. //eettcc//sseerrvviicceess Plik /etc/services jest prostą bazą, która kojarzy łatwe dla człowieka nazy portów z wykorzystywanymi przez komputery numerami. Posiada bardzo prosty format. Jest to plik tekstowy, którego każdy wiersz jest jednym rekordem informacji. Każdy rekord składa się z trzech pól, rozdzielonych dowolną ilością białych znaków (tabulator lub odstęp): nazwa port/protokół aliasy # komentarz nnaazzwwaa jedno słowo reprezentujące opisywaną usługę. ppoorrtt//pprroottookkóółł to pole jest podzielone na dwie części ppoorrtt numer określający numer portu pod którym będzie dostępna dana usługa. Wiekszość popularnych usług ma już przydzielone numery portów. Są opisane w RFC-1340. pprroottookkóółł może to być albo tcp albo udp. Należy zapamiętać, że pozycja 18/tcp jest zupełnie inna niż pozycja 18/udp i nie ma żadnych technicznych uwarunkowań, dlaczego danausługa miałaby istnieć w obu przypadkach. Należy zachować zdrowy rozsądek. Jeśli któraś z usług jest rzeczywiście dostępna zarówno przez tcp, jak i przez udp, wtedy rzeczywiście w /etc/services znajdą sie obie te pozycje. aalliiaassyy inne nazwy, pod którymi będzie znana ta usługa. Dowolny tekst w wierszu po znaku `#' jest traktowany jako komentarz i ignorowany. 55..88..11..11.. PPrrzzyykkłłaadd pplliikkuu //eettcc//sseerrvviicceess. Wszystkie nowe dystrybucje Linuxa dostarczają dobry plik /etc/services. Na wszelki wypadek, gdybyś chciał zbudować swój komputer od zera oto kopia pliku /etc/services jaki jest dostarczany razem z dystrybucją Debian . # /etc/services: # $Id: NET-3-HOWTO.pl.sgml,v 1.2 1997/07/28 14:04:07 ppogorze Exp $ # # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1340, ``Assigned Numbers'' (July 1992). Not all ports # are included, only the more common ones. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp # Remote Mail Checking Protocol domain 53/tcp nameserver # name-domain server domain 53/udp nameserver mtp 57/tcp # deprecated bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5 supdup 95/tcp # 100 - reserved hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE. csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop-2 109/tcp postoffice # POP version 2 pop-2 109/udp pop-3 110/tcp # POP version 3 pop-3 110/udp sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP auth 113/tcp authentication tap ident sftp 115/tcp uucp-path 117/tcp nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/tcp ntp 123/udp # Network Time Protocol netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp imap2 143/tcp # Interim Mail Access Proto v2 imap2 143/udp snmp 161/udp # Simple Net Mgmt Proto snmp-trap 162/udp snmptrap # Traps for SNMP cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp xdmcp 177/tcp # X Display Mgr. Control Proto xdmcp 177/udp nextstep 178/tcp NeXTStep NextStep # NeXTStep window nextstep 178/udp NeXTStep NextStep # server bgp 179/tcp # Border Gateway Proto. bgp 179/udp prospero 191/tcp # Cliff Neuman's Prospero prospero 191/udp irc 194/tcp # Internet Relay Chat irc 194/udp smux 199/tcp # SNMP Unix Multiplexer smux 199/udp at-rtmp 201/tcp # AppleTalk routing at-rtmp 201/udp at-nbp 202/tcp # AppleTalk name binding at-nbp 202/udp at-echo 204/tcp # AppleTalk echo at-echo 204/udp at-zis 206/tcp # AppleTalk zone information at-zis 206/udp z3950 210/tcp wais # NISO Z39.50 database z3950 210/udp wais ipx 213/tcp # IPX ipx 213/udp imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3 ulistserv 372/tcp # UNIX Listserv ulistserv 372/udp # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # uucp daemon remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # webster 765/tcp # Network dictionary webster 765/udp # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # ingreslock 1524/tcp ingreslock 1524/udp prospero-np 1525/tcp # Prospero non-privileged prospero-np 1525/udp rfe 5002/tcp # Radio Free Ethernet rfe 5002/udp # Actually uses UDP only bbs 7000/tcp # BBS service # # # Kerberos (Project Athena/MIT) services # Note that these are for Kerberos v4, and are unofficial. Sites running # v4 should uncomment these and comment out the v5 entries above. # kerberos4 750/udp kdc # Kerberos (server) udp kerberos4 750/tcp kdc # Kerberos (server) tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication passwd_server 752/udp # Kerberos passwd server krb_prop 754/tcp # Kerberos slave propagation krbupdate 760/tcp kreg # Kerberos registration kpasswd 761/tcp kpwd # Kerberos "passwd" kpop 1109/tcp # Pop with Kerberos knetd 2053/tcp # Kerberos de-multiplexor zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager eklogin 2105/tcp # Kerberos encrypted rlogin # # Unofficial but necessary (for NetBSD) services # supfilesrv 871/tcp # SUP server supfiledbg 1127/tcp # SUP debugging # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol # # Debian GNU/Linux services rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel cfinger 2003/tcp # GNU Finger postgres 4321/tcp # POSTGRES mandelspawn 9359/udp mandelbrot # network mandelbrot # Local services 55..88..22.. //eettcc//iinneettdd..ccoonnff Plik /etc/inetd.conf jest plikiem konfiguracyjnym programu _i_n_e_t_d. Jego rolą jest poinformowanie _i_n_e_t_d co powinien zrobić w momencie otrzymania połączenia z konkretną usługą. Musisz powiedzieć programowi _i_n_e_t_d, który programobsługi uruchomić i jak to zrobić. Musisz to zrobić dla każdej usługi, której połączenia mają być obsługiwane przez program _i_n_e_t_d. Format tego pliku jest całkiem prosty. Jest to plik tekstowy, którego kązy wiersz jest niezależny rekordem danych opisujących jedną z usług jaką chcesz obsługiwać. Dowolny tekst w wierszu po znaku `#' jest traktowany jako komentarz i pomijany. Każdy wiersz składa się z siedmiu pól rodzielonych białymi znakami (tabulator lub odstęp) w formacie: service socket_type proto flags user server_path server_args usługa rodzaj_gniazda protokół flagi użytkownik ścieżka_dostępu arguemnty uussłłuuggaa nazwa wusługi pobrana przez inetd z /etc/services rrooddzzaajj ggnniiaazzddaa to pole okreśła rodzaj gniazda jakie zostanie utworzone, dozwolone wartośc to : stream, dgram, raw, rdm, or seqpacket. Dokładny opis jest dość skomplikowany ale jako pierwsze przybliżenie można potraktować zasadę ,że niewmal wszystkie usługi korzystające z tcp używają stream i niemal wszystkie usługi korzystające z udp używają dgram. Inne kombinacje parametrów występują w bardzo rzadkich przypadkach specjalizowanych serwerów usług. pprroottookkóóll nazwa protokołu danej pozycji. Powinien pasować do odpowiedniej pozycji pliku /etc/serwer i zwykle jest to tcp lub udp. Usługi oparte na Sun RPC (Remote Procedure Call) będą korzystały z rpc/tcp lub rpc/udp. ffllaaggii istnieją tylko dwie wartości jakie może przyjmować to pole. Informują one program inetd czy uruchomiony program obsługi zwalnia gniazdo co pozwala na uruchomienie kolejnego przy następneym połączeniu d otej usługi, czy _i_n_e_t_d powiniec zaczekać na zakończenie działania programu obsługi, który sam będzie obsługiwał żądania zestawienia połączenia. Ponownie dokładny opis jest dosyć skomplokowany, lecz w przybliżeniu mozna powiedzieć, że wszsytkie usługi typu tcp powinny w tym polu mieć wartość nowait i większość usług typu udp powinny przyjmować wartosć wait. Pamiętaj, że istnieją znaczące wyjątki od tej reguły. uużżyyttkkoowwnniikk określa, który użytkownik zdefiniowany w pliku /etc/passwd statnie się właścicielem uruchomionego demona sieciowego. JEst to pożyteczne, gdy chcesz zwiększyć bezpieczeństwo swojego systemu. Możesz temu polu nadać wartosć nobidy aby w przypadku złamania zabezpieczeń programów obsługi wyrządzone straty były jak najmniejsze. Zwykle to pole przyjmuje wartość root, ponieważ większośćprogramów obsługi do wykonania poprwnie swych zadań wymaga uprawnień administatora. śścciieeżżkkaa__ddoossttęęppuu to pole oznacza pełną scieżkę dostępu do programu obsługi, który należy uruchomić. aarrgguummeennttyy zawiera pozostałą część wiersza poleceń uruchamianego programu obsługi. Jest to parametr opcjonalny. To wlaśnie tutaj możesz umieścić dowolne parametry, które zostaną przekazane programowi obsługi w momencie jego uruchomienia przez program inetd. 55..88..22..11.. PPrrzzyykkłłaadd pplliikkuu //eettcc//iinneettdd..ccoonnff Podobnie jak w perzypadku pliku /etc/services wszystkie nowoczesne dystrybucje zawierają poprawny plik /etc/inetd.conf. Na wszelki wypadek ponieżej można znależć plik /etc/inetd.conf dostarczany z dystrybucją Debian . # /etc/inetd.conf: see inetd(8) for further informations. # # Internet server configuration database # # # Modified for Debian by Peter Tobias # # # # Internal services # #echo stream tcp nowait root internal #echo dgram udp wait root internal discard stream tcp nowait root internal discard dgram udp wait root internal daytime stream tcp nowait root internal daytime dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal time stream tcp nowait root internal time dgram udp wait root internal # # These are standard services. # telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd #fsp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.fspd # # Shell, login, exec and talk are BSD protocols. # shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd talk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.talkd ntalk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.ntalkd # # Mail, news and uucp services. # smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.smtpd #nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/in.nntpd #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico #comsat dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.comsat # # Pop et al # #pop-2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d # # `cfinger' is for the GNU finger server available for Debian. (NOTE: The # current implementation of the `finger' daemon allows it to be run as `root'.) # #cfinger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.cfingerd #finger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.fingerd #netstat stream tcp nowait nobody /usr/sbin/tcpd /bin/netstat #systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx # # Tftp service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." # #tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd #tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot #bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120 # # Kerberos authenticated services (these probably need to be corrected) # #klogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k #eklogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k -x #kshell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd -k # # Services run ONLY on the Kerberos server (these probably need to be corrected) # #krbupdate stream tcp nowait root /usr/sbin/tcpd /usr/sbin/registerd #kpasswd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/kpasswdd # # RPC based services # #mountd/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.mountd #rstatd/1-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rstatd #rusersd/2-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rusersd #walld/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rwalld # # End of inetd.conf. ident stream tcp nowait nobody /usr/sbin/identd identd -i 55..99.. ffiilleess.. IInnnnee pplliikkii kkoonnffiigguurraaccyyjjnnee zzwwiiąązzaannee zz ssiieecciiąą.. Linux posiada jeszcze kilka plików konfiguracyjnychm które mają wpływ na pracę sieci, z którymi powinno się zapoznać. Być może nigdy nie wystąpi potrzeba ich modyfikacji, lecz warto wiedzieć jakie inforamcje zawierają i czego dotyczą. 55..99..11.. //eettcc//pprroottooccoollss Plik /etc/protocols zawiera inforamcje przyporządkowujące nazwom protokołów odpowiednie numery. Jest wywkorzystywany przez różne programy pozwalając na podawanie nazw protokołów zamiast numerów oraz inne programy, jak np tcpdump, które mogą wyświetlać nazwy protokołów zamiast ich liczbowej reprezentacji. Składnia pliku jest następująca: protocolname number aliases nazwa_protokołu numer aliasy Plik /etc/protocols dostarczany w dystrybucji Debian wygląda następująco: # /etc/protocols: # $Id: NET-3-HOWTO.pl.sgml,v 1.2 1997/07/28 14:04:07 ppogorze Exp $ # # Internet (IP) protocols # # from: @(#)protocols 5.1 (Berkeley) 4/17/89 # # Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992). ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 xtp 36 XTP # Xpress Tranfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport rspf 73 RSPF # Radio Shortest Path First. vmtp 81 VMTP # Versatile Message Transport ospf 89 OSPFIGP # Open Shortest Path First IGP ipip 94 IPIP # Yet Another IP encapsulation encap 98 ENCAP # Yet Another IP encapsulation 55..99..22.. //eettcc//nneettwwoorrkkss Plik /etc/networks ma funkcję zbliżoną do funkcji pliku /etc/hosts. Jest prostą bazą danych nazw i adresów sieci. Jego format różni się tylko tym, że może zawierać jedynie dwa pola w wierszu w następujacym formacie: # networkname networkaddress # nzawa_sieci adres_sieci Przykładowy plik mógłby wyglądać tak: loopnet 127.0.0.0 localnet 192.168.0.0 amprnet 44.0.0.0 W przypadku używania programu _r_o_u_t_e jeśli punkt docelowy jest siecią, a sieć ta znajduje się w pliku /etc/networks, wtedy polecenie route zamiast adresu IP sieci wyświetli jej nazwę. 55..1100.. BBeezzppiieecczzeeńńssttwwoo ssiieecciioowwee ii sstteerroowwaanniiee ddoossttęęppeemm.. Pozwól, że rozpocznę ten rozdział stwierdzeniem, że zabezbieczanie komputera i sieci przed złośliwymi atakami jest trudną i skomplikowaną sztuką. Nie uważam się za aksperta w tej dziedzinie i choć opisywane przeze mnie mechanizmy pomogą być bardziej bezpiecznym to jeśli bardzo ci zależy na bezpieczeństwie twojego systemu radziłbym ci rozejrzeć się dokładniej w tym temacie. W internecie można znaleźć wiele dobrych referencji na ten temat. Podstawowa zasada brzmi: `NNiiee uurruucchhaammiiaajj sseerrwweerróóww ((pprrooggrraammóóww oobbssłłuuggii)),, kkttóórryycchh nniiee zzaammiieerrzzaasszz uużżyywwaaćć..'. Wiele dystrybucji posiada mnóstwo różnego rodzaju oprogramowania, automatycznie konfigurowanego i uruchamianego. Aby zapewnić sobie minimalny poziom bezpieczeństwa powinno się przyjrzeć się plikowie /etc/inetd.conf i skomentować te usługi, których nie zamierzasz używać. Dobrymi kandydatami są: shell, login, exec, uucp, ftp i serwisy informacyjne, jak: finger, netstat i systat. Istnieje wiele mechanizmów sterowania dostępem do oferowanych usług sieciowych, wymienię podstawowe. 55..1100..11.. //eettcc//ffttppuusseerrss Plik /etc/ftpusers jest prostym mechanizmem pozwalającym na zabronienie wejścia do systemu przez usługę ftp niektórym użytkownikom twojego komputera. /etc/ftpusers jest odczytywany przez program obsługujący uslugę ftp (_f_t_p_d) w momencie nawiązania przychodzącego połączenia. Plik zawiera listę tych użytkowników, którzy nie mają pozwolenia wchodzenie do systemy przez uslugę ftp. Mógłby wygladać mniej więcej tak: # /etc/ftpusers - użytkownicy, którzy nie mogą dostac się do systemu # przez ftp root uucp bin mail 55..1100..22.. //eettcc//sseeccuurreettttyy Pli /etc/securetty pozwala na określenie listy urządzeń tty, przez które może logować się administrator. Plik /etc/securetty jest wczytywany przez program weryfikujący użytkownika (zwykle _/_b_i_n_/_l_o_g_i_n). Jest to lista nazw urządzeń, które mogą być wykorzystywane przez administratora na wejście do systemu. Wejście do systemu przez administratora przez inne urządzenia jest niemożliwe. # /etc/securetty - terminale tty przez które administrator może # zalogować się do systemu tty1 tty2 tty3 tty4 55..1100..33.. MMeecchhaanniizzmm sstteerroowwaanniiaa ddoossttęęppeemm ppaakkiieettuu _t_c_p_d.. Program _t_c_p_d jaki prawdopodobnie widziałeś w pliku /etc/inetd.conf dostarcza mechanizmów rejestracji i sterowania dostępem do usług, do ochrony których został skonfigurowany. W momencie uruchamienia przez program _i_n_e_t_d odczytuje swoje dwa pliki konfiguracyjne, zawierające zasady dostępu i albo zezwala, albo odmawia dostępu do usługim którą ochrania. Przeszukuje zasady znajdujące się plikach konfiguracyjnych, aż do napotkania pierwszej, która pasuje d ozaistniałej sytuacji. Jeśli takiej nie znalazł zakłada, że należy pozwolić na dostęp. Pliki które przeszukuje to w kolejności: /etc/hosts.allow i /etc/hosts.deny. Pokrótce opisze zawartośćkażdego z nich. Pełny opis możliwości programu _t_c_p_d znajdziesz na stronach podręcznika (man hosts_allow). 55..1100..33..11.. //eettcc//hhoossttss..aallllooww Plik /etc/hosts.allow jest plikiem konfiguracyjnym programu _/_u_s_r_/_s_b_i_n_/_t_c_p_d. Plik hosts.allow zawiera informacje określające, ktroe komputery _m_o_g_ą uzyskać dostęp do chronionej usługi w twoim systemie. Format pliku jest bardzo prosty: # /etc/hosts.allow # # : [: polecenie] lliissttaa uussłłuugg jest odzielona przecinkami listą nazw programów obsługi chronionej usługi do której ma zastosowanie dana reguła. Na przyklad: ftpd, telnetd i fingerd. lliissttaa kkoommppuutteerróóww jest rozdzieloną przecinkami listą nazw komputerów lub adresów IP. Można również określać wzroce adresów lub naz komputerów stsując znaki specjalne, umożliwiajć tworzenie wzorców reprezentujacych grupy komputerów. Np. gw.v2ktj.ampr.org oznacz konkretny komputer, się podanym ciągiem znaków, 44. oznacza dowolny adres IP zawierający te cyfry. W celu uproszczenia konfiguracji wporwadzono kilka specjalnych oznaczeń: ALL określające wszystkie komputery, LOCAL reprezentujący wszystkei komputery, których nazwa nie zawiera znaku `.' tzn. należą do tej samej domeny co twój komputer, PARANOID oznaczający wszystkie komputery, których nazwa nie odpowiada ich adresowi (name spoofing). I ostani element bardzo użyteczny, to EXCEPT pozwalający na podanie listy z wyjątkami. Omówimy to dokładnie później na przykładzie. ppoolleecceenniiee jest opcjonalnym parametrem. Jest to pełna ścieżka dostępu do polecenia (programu), który należy uruchomić za każdym razem, kiedy dana reguła zostanie dopasowana. Może to być polecenie, które będzie próbowało zidentyfikować , kto znajduje się w tej chwili na komputerze próbującym nawiązać połączenia, lub wyśle wiadomość lub inny komunikat adresowany do administratora systemu informując o próbie połączenia. Isnieje kilka wzorców, które zostaną podmienione, najczęsciej wykorzystywane to: %h jest zamieniane na nazwę komputera nawiązującego połączenie lub jego adres jeśłi nie posiada nazwy, %d na nazwę programu obsługi, który został wywołany. Przykład: # /etc/hosts.allow # # dostęp do poczty dla wszystkich in.smtpd: ALL # połaczenie telnet i ftp tylko z komputerów z lokalnej domeny i # mojego komputera domowego telnetd, ftpd: LOCAL, myhost.athome.org.au # Pozwól na finger z dowolnego komputera, lecz rejestrój kto się z # nami łączył fingerd: ALL: (finger @%h | mail -s "finger from %h" root) 55..1100..33..22.. //eettcc//hhoossttss..ddeennyy Plik /etc/hosts.denyjest plikiem konfiguracyjnym programu _/_u_s_r_/_s_b_i_n_/_t_c_p_d. hosts.deny zawiera listę komputerów, które nie mogą usyskać dostępu do chronionej usługi w twpom systemie. Prosty przyklad wygłądał by mniej więcej tak: # /etc/hosts.deny # # Zabroń dostępu wszystkim komputerom o podejrzanych nazwach ALL: PARANOID # # Zabroń dostępu wszystkim do wszystkiego ALL: ALL PARANOID jest w tym przypadku niepotrzebne, ponieważ następna pozycja przechwytuje wszystkie przypaki. Jedna z tych pozycji jest dobrym punktem wyjściowym do budwoy pliku konfiguracyjnego, zależnym od twoich oczekiwań i wymagań. Posiadanie opcji ALL: ALL w /etc/hosts.deny i zezwalanie na dostęp do konkretnych usług konkretnym komputerom (grupom komputerów) w pliku /etc/hosts.allow jest najbezpieczniejszym podejściem. 55..1100..44.. //eettcc//hhoossttss..eeqquuiivv Plik hosts.equiv jest wykorzystywany nadawania innym komputerom i zdalnym użytkownikom niektórych uprawnień dostępu do naszych zasobów, bez końieczności podawania przez nich hasła. JEst to użytwczne w bezpiecznym środowisku sieciowym, gdzi posiadamy kontrolę andwszystkimi komputerami lecz w innym przypadku jest to bardzo ryzykowne ze względu na bezpieczeństwo naszego komputera. W takim przypadku twój komputer jest ka bezpieczny, jak najmniej bezpieczny z aufanych komputerów. Aby zwiększyć bezpieczeństwo swojego systemu nie używaj tego mechanizmu i zachęcaj swoich użytkoników do nie korzystania z pliku .rhosta. 55..1100..55.. PPrraawwiiddłłoowwaa kkoonnffiigguurraaccjjaa ddeemmoonnaa _f_t_p.. Wiele miejsc będzie zainteresowynych działającym serwerem anonimowego _f_t_p, aby umożliwić innym pobieranie i wstawianie plików, bez konieczności podawania konkretnego identyfikatora użytkownika. Jeśli zdecydujesz się udostępnić tę usługę, pamiętaj aby prawidlowo skonfigurować demon _f_t_p_d. Wiekszość stron podręcznika dotyczących _f_t_p_d_(_8_) opisuje jak to powino byćzrobione. Powinieneś się upewnić, że zawsze stosujesz się d otych instruckcji. Bardzo ważne jest, abyś nie używał w tym celu kopii sweg opliku /etc/passwd w katalogu etc serwera ftpd. Musisz pamiętać aby usunąć wszelkie niepotrzebne informacje dotyczące kont, za wyjątkiem tych niezbędnych, w przeviwnym wypadku będziesz narażony na ataki wynikłe ze złamania haseł prezentowanych w pliku passwd. 55..1100..66.. FFiirreewwaallllee.. Bardzo dobrym środkiem na zapewnienie bezpieczeństwa swojemu systemowi jest zabronienie dostępu do twojego komputera wszystkim niepożądanym pakietom. Jest to dokladnie opisane w Firewall-HOWTO . 55..1100..77.. IInnnnee ssuuggeessttiiee.. Oto inne, potencjalnie religijne sugestie, które powinieneś rozważyć. sseennddmmaaiill niezależnie od swojej popularności demon z przerażającą regularnością pojawiają się ostrzeżenia o błędach w programie _s_e_n_d_m_a_i_l. Wszystko zależy od ciebie, lecz ja bym go nie uruchamiał. NNFFSS ii iinneeee uussłłuuggii SSuunn RRPPCC powinieneś się ich bać. Istnieje wiele sposobów wykorzystania błędów w tych usługach. Bardzo trudno jest zastąpićNFS czymś innym, dokładnie upewnij się komu pozwalasz na montowanie swoich dysków. 66.. IInnffoorrmmaaccjjee ssppeeccyyffiicczznnee tteecchhnnoollooggii ssiieecciioowweejj Kolejne podrozdziały są specyficzne dla konkretnych technologi sieciowych. Informacje tam zawarte nie muszą mieć zastosowania do innego rodzaju technologii sieciowych. 66..11.. AARRCCNNeett Urządzenia ARCNET posiadają nazwy `arc0s', `arc1e', `arc2e' itd. Pierwsza karta wykryta przez jądro otrzymuje nazwę `eth0', a dalsze otrzymują nazwy z kolejnymi numerami. Litera na końcu nazwy oznacza że wybrałeś 'ethernet encapsulation' lub standard pakietu zgodny z RFC1051. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Network device support ---> [*] Network device support <*> ARCnet support [ ] Enable arc0e (ARCnet "Ether-Encap" packet format) [ ] Enable arc0s (ARCnet RFC1051 packet format) Jeśli posiadasz już prawidłowo skompilowane jądro potrafiące obsługiwaćkatrę, jej konfiguracja jest bardzo prosta. Zwykle będziesz musiał wydać następujące polecenia: # ifconfig arc0e 192.168.0.1 netmask 255.255.255.0 up # route add 192.168.0.0 netmask 255.255.255.0 arc0e Proszę zapoznaj się z zawrtością pliku /usr/src/linux/Documenta­ tion/networking/arcnet-hardware.txt. Obsłua sieci ARCNet została wykonana przez Averyego Pennaruna, apenwarr@foxnet.net. 66..22.. AApppplleettaallkk ((AAFF__AAPPPPLLEETTAALLKK) Obsługa sieci Appletalk nie wprowadza żądnych dodatkwych nazw urządzeń sieciowych. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> <*> Appletalk DDP Obsługa Appletalk pozwala twojemu Linuxowi komunikować się z sieciami Aplle. Bardzo ważnym wykorzystywaniem tej możliwości jest współdziele­ nie między twoim Linuxem i komputerami Apple zasobów takich jak drukarki, czy dyski. Wymagane jest do tego dodatkowe oprogramowanie o nazwie _n_e_t_a_t_a_l_k. Pakiet _n_e_t_a_t_a_l_k udostępniający oprogramowanie imple­ mentujące protokół Appletalk oraz kilka pożytecznych programów narzędziowych stworzył wraz z grupą`Research Systems UnixGroup' na uniwerystecie Michigan reprezentujący ten zespół Wesley Craig netatalk@umich.edu . Pakiet _n_e_t_a_t_a_l_k powinieneś otrzymać w swojeje dystrybucji Linuxa, lub możesz go pobrać przez ftp ze żródła :Univer­ sity of Michigan Aby zbudować i zainstalować pakiet, musisz wydać następujące polecenia: # cd /usr/src # tar xvfz .../netatalk-1.4b2.tar.Z - W tym momemcie możesz zmienić plik `Makefile', np. w celu zmiany katalogu docelowego DESTDIR. Domuślnie zostanie zainstalowany w /usr/local/atalk co jest dosyć bezpiecznym wyborem. # make - jako administrator: # make install 66..22..11.. KKoonnffiigguurraaccjjaa oopprrooggrraammoowwaanniiaa AApppplleettaallkk.. Pierwszą rzeczą jaką musisz zrobić aby zaczęło działać to dodanie nowych pozycji do pliku /etc/services. A mianowicie: rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol Kolejnym krokiem będzie utworzenie plików konfiguracyjnych pakietu w katalogu usr/local/atalk/etc (lub tam gdzie go zainstalowałeś). Pierwszym plikiem, który należy utworzyć jest /usr/local/atalk/etc/atalkd.conf. Początkowo potrzebuje od jedynie dodania wiersza określającego nazwę urządzenia sieciowego, które obsługuje sieć, na której znajdują się komputery Apple. eth0 Demon Appletalk po jego uruchomieniu dołoży kilka szczegółow. 66..22..22.. EEkkssppoorrttoowwaanniiee pplliikkóóww LLiinnuuxxaa pprrzzeezz AApppplleettaallkk.. Możesz eksportować swoje pliki, tak aby inne komputery sieci Appletalk miały do nich dostęp. W tym celu należy odpowiednio zmienić plik konfiguracyjny /usr/local/atalk/etc/AppleVolumes.system. Istnieje również inny plik konfiguracyjny o nazwie /usr/local/atalk/etc/AppleVolumes.default w takim samym formacie opisujący który system plików zostanie udostępniony podłączającym się do nas użytkownikom posiadającym przywileje gościa (guest). Szczegółowe informacje na temat konfiguracji tych plików, oraz opis znaczenia wszystkich opcji można znaleźć na stronie podręznika poświęconej _a_f_p_d (man afpd). Krótki plik przykładowy, mógłby wyglądać następująco: /tmp Scratch /home/ftp/pub "Obszar ogólnie dostępny" W tym przykładzie eksportujemy katalog /tmp jako system plików AppleShare o nazwie `Scratch' oraz katalog anonimowego ftp jako AppleShare Volume o nazwie "Obszar ogólnie dostępny". Nazwy wolumenów nie są obowiązkowe, demon wybierzą jakąś za ciebie, lecz przecież nic cię nie kosztuje podanie nazwy. 66..22..33.. UUddoossttęęppnniiaanniiee ttwwoojjeejj ddrruukkaarrkkii ppoodd LLiinnuuxxeemm ww ssiieeccii AApppplleettaallkk.. Współdzielenie drukarli Linuxa z innymi komputerami sieci Appletalk jest całkiem proste. Musisz uruchomić program _p_a_p_d, Printer Access Protocol Daemon. Po uruchomieniu będzie akceptował żądania wydrukowania dokumentu, gromadził go a następnie drukował korzystajć z peogramów obsługi drukarki pod Linuxem. Konfiguracja tego programu polega na edycji pliku /usr/local/atalk/etc/papd.conf. Składnia jest taka sama, jak pliku /etc/printcap. Nazwa jaką nadasz drukarce zostanie zarejestrowana za pomocą NBP, protokołu nazw sieci Appletalk. Prosta konfiguracja mogłaby wyglądać następująco: TricWriter:\ :pr=lp:op=cg: Utworzona została drukarka o nazwie `TricWriter' udostępniona sieci Appletalk. Zadania wysłane na tę drukarkę, będą drukowane na drukarce `lp' (zdefiniowanej w pliku /etc/printcap) przy pomocy programu _l_p_d. Pozycja `op=cg' mówi, że operatorem tej drukarki jest użytkownik Linuxa o nazwie `_c_g'. 66..22..44.. UUrruucchhaammiiaanniiee oopprrooggrraammoowwaanniiaa AApppplleettaallkk.. Ok, w tej chwili powinieneś być juz gotowy do sprawdzenia podstawowej konfiguracji. Pakiet _n_e_t_a_t_a_l_k dostarcza pliku _r_c_._a_t_a_l_k, który powinień nadawać się dla ciebie. Powinieneś jedynie go uruchomić: # /usr/local/atalk/etc/rc.atalk Wszystko powinno się uruchomić i działać poprawnie. Nie powinieneś zobaczyć, żadnych komunikatów o błędach, lecz jedynie komunikaty wysłane na konsole informujące o zakończeniu kolejnych etapów uruchamiania oprogogramowania. 66..22..55.. TTeesstt oopprrooggrraammoowwaanniiaa aapppplleettaallkk.. Aby sprawdzić, czy oprogramowanie pracuje poprawnie, przesiędź sieć na jeden z twoich komputerów Apple, rozwiń menu główne, wybierz Chooser, kliknij na AppleShare i powinieneś zobaczyć tam swojego Linuxa. 66..22..66.. UUwwaaggii nnaa tteemmaatt kkoorrzzyyssttaanniiaa zz oopprrooggrraammoowwaanniiaa AApppplleettaallkk.. ˇ Być może bedziesz musiał uruchamiać obsługę sieci Appletalk przed skonfigurowaniem sieci IP. Jeśli napotkasz na kłopot uruchamiając oprogramowania appletok, lub po jego uruchomieniu masz kłopoty ze swoją sieciąIP, wtedy sprbuj uruchomić oprogramowanie Appletalk przed uruchomieniem skryptu rc.inet1. ˇ _a_f_p_d (Apple Filing Protocol Daemon) robi pożądny bałagan na twardym dysku. Poniżej punktów montowań tworzy szereg podkatalogów:.AppleDesktop i Network Trash Folder. Następnie dla każdego katalogu, do którego sięgniesz utworzy w nim .AppleDouble aby mieć gdzie przechowywać /, później spędzisz wiele miłych chwil sprzątając po nim. ˇ program _a_f_p_d oczekuje przesyłania z Maców haseł czystym tekstem. To bardzo osłabia bezpieczeństwo twojego ssytemu. Muszisz być bardzo ostrożny uruchamiając ten program na komputerze podłączonym do internetu. Jeśli ktoś zrobi coś złego będziesz winiłsamego siebie. ˇ Istniejące oprogramowanie diagnostyczne np. _n_e_t_s_t_a_t i _i_f_c_o_n_f_i_g nie obsługuje Appletalk. Surowa inforamcja na ten temat *jeśłi jej potrzebujesz) jest dostępna przez katalog /proc/net. 66..22..77.. WWiięęcceejj iinnffoorrmmaaccjjii Więcej szczegółowej informacji w jaki sposób skonfigurować Appletalk dla Linuxa znajdziesz w _L_i_n_u_x _N_e_t_a_t_a_k_-_H_O_W_T_O : thehamptons.com . 66..33.. AATTMM Projekt obsługi Asynchronous Transfer Modepod łinuxem jest prowadzony przez Wernera Almesbergera . Aktualne informacje na ten temat można znaleźć tutaj: lrcwww.epfl.ch . 66..44.. AAXX2255 ((AAFF__AAXX2255) Urządzenia AX.25 w jądrze wersji 2.0.* to `sl0', `sl1', itd. w 2.1.* są to `ax0', `ax1', itd. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> [*] Amateur Radio AX.25 Level 2 Protokoły AX25, Netrom i Rose są opisane w AX25-HOWTO . Stosowane są przez krótkofalowców w eksperymentach z przesyłaniem pakietów drogą radiową. Większość pracy związanej z udostępnieniem tej dunkcji pod Linuxem wykonał Jonathon Naylor, jsn@cs.not.ac.uk. 66..55.. DDEECCNNeett W chwili obecnej prowadzone są prace nad obsługą sieci DECNet. Powinna się pojawić w późnych wersjach jądra serii 2.1.x. 66..66.. EEQQLL -- mmuullttiippllee lliinnee ttrraaffffiicc eeqquuaalliisseerr Urządzenie EQL nosi nazwę `eql'. W standtardowej wersji jądra możesz mieć w komputerze tylko jedno urządzenie EQL. EQL umożliwia wykorzystanie kilku połączeń point-to-point (np PPP,SLIP,plip) jako pojedynczego łącza logicznego przenoszącego ruch tcp/ip. Często taniej jest skorzystać z kilku linii o niższej prędkości niż z jednej linii o wysokiej prędkości. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Network device support ---> [*] Network device support <*> EQL (serial line load balancing) support Obsługa tego mechanizmu wymaga, aby drugi koniec połączenia również obsługiwał EQL. Linux, Livingstone Portmasters i nowsze serwery dostępowe udostępniają tę usługę. Aby skonfigurowaćEQL będziesz potrzebować odpowiednich narzędzi, dostępnuch z: sunsite.unc.edu . Sama konfiguracja Jest całkiem prosta. Rozpoczyna się od skonfigurowania interfejsu eql. Jest to taki samo urządzenie, jak każde inne urządzenie sieciowe. Konfiguracja adresu IP i wielkości mtu odbywa się tak samo za pomocą programu _i_f_c_o_n_f_i_g: ifconfig eql 192.168.10.1 mtu 1006 route add default eql Następnie muszis ręcznie zainicjować każdą w linii, którą będziesz używał. Sposób inicjacji połączenia będzie zależał od rodzaju tej linii, więcej informacji n ten temat znajdziesz w odpowiednim podrozdziale. Na koniec potrzebujesz skojarzyć połączenie przez port szeregowy z urządzenie EQL, nazywa się to `enslaving' i dokonuje się za pomocą polecenia _e_q_l___e_n_s_l_a_v_e: eql_enslave eql sl0 28800 eql_enslave eql ppp0 14400 Parametr The `_s_z_a_c_o_w_a_n_a _p_r_ę_d_k_o_ś_ć' (estimated speed), który podjaesz w poleceniu _e_q_l___s_l_a_v_e bie ma bezpośredniego wpływu na działanie systemu. Jest wykorzystywany przez drajwer EQL do określenia stopnia podziału datagramów które powiiny być otrzymywane przez urządzenie, możesz w ten spodób dokładnie dopasować równomierne obciążenie wszystlich linii. W celu odłączenia linii od urządzenia EQL stosuje się polecnie _e_q_l___a_m_a_n_c_i_p_a_t_e: eql_emancipate eql sl0 Budowa tablicy trasowania odbywa się w taki sam sposób, jak w przypadku zwykłego połączenia point-to-point, za wyjątkiem tego, że wszystkie trasy zamiast do urządzeń ppp*,sl* powinny się odnosić do urządzenia eql. Zwykle polecenia wyglądają mniej więcej tak: route add default eql0 Sterownik EQL został opracowany przez Simona Janesa, simon@ncm.com. 66..77.. EEtthheerrnneett Urządzenia kart ethernetowych noszą nazwy `eth0', `eth1', `eth2' itd. Pierwsza karta wykryta przez jądro otrzymuje nazwę `eth0', a reszta kolejne nazwy w miarę rozpoznawania kart przez system. Jeśli chcesz się nauczyć, jak pracują karty ethernetowe pod Linuxem, przeczytaj Ethernet-HOWTO . Kiedy jądro poprawnie rozpoznaje posiadane przez ciebie karty ethernetowe, ich dalsza konfiguracja jest prosta. Zwykle wystarczą takie polecenia: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up # route add 192.168.0.0 netmask 255.255.255.0 eth0 Większość sterowników kart ethernetowych została opracowana przez Donalda Beckera becker@CESDIS.gsfc.nasa.gov. 66..88.. FFDDDDII Urządzenia standardu FDDI noszą nazwy `fddi0', `fddi1', `fddi2' itd. Pierwsze urządzenie rozpoznane przez jądro otrzymuje nazwę `fddi0', a pozostałe kolejne nazwy w miarę ich rozpoznawania przez system. Sterownik kart Digital Equipment Corporation FDDI EISA o PCI został opracowany przez Lawrencea V. Stefaniego, stefani@lkg.dec.com. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Network device support ---> [*] FDDI driver support [*] Digital DEFEA and DEFPA adapter support Kiedy jądro poprawnie rozpoznaje posiadane przez ciebie karty, konfiguracja interfejsu FDDI jest niemal identyczna, jak inicjalizacja kart ethernetowych. Po prostu jako argument programów _i_f_c_o_n_f_i_g i _r_o_u_t_e podajesz jedynie nazwę ospowiedniego urządzenia FDDI. 66..99.. FFrraammee RReellaayy Istnieją dwa rodzaje urządzeń standardu Frame Relay w jądrze Linuxa, DLCI o nzawach `dlci00',`dlci01' itd. oraz FRAD onazwach `sdla0', `sdla1' itd. Frame Relay jest nową technologią sieciową, przeznaczoną przede wszystkim dla ruchu ruchu o nieciągłej, przerwywanej naturze. Do sieci Frame Relay podłącza się za pomocą urządzenia Frame Relau Access Device (FRAD). Frame Realy pod Linuxem obsługuje przesyłanie pakietów IP zgodnie z opisem przedstawionym w RFC-1490. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Network device support ---> <*> Frame relay DLCI support (EXPERIMENTAL) (24) Max open DLCI (8) Max DLCI per device <*> SDLA (Sangoma S502/S508) support Obsługa protokołu Frame Relay, oraz niezbędne do tego narzędzia zostały napisane przez Mikea McLagana, mike.mclagan@linux.org. W chwili obecnej, jedynym obsługiwanym urządzeniem FRAD jest Sangoma Technologies S502A, S502E and S508. Po prawidłowym skompilowaniu jądra, do skonfigurowania urządzeń FRAD i DLCI są niezbędne narzędzia konfiguracyjne: ftp.invlogic.com . Komplilacja i instalacja narzędzi jest prosta, niestety brak głównego pliku Makefile, powoduje, że trzeba to zrobić ręcznie. # cd /usr/src # tar xvfz .../frad-0.15.tgz # cd frad-0.15 # for i in common dlci frad; do cd $i; make clean; make; cd ..; done # mkdir /etc/frad # install -m 644 -o root -g root bin/*.sfm /etc/frad # install -m 700 -o root -g root frad/fradcfg /sbin # install -m 700 -o root -g root dlci/dlcicfg /sbin Po zainstalowaniu narzędzi, trzeba utworzyć plik /etc/frad/router.conf. Możesz skorzystać z poniższego wzoru, który jest zmodyfikowanym plikiem przykładowym: # /etc/frad/router.conf # Jest to wzorzec pliku konfiguracyjnego urządzeń frame relay # Zawiera wszystkie możliwe opcje. Wartości domyślne są ustwione # na podstwie kodu sterowników karty Sangoma S502A dla MSDOSu. # # Znak '#' w dowolnym miejscu wiersza rozpoczyna komentarz # Puste miejsca są ignorowane (możesz tabulatorem ładnie sformatować # cały plik # Nieznane pozycje [] i słowa kluczowe są ignorowane # [Devices] Count=1 # Liczba urządzeń do skonfigurowania Dev_1=sdla0 # nazwa urządzenia #Dev_2=sdla1 # nazwa urządzenia # Podane tutaj parametry mają zastosowanie do wszystkich urządzeń, # lecz dla każdego urządzenia indywidualnie może być podana inna wartość # Access=CPE Clock=Internal KBaud=64 Flags=TX # # MTU=1500 # Maksymalba długość ramki IFrame, domyślnie 4096 # T391=10 # T391 value 5 - 30, domyślnie 10 # T392=15 # T392 value 5 - 30, domyślnie 15 # N391=6 # N391 value 1 - 255, domyślnie 6 # N392=3 # N392 value 1 - 10, domyślnie 3 # N393=4 # N393 value 1 - 10, domyślnie 4 # Podane tutaj parametry mają zastosowanie do wszystkich urządzeń # CIRfwd=16 # CIR forward 1 - 64 # Bc_fwd=16 # Bc forward 1 - 512 # Be_fwd=0 # Be forward 0 - 511 # CIRbak=16 # CIR backward 1 - 64 # Bc_bak=16 # Bc backward 1 - 512 # Be_bak=0 # Be backward 0 - 511 # # # KOnfiguracja poszczególnych urządzeń # # # # Pierwsze urządzenie - Sangoma S502E # [sdla0] Type=Sangoma # Rodzaj urządzenia do skonfigurowania, # rozpoznawana jest tylko SANGOMA # # Poniższe parametry są specyficzne dla typu Sangoma # # Rodzaj karty śangoma - S502A, S502E, S508 Board=S502E # # Nazwa firmowego oproramowania testowego dla karty Sangoma # Testware=/usr/src/frad-0.10/bin/sdla_tst.502 # # Nazwa firmowego oprogramowania FR # Firmware=/usr/src/frad-0.10/bin/frm_rel.502 # Port=360 # Port uzywany przez tę kartę Mem=C8 # Adres okna pamięci, A0-EE, zależny od karty IRQ=5 # Numer przerwania IRQ , nie potrebny w przypadku S502A DLCIs=1 # Liczba urządzeń DLCI przyłączonych do tego urządzenia DLCI_1=16 # numer pierwszego urządzenia DLCI, 16 - 991 # DLCI_2=17 # DLCI_3=18 # DLCI_4=19 # DLCI_5=20 # # Podane poniżej opcje mają zastosowanie tylko do tego urządzenia # i zastępują wartościdomyślne podane wcześniej # # Access=CPE # CPE lub NODE, domyślnie CPE # Flags=TXIgnore,RXIgnore,BufferFrames,DropAborted,Stats,MCI,AutoDLCI # Clock=Internal # External lub Internal, domyślnie Internal # Baud=128 # Określona prędkość (bodów) przyłączonych CSU/DSU # MTU=2048 # Maksymalna długość ramki IFrame, domyślnie 4096 # T391=10 # T391 value 5 - 30, domyślnie 10 # T392=15 # T392 value 5 - 30, domyślnie 15 # N391=6 # N391 value 1 - 255, domyślnie 6 # N392=3 # N392 value 1 - 10, domyślnie 3 # N393=4 # N393 value 1 - 10, domyślnie 4 # # Drugim urządzeniem jest zupełnie inna karta # # [sdla1] # Type=ŚmiesznaKarta # Rodzaj konfigurowanego urządzenia # Board= # Rodzaj karty Sangoma # Key=Value # Parametry dpecyficzne dla tego urządzenia # # Domyślne parametry konfiguracyjne urządzeń DLCI # Mogą zostać zastępione w konkretnych sekcjach konfiguracyjnych DCI # CIRfwd=64 # CIR forward 1 - 64 # Bc_fwd=16 # Bc forward 1 - 512 # Be_fwd=0 # Be forward 0 - 511 # CIRbak=16 # CIR backward 1 - 64 # Bc_bak=16 # Bc backward 1 - 512 # Be_bak=0 # Be backward 0 - 511 # # Konfiguracja DLCI # Wszystkie parametry są opcjinalne. Nazewnictwo: # [DLCI_D_] # [DLCI_D1_16] # IP= # Net= # Mask= # Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames # DLCIFlags=TXIgnore,RXIgnore,BufferFrames # CIRfwd=64 # Bc_fwd=512 # Be_fwd=0 # CIRbak=64 # Bc_bak=512 # Be_bak=0 [DLCI_D2_16] # IP= # Net= # Mask= # Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames # DLCIFlags=TXIgnore,RXIgnore,BufferFrames # CIRfwd=16 # Bc_fwd=16 # Be_fwd=0 # CIRbak=16 # Bc_bak=16 # Be_bak=0 Po stowrzeniu pliku /etc/frad/router.conf pozostało jedynie skonfigurować rzeczywiste urządzenia. Jest to tylko troszkę sprytniejsze niż konfigurowanie zwykłych urządzeń sieciowych. Musisz pamiętać aby przed uruchomieniem urządzeń DLCI uruchomić wpierw urządzenie FRAD. # Konfiguracja karty FRAD i parametrów DLCI /sbin/fradcfg /etc/frad/router.conf || exit 1 /sbin/dlcicfg file /etc/frad/router.conf # # Podnoszenie urządzenia FRAD ifconfig sdla0 up # # Konfiguracja interfejsów DLCI i trasowania ifconfig dlci00 192.168.10.1 pointopoint 192.168.10.2 up route add 192.168.10.0 netmask 255.255.255.0 dlci00 # ifconfig dlci01 192.168.11.1 pointopoint 192.168.11.2 up route add 192.168.11.0 netmask 255.255.255.0 dlci00 # route add default dev dlci00 # 66..1100.. ZZlliicczzaanniiee rruucchhuu ((IIPP AAccccoouunnttiinngg)) Cechy jądra Linuxa dotyczące zliczania ruchu umożliwiają gromadzenia i analizę informacji na temat wykorzystania sieci. Gromadzone dane zawierają liczbę pakietów, liczbę odpowiadających im bajtów przesłanych od ostatniego zerowania liczników. Możesz zliczać ruch na wiele różnych sposobów, odpowiednio grupując ruch tak aby gromadzone inforamcje zawierały odpowiednie, interesujące cię statystyki. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> [*] IP: accounting Po skompilowaniu i zainstalowaniu nowego jądra, muszisz skorzystać z narzędzia o nazwie _i_p_f_w_a_d_m, służącego do wprowadzania i zmiany reguł zliczania ruchu. Istnieje wiele reguł zliczania ruchu, które mógłbyś zastosować. Wybrałem kilka prostych, które mogą być użyteczne, zapoznaj się ze stronąpodręcznika dotyczącą programu _i_p_f_w_a_d_m. Scenariusz: Posiadasz siec ethernetową przyłączoną do Internetu za pomocą połączenia PPP. Na segmencie ethernetowym znajduje się komputer oferujący szereg usług. Jesteś zainteresowany jaki ruch jest generowany przez telnet,rlogi,ftp i www. Możesz skorzystać z poniższego zestawu poleceń: # # Usuń istneijące reguły zliczanai ruchu ipfwadm -A -f # # dodaj reguły dotyczące lokalnego segmentu ethernetowego ipfwadm -A in -a -P tcp -D 44.136.8.96/29 20 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 20 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 23 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 23 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 80 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 80 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 513 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 513 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 ipfwadm -A out -a -P tcp -D 44.136.8.96/29 ipfwadm -A in -a -P udp -D 44.136.8.96/29 ipfwadm -A out -a -P udp -D 44.136.8.96/29 ipfwadm -A in -a -P icmp -D 44.136.8.96/29 ipfwadm -A out -a -P icmp -D 44.136.8.96/29 # # Reguły domyślne ipfwadm -A in -a -P tcp -D 0/0 20 ipfwadm -A out -a -P tcp -S 0/0 20 ipfwadm -A in -a -P tcp -D 0/0 23 ipfwadm -A out -a -P tcp -S 0/0 23 ipfwadm -A in -a -P tcp -D 0/0 80 ipfwadm -A out -a -P tcp -S 0/0 80 ipfwadm -A in -a -P tcp -D 0/0 513 ipfwadm -A out -a -P tcp -S 0/0 513 ipfwadm -A in -a -P tcp -D 0/0 ipfwadm -A out -a -P tcp -D 0/0 ipfwadm -A in -a -P udp -D 0/0 ipfwadm -A out -a -P udp -D 0/0 ipfwadm -A in -a -P icmp -D 0/0 ipfwadm -A out -a -P icmp -D 0/0 # # Wyświetl listę obowiązujących reguł ipfwadm -A -l -n # Ostatnie polecenie wyświetla listę reguł zliczania ruchu wraz ze zgro­ madzonymi informacjami. Analizując wielkość ruchu IP należy pamiętać, że bbęęddzziiee zzwwiięękksszzaannyy lliicczznniikk kkaażżddeejj rreegguułłyy,, kkttóórraa ppaassuujjee ddoo aannaalliizzoowwaanneeggoo ppaakkiieettuu, aby uzyskać wyniki różnicowe, trzeba wykonać proste działania matematyczne. Gdybym chciałznać liczbę przesłąnych bajtów poza usługami telnet, rlogin, ftp i www musiałbym od wielkości ruchu dla wszystkich portów odjąć zmierzone wielkości dla poszczególnych reguł. # ipfwadm -A -l -n IP accounting rules pkts bytes dir prot source destination ports 0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 20 0 0 out tcp 44.136.8.96/29 0.0.0.0/0 20 -> * 0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 23 0 0 out tcp 44.136.8.96/29 0.0.0.0/0 23 -> * 10 1166 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 80 10 572 out tcp 44.136.8.96/29 0.0.0.0/0 80 -> * 242 9777 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 513 220 18198 out tcp 44.136.8.96/29 0.0.0.0/0 513 -> * 252 10943 in tcp 0.0.0.0/0 44.136.8.96/29 * -> * 231 18831 out tcp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 in udp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 out udp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 in icmp 0.0.0.0/0 44.136.8.96/29 * 0 0 out icmp 0.0.0.0/0 44.136.8.96/29 * 0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 20 0 0 out tcp 0.0.0.0/0 0.0.0.0/0 20 -> * 0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 23 0 0 out tcp 0.0.0.0/0 0.0.0.0/0 23 -> * 10 1166 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 80 10 572 out tcp 0.0.0.0/0 0.0.0.0/0 80 -> * 243 9817 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 513 221 18259 out tcp 0.0.0.0/0 0.0.0.0/0 513 -> * 253 10983 in tcp 0.0.0.0/0 0.0.0.0/0 * -> * 231 18831 out tcp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 in udp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 out udp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 in icmp 0.0.0.0/0 0.0.0.0/0 * 0 0 out icmp 0.0.0.0/0 0.0.0.0/0 * # 66..1111.. IIPP AAlliiaassiinngg Istnieją programy sieciowe, które wymagają aby jedno urządzenie sieciowe posiadało wiele numerów IP. Dostawcy internetu często korzystają z tej cechy do tworzenia wirtualnych serwerów WWW i ftp oferując klientowi utworzenie serwera o innym adresie niż ich własny. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> .... [*] Network aliasing .... <*> IP: aliasing support Po skompilowaniu i zainstalowaniu jądra z obsługą IP_Alias, konfiguracja jest bardzo prosta. Aliasy są dodawane do wirtualnych urządzeń sieciowych stowarzyszonych z istniejącymu urządzeniami sieciowymi. Stosuje się prostą konwencję nazywania tych urządzeń, a mianowicie :, np. eth0:0, ppp0:10 etc. Załóżmy, że posiadasz sieć ethernetową, która obsługuje jednocześnie dwie różne podsieci IP. Chciałbyś aby twój komputer miał bezpośredni dostęp do obu tych podsieci: # # ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 up # route add -net 192.168.1.0 netmask 255.255.255.0 eth0:0 # # ifconfig eth0:1 192.168.10.1 netmask 255.255.255.0 up # route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0 # Aby usunąc alias należy do jego nazwy dołączyć znak `-' podczas następnego odwołania się do niego, np. tak: # ifconfig eth0:0- 0 Wraz z usunięciem tego aliasu z tabeli trasowań zostaną usunięte wrzystkie trasy korzystające z tego aliasu. 66..1122.. FFiillttrroowwnniiee ppaakkiieettóóww ((IIPP FFiirreewwaalllliinngg)) Filtrowanie pakiet i zasady przy tym obowiązujące są dokładniej omówione w Firewall-HOWTO . IP Firewalling IP Firewalling pozwala na zabezpieczenia twojego komputera przed niuprawnionym dostępem przez sieć, wykorzystując w tym celu filtrowanie pakietów. Istnieją trzy różne klasy reguł, filtrowanie pakietów przychodzącyhc, filtrowanie pakietów wychodzących i filtrowanie pakietów przekazywanych dalej (forwarding). Reguły filtrowania pakietów przychodzących dotyczą pakietów otrzymanych przez urządzenie sieciowe. Reguły filtrownia pakietów wychodzących, dotyczą pakietów tuż przed wysłaniem przez urządzenie sieciowe. Reguły fitrowania pakietów przesyłanych dotyczą pakietów, które zostały przez nasz komputer odebrane, lecz nie jest on ich ostatecznym adresatem, tzn. pakiety, które będą poddane trasowaniu. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> [*] Network firewalls .... [*] IP: forwarding/gatewaying .... [*] IP: firewalling [ ] IP: firewall packet logging Wprowadzanie reguł filtrownia pakietów IP wykonuje się za pomocą programu _i_p_f_w_a_d_m. Jak wspominałem wcześcniej nie jestem ekspertem od zabezpieczeń sieci komputerowych, więc choć prezentuje przykład, z którego możesz skorzystać, powinieneś samodzielnie zapoznać się z tym tematem i opracować własne reguły filtrowania pakietów, oczywiście tylko wtedym gdy jest dla cienie ważne bezpiezeństwo twojego systemu. Prawdopodobnie najczęstszym wykorzystaniem filtrowania pakietów jest sytuacja, gdy twój Linux pracuje jako router i filtr pakietów chroniący lokalną sieć przed nieuprawnionym dostępem z sieci zewnętrznej. Przedstawiona poniżej konfiguracja jest oparta na sugestiach przesłanych przez Arnta Gulbrandsena,. Przykład opisuje konfigurację reguł filtra pakietów praującego na Linuxie, wykorzystywanym w sposób przedstawiony na poniższym schemacie: - - \ | 172.16.37.0 \ | /255.255.255.0 \ --------- | | 172.16.174.30 | Linux | | NET =================| f/w |------| ..37.19 | PPP | router| | -------- / --------- |--| Mail | / | | /DNS | / | -------- - - Poniżssze polecenia zwykle są umieszczane w jednym z plików rc, aby były automatycznie wykonywane przy każdym uruchomieniu systemu. Aby maksymalnie zwiększyć bezpieczeństwo systemu, powinny być wykonywane tuż po skonfigurowaniu urządzeń sieciowych, lecz tuż przed ich włączeniem. W ten sposób niwelujemy chwilę słąbośći związaną z restartem komputera. #!/bin/sh # Oczyść tabelę reguł przesyłania pakietów (forwarding) # Zmień domyślną polityką na 'accept' (akceptuj): # /sbin/ipfwadm -F -f /sbin/ipfwadm -F -p accept # # .. i dla ruchu przychodzącego (Incoming) # /sbin/ipfwadm -I -f /sbin/ipfwadm -I -p accept # Popierwsze zabezpiecz interfej PPP # Chetnie zamiast '-a deny' wstawiłbym '-a reject -y', lecz wtedy nie # byłoby możliwe rozpoczynanie połączeń wychodzących przez ten # interfejs. Parametr -o pozwala rejestrować odrzucane datagramy. # Kosztem przestrzeni dyskowej zajętej przez inforamcje sysloga # uzyskujemy informacje na temat niechcianego ruchu IP. # /sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30 # Odrzuć pewnego rodzaju pakiety: # Nic nie powinno przychodzić z adresów multicast/anycast/broadcast # /sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24 # # nic nie powinno przychidzić z adresu pętli zwrotnej # /sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24 # Zezwól na połączenia SMTP i DNS, lecz jedynie do serwera Mail/DNS # /sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53 # # DNS korzysta z UDP i TCP, muszisz pozwolić na oba rodzaje połączeń # /sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53 # # Nie pozwalamu na "odpowiedzi" przychodzące do tak niebezpiecznych # portów jak NFS czy rozszerzenie NFSu Larryego McVoya. Jeśli # korzystasz ze squida dopisz tutaj jego port # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \ -D 172.16.37.0/24 2049 2050 # odpowiedzi do innych portów są OK # /sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \ -D 172.16.37.0/24 53 1024:65535 # Odrzuć połączenia przychodzące do identd # korzystamy tutaj z 'reject', aby łączący się komputer wiedział, że # nie ma co próbować nawiązać połączenia. W przeciwnym wypadku narazimy # się na opóźnienia wywołane działaniem programu ident po drugiej # stronie nawiązywanego przez nas połączenia # /sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113 # Pozwól na popularne usługi pochodzące z sieci 192.168.64 i 192.168.65 # /sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \ -D 172.16.37.0/24 20:23 # akceptuj i przesyłaj wszystko co wzięło się z sieci loklanej # /sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0 # zabroń większości innych połączeń TCP i rejestruj je # (jeśli masz kłopot z działaniem ftp dodaj 1:1023) # /sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24 # ... for UDP too # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24 Dobra konfiguracja filtra jest niemal sztuką. Powyższy przykład powinien być rozsądnym punktem startowym. Strona podręcznika dotycząca _i_p_f_w_a_d_m oferuje dodatkowe inforamacje na ten temat. Jeśli planujesz założenie filtra upewnij się, że zebrałeś wokół maksymalnie wiele porad ze źródeł, którym możesz ufać i poproś kogoś aby sprawdził działanie twojego filtra z zewnątrz. 66..1133.. IIPPXX ((AAFF__IIPPXX) Protokół IPX jest powszechnie wykorzystywany w lokalnych siecach Novell Netware(tm). Linux potrafi obsługiwać ten protokół i może zostać skonfigurowany do pracy jako końcówk sieci Novell Netwate(tm) lub jako router pakietów IPX. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> [*] The IPX protocol [ ] Full internal IPX network Protokół IPX i standard NCPFS są dokładniej omówione w IPX-HOWTO . 66..1144.. IIPPvv66 Właśnie gdy zaczęło ci się wydawać, że zaczynasz rozumieć sieci IP, zasady się zmieniły! IPv6 jest skrótem oznaczającym wersję 6 protokołu IP. IPv6 został opracowany w celu rozwiania obaw społeczności internetowej związanych z wyczerpywaniem się wolnych adresów IP. Adresy prtotokołu IPv6 są budowane na 32 bajtach (128bitów), pozwoli to na lepsze zarządzanie sieciami, niż ma to obecnie. Jądra Linuxa serii 2.1.* już posiadają działającą, choć niepełną implementacje protokołu IPv6. Jeśli chcesz poeksperymentować z tą nową generacją technologii internetowych, lub jest ci to do czegoś potrzebne, powinieneś przeczytać IPv6-FAQ dostępny pod adresem: www.terra.net . 66..1155.. IISSDDNN Sieć cyfrowa zintegrowanych usług (Integrated Services Digital Network - ISDN) składa się z serii standardów definujących cyfrową sieć pakietową ogólnego przeznaczenia. ISND jest zwykle dostarczana łączami o wysokiej prędkości, podzielonymi na wiele kanałów. Istnieją dwa różne rodzaje kanałów, kanały typu 'B' rzeczywiście przenoszące dane użytkownika, oraz kanał typu 'D' wykorzystywany do przesyłania informacji sterującej do centrali ISDN w celu zestawiania połączeń i innych funkcji. Dla przykładu w Australii ISDN może być dostarczony łączem 2Mbps podzielonym na 30 kabałów B po 64kbps każdy i jeden kanał D. W tej samej chwili może być wykorzystywana dowolna liczba kabałów w dowolnej kombinacji. Jest możnliwe np, zestawienie 30 różnych połączeń z 30toma różnymi punktami docelowymi, każde po 64kbps lub 15 połączeń z 15toma różnymi punktami docelowymi, każde po 128 kbps (jedno połączenie wykorzystuje dwa kanały), lub zestwienie małej liczby połączeń pozostawiając pozostałą część pasma niewykorzytaną. Pierwotną przyczyną powstania ISDN, było umożliwienie firmom telekomunikacyjnym udostępniania jednej usługi przesyłania danych, która mogłaby być wykorzystywana dla telefonii (wykorzystują cyfrowe przetworniki głosu) lub do przesyłania danych bez konieczności wykonywania przez klienta jakichkolwiek zmian. Istnieje kilka różnych metod podłączenia komputera do sieci ISDN. Jedną z nich jest wykorzystanie urządzenia o nazwie `Terminal Adaptor', które włącza się do końcówki sieciowej (Network Terminating Unit), zainstalowanej przez twojego dostawcę usługi ISDN, udostępniającego z drugiej strony kilka portów szeregowych. Jeden z tych portów służy do wprowadzania poleceń w celu skonfigurowania i nawiązania połączeń, pozostałe są podłączone do urządzeń sieciowych, które będą bezpośrednio korzystały z zestawionych kanałów transmisji danych. W takiej konfiguracji Linux będzie pracował poprawnie bez konieczności wykonywania jakichkolwiek modyfikacji. Korzystamy z portu szeregowego urządzenia 'Terminal Adaptor' w taki sam sposób, jak ze zwykłego portu szeregowego. Innym sposobem przyłączenia Linuxa do sieci ISDN, w czym wspomagać nas będzie kod obsługi ISDN zawarty w jądrze Linuxa jest zainstalowanie karty ISDN bezpośrednio w Linuxie. Wtedy moduł obsługi ISDN w jądrze Linuxa jest odpowiedzialny za obsługę urządzenia, protokołów i zestawianie połączeń. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: ISDN subsystem ---> <*> ISDN support [ ] Support synchronous PPP [ ] Support audio via ISDN < > ICN 2B and 4B support < > PCBIT-D support < > Teles/NICCY1016PC/Creatix support Implementacja ISDN w jądrze Linuxa rozpoznaje szereg różnych typów wewnętrznych kart ISDN. Ich lista jest przedstawiona podczas konfigu­ racji jądra: ˇ ICN 2B and 4B ˇ Octal PCBIT-D ˇ Teles ISDN-cards and compatibles Część z tych kart wymaga załadowania do ich wewnętrznej pamięci odpowiedniego oprogramowania. Służy do tego oddzielne narzędzie. Szczegółowy opis jak skonfigurować obsługę ISDN pod Linuxem jest dostępny w katalogu /usr/src/linux/Documentation/isdn/. Istnieje również FAQ poświęcony tej tematyce: _i_s_d_n_4_l_i_n_u_x jest dostępny pod adresem www.lrz-muenchen.de . (po połączeniu, aby otrzymac wersję angielską, musisz kliknąc na angielskiej fladze) UUwwaaggaa nnaa tteemmaatt PPPPPP. Rodzina protokołów PPP pracuje na łączach szeregowych synschronicznych lub asynchronicznych. Rozpowszechniany powszechnie program `_p_p_p_d' obsługuje jedynie tryb asynchroniczny. Jeśli zamierzasz uruchamiać połączenie PPP wykorzystująć jako nośnik uslugę ISDN, potrzebujesz specjalną, zmodyfikowaną wersję tego programu. Wskazówki, gdzie ją można znaleźć znajdziesz w dokumentacji, o której wspomnieliśmy wcześniej. 66..1166.. IIPP MMaassqquueerraaddee Wielu ludzi do połączenia z Internetem ma zwykłe konto u dostwcy Internetu. Niemal każdy korzystający z takigj konfiguracji otrzymuje od swojego dostwcy Internetu jeden adres IP. Zwykle jest to wystarczające na podłączenie do Internetu tylko jednego komputera. Maskarada adresu IP jest sprytną sztuczką umożliwiającą jednoczesne korzystanie z tego jednego adresu IP przez wiele komputerów, sprawiając, że dla świata zewnętrzengo komputery te wyglądają tak, jak gdyby były komputerem obsługujący połączenie modemowe z Internetem. Istnieje mała niedogodność, a mianowicie w większości przypadków maskarada adresów IP działa tylko w jedną stronę, to znaczy komputery, które z niej korzystają mogą nawiązywać połączenia z komputerami w sieci Internet, lecz same nie mogą otrzymywać połączeń z zewnątrz. To oznacza, że niektóre usługi sieciowe np. _t_a_l_k nie działąją, a inne np. _f_t_p muszą być skonfigurowane do pracy w trybi pasywnym (PASV). Na szczęscie większość usług internetowych takich, jak _t_e_l_n_e_t, _W_W_W i _i_r_c działa bardzo dobrze. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Networking options ---> [*] Network firewalls .... [*] TCP/IP networking [*] IP: forwarding/gatewaying .... [*] IP: masquerading (EXPERIMENTAL) Wpierw twój Linux musi obsługiwać połączenie z internetem (zwykle przez SLIP lub PPP) w taki sam sposób, jak gdyby byłjedynym komput­ erme, który będzie z tego połączenia korzystał. Następnie należy skon­ figirować dodatkowe urządzenie sieciowe, zwykle kartę sieci ethernet, zwykle korzystając z puli numerów IP zarezerwowanych dla sieci prywat­ nych, których nie wykorzystuje się w sieci Internet. Komputery korzys­ tające z maskarady adresów IP bedą właśnie na tej sieci. Każdy z nich otrzyma adres IP i zostanie skonfigurowany w ten sposób, że jego gate­ wayem (routerem) stanie się interfejs karty ethernetowej naszego Lin­ uxa. Typowa konfiguracja wygląda mnie więcej tak: - - \ | 192.168.1.0 \ | /255.255.255.0 \ --------- | | | Linux | .1.1 | NET =================| masq |------| | PPP/slip | router| | -------- / --------- |--| host | / | | | / | -------- - - Najważniejsze polecenia konfiguracyjne dla tego przykładu: # Trasa do sieci na segmencie ethernetowym route add 192.168.1.0 netmask 255.255.255.0 eth0 # # Domyślna trasa do Internetu route add default ppp0 # # Wszystkie komputery w sieci 192.168.1/24 korzystają z maskarady # adresów IP ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 Więcej informacji na temat maskarady adresów IP pod Linuxem znajdziesz tutaj:IP Masquerade Resource Page , lub w dokumencie IP-Masquerade- HOWTO . 66..1177.. IIPP TTrraannssppaarreenntt PPrrooxxyy Przezroczyste proxy IP jest udogodnieniem, które umożliwia przekierowanie połączeń do usług lub serwerów na innym komputerze do usług lub serwerów znajdujących się na tym komputerze. Zwykle jest to użyteczne w sytuacji gdy twój Linux pracuje jako router i jednocześnie pracuje jako serwer proxy. W takim przypadku możesz przekierować dokalnego proxy serwera wszystkie połączenia do serwerów proxy znajdujących się za routerem. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Networking options ---> [*] Network firewalls .... [*] TCP/IP networking .... [*] IP: firewalling .... [*] IP: transparent proxy support (EXPERIMENTAL) Konfigurację przezroczystego proxy wykonuje się programem _i_p_f_w_a_d_m. Prosty przykład, który może być użyteczny: ipfwadm -I -a accept -D 0/0 80 -r 8080 W powyższym przykładzie przekierowujemy wszystkie połaczenia skierowane na port 80 (www) dowolnego komputera, na połaczenia do portu 8080 naszego Linuxa. Ten spsób mógłby być użyty (gdyby był poprawny - bo nie jest ...pp) do przekierowania całego ruchu www do lokalnego serwera proxy. 66..1188.. MMoobbiillee IIPP Termin 'IP mobility' opisuje zdolność komputera do przemieszczania swojego punktu styku z internetem z jednej sieci do innej sieci bez konieczności zmiany własnego adresu IP i bez utraty nawiązanych połączeń. Zwykle gdy komputer zmienia swój punk przyłączenia do sieci, musi również zmienić adres IP. Udogodnienie IP Mobility przezwycięża tę niedogodność przydzielając komputerowi jeden, ustalony adres IP i wykorzystuje tunerowanie (IP tunneling) i automatyczne trasowanie zapewniając, żę datagramy skierowane do tego komputera są kierowane do adresu IP, z którego korzysta. Istnieje projekt mający zapewnić powstanie kompletu narzędzi dla udogonienia 'IP mobility' pd Linuxem. Aktualny stan prac można poznać zaglądając na stronę: Linux Mobile IP Home Page . 66..1199.. MMuullttiiccaasstt IP Multicast pozwala na jednoczesne trasowanie datagramów do wielu różnych komputerów znajdujących się w zupełnie innych podsieciach. Korzysta się z tego mechanizmu rozpowszechniania w internecie audio i video lub innych nowoczesnych usług. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> [*] TCP/IP networking .... [*] IP: multicasting Wymagany jest minimalny zestaw narzędzi i mała rekonfiguracja sieci. Dobrym źródłem informacji na temat istalacji i konfiguracji tego udogodnienia pod Linuxem jest strona www.teksouth.com . 66..2200.. NNeettRRoomm ((AAFF__NNEETTRROOMM) Urządzenia NetRom noszą nazwy `nr0', `nr1', itd. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> [*] Amateur Radio AX.25 Level 2 [*] Amateur Radio NET/ROM Protokołu AX25, NetRom i Rose są opisane w AX25-HOWTO . Są wykorzystywane głównie przez krótkofalowców (packet radio). Wiekszość pracy w implementacji tych protokołów pod Linuxem wykonał Jonathon Naylor, jsn@cs.not.ac.uk. 66..2211.. PPLLIIPP Urządzenia PLIP noszą nazwy `plip0', `plip1, itd. Pierwsze konfigurowane urządzenie otrzymuje numer `0', a następne otrzymują kolejne numery. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> <*> PLIP (parallel port) support _p_l_i_p (Parallel Line IP), jest podobny do SLIP, to znaczy zapewnia połączenie _p_u_n_k_t_-_d_o_-_p_u_n_k_t_u (point-to-point) między dwoma komputerami, lecz wykorzystuje w tym celu porty równoległe komputera (zamiast portów szeregowych, jak to ma miejsce w przypadku protokołu SLIP). Ponieważ port równoległy umożliwia w jednej chwili transmisję więcej niż jednego bitu, wykorzystując interfejs _p_l_i_p możemy osiągnąć znacznie większe prędkośći transmisji, niż ma to miejsce w przypadku portu szeregowego. Co więcej, do plip może być wykorzystany nawet najprostszy rodzaj portu szeregowego, port drukarkowy, gdy do pełnego wykorzystania portów szeregowych konieczne jest zakupienie dosyć drogich układów UART 15550AFN. Należy zwrócić uwagę, że niektóre laptopy używją układów, które nie będą poprawnie współpracować z PLIP, ponieważ nie zezwalają na przesyłanie pewnego rodzaju sygnałów, na których polega PLIP, a z których nie korzystają drukarki. Interfejs _p_l_i_p pod Linuxem jest zgodny z _C_r_y_n_w_y_r _P_a_c_k_e_t _D_r_i_v_e_r _P_L_I_P, a to oznacza, że możesz przyłączyć do swojego Linuxa, komputer pracujący pod MSDOS, na którym działa oprogramowanie TCP/IP korzystające ze standardu 'packet drivera', korzystająe z drajwera plip. Podczas kompilacji jądra jedyny plik, którmu warto się bliżej przyjżeć to /usr/src/linux/driver/net/CONFIG. Zawiera parametry czasowe sterownika _p_l_i_p podane w milisekundach. Wartości domyślne są prawdopodobnie poprawne w większości przypadków. Jeśli twój komputer jest wyjątkowo wolny, możesz się zastanowić nad zwiększeniem tych paramterów, ale na komputerze po drugiej stronie połączenia. Sterownik przyjmuje następujące wartości dimyślne parametrów: urządzenie adres IRQ we/wy ------ -------- ----- plip0 0x3BC 5 plip1 0x378 7 plip2 0x278 2 (9) Jeśli parametry portów równoległych twojego komputera nie pasują do żadnej z przedstawionych powyżej kombinacji, jesteś w stanie zmienić przerwanie IRQ wykorzystywane przez port (za pomocą programu _i_f_c_o_n_f_i_g). Pamiętaj aby włączyć w BIOSie korzystanie przez porty równoległe zprzerwań IRQ, oczywiście o ile BIOS posiada taką opcję. W celu skonfigurowania interfejsu _p_l_i_p musisz do plików rc konfigurujących sieć _d_o_d_a_ć następujące polecenia: # # Przyłącz interfejs PLIP # # skonfiguruj pierwszy port równoległy jako urządzenie plip /sbin/ifconfig plip0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up # # End plip Gdzie: IIPPAA..IIPPAA..IIPPAA..IIPPAA oznacza twój adres IP. IIPPRR..IIPPRR..IIPPRR..IIPPRR oznacza adres IP komputera zdalnego. Parametr _p_o_i_n_t_o_p_o_i_n_t ma tutaj takie samo zanczenie, co w przypadku protokołu SLIP, a mianowicie określa adres IP komputera po drugiejstronie połączenia. Urządzenie _p_l_i_p niemal pod każdym względem możesz traktować tak samo jak urządenie _s_l_i_p, poza tym, że ani _d_i_p ani _s_l_a_t_t_a_c_h nie muszą i nie mogą być wykorzystywane. 66..2211..11.. SScchheemmaatt kkaabbllaa ddoo ppoołłąącczzeenniiaa PPLLIIPP.. _p_l_i_p został opracowany w taki sposób, aby wykorzystywał kable o takim samym układzie, co kable, zktórych korzystają inne popularne programy do transferu danych przez port równoległy pracujące w środowisku MSDOS. Schemat połączeń (wzięty z /usr/src/linux/drivers/net/plip.c) znajduje się poniżej: Nazwa Połączenie --------- ----------------- GROUND 25 - 25 D0->ERROR 2 - 15 ERROR->D0 15 - 2 D1->SLCT 3 - 13 SLCT->D1 13 - 3 D2->PAPOUT 4 - 12 PAPOUT->D2 12 - 4 D3->ACK 5 - 10 ACK->D3 10 - 5 D4->BUSY 6 - 11 BUSY->D4 11 - 6 D5 7* D6 8* D7 9* STROBE 1* FEED 14* INIT 16* SLCTIN 17* Uwagi: Nie należy łączyć końcówek oznaczonych `*'. Dodatkowe uziemienia to 18,19,20,21,22,23 i 24. Jeśli kabel z którego korzystasz jest ekranowany, ekran powinien być podłączony do obudowy wtyczki DB-25 ttyyllkkoo nnaa jjeeddnnyymm oońńccuu. OOssttrrzzeeżżeenniiee:: kkaabbeell zzee źźllee wwyykkoonnaannyymmii ppoołłąącczzeenniiaammii mmoożżee ffiizzyycczznniiee zznniisszzcczzyyćć kkaarrttęę kkoonnttrroolloorraa ttwwoojjeeggoo kkoommppuutteerraa... Bądź bardzo ostrożny i dwukrotnie sprawdzaj każde połączenie, aby nie narazić się na niepotrzebny ból głowy lub atak serca. Choć może się udać, że połączenie PLIP będzie pracować na duże odległości, należy jednak tego unikać. Specykikacja kabla pozwala na wykonania kabla o długości ok 1m. Bądz ostrożny używając dłuższych kabli, ponieważ źródłą silnych pół elekromagnetycznych (pioruny, linue wysokiego napięcia, nadajnuki radiowe) mogą zaklócić pracę a czasami doprowadzić do uszkodzenia sterownika. Jeśli zależy ci na połączeniu dwóch komputerów na naprawdę dużą odległość, powinieneś zopatrzyć się w parę tanich kart ethernetowych pracujących na cienkim kablu koncentrycznym. 66..2222.. PPPPPP Urządzenia PPP noszą nazwy `ppp0', `ppp1, itd. Urządzenia otrzymują kolejne numery poczynając od `0'. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> <*> PPP (point-to-point) support Szczegółowy opis konfiguracji PPP można znaleźć w PPP-HOWTO . 66..2222..11.. UUttrrzzyymmyywwaanniiee zzaa ppoommooccąą _p_p_p ssttaałłeeggoo ppoołłąącczzeenniiaa zz IInntteerrnneetteemm.. Jeśli masz na tyle szczęścia, aby posiadać półstałe połaczenie z siecią i chciałbys, aby twój komputer automatycznie zestawiał połączenie PPP, gdy z jakiegoś powodu zostanie przerwane, pomoże ci w tym prosta sztuczka. Skonfiguruj PPP w taki sposób, aby było uruchamiane prze administratora systemu za pomocą polecenia: # pppd UUppeewwnniijj ssiięę, że w pliku /etc/ppp/options znajduje się opcja `-detach'. Następnie dodaj do pliku /etc/inittab, poniżej definicji _g_e_t_t_y następujący wiersz: pd:23:respawn:/usr/sbin/pppd W ten sposón program _i_n_i_t bedzie uruchamiał i monitorował program _p_p_p_d i za każdym razem, gdy pppd zkończy pracę, będzie uruchamiał go ponownie. 66..2233.. RRoossee pprroottooccooll ((AAFF__RROOSSEE) Urządzenia protokolu Rose noszą nazwy `rs0', `rs1', itd. Dostępne są w jądrach w wersji 2.1.*. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Networking options ---> [*] Amateur Radio AX.25 Level 2 <*> Amateur Radio X.25 PLP (Rose) Protokoły AX25, NetRom i Rose są dokładnie omówione w AX25-HOWTO . Są wykorzystywane przez krótkofalowców (packet radio). Większość pracy związanej z implementacją tych protokołów pod Linuxem wykonał Jonathon Naylor, jsn@cs.not.ac.uk. 66..2244.. SSAAMMBBAA -- ``NNeettBBEEUUII'',, ``NNeettBBiiooss'' ssuuppppoorrtt.. SAMBA jest implemnetacją protokołu SMB (Session Management Block). Pozwala na korzystanie z dysków i drukarek komputera pracującego pod Linuxem, komputerom pracującym pod systemami firmy Microsoft lub pod systemem OS2 SAMBA i jej konfigiracja jest szcegółowo omówiona w SMB-HOWTO . 66..2255.. KKlliieenntt pprroottookkoołłuu SSLLIIPP Urządzenia protokołu SLIP są nazywane `sl0', `sl1' itd. Pierwsze skonfigurowane urządzenie otrzymuje numer `0', pozostałe otrzymują kolejne numery, w momencie ich konfiguracji. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Network device support ---> [*] Network device support <*> SLIP (serial line) support [ ] CSLIP compressed headers [ ] Keepalive and linefill [ ] Six bit SLIP encapsulation Protokół SLIP (Serial Line Internet Protocol) pozwala na zestawienie połączenia TCP/IP przez linię szeregową, np. połączenie modemowe przez linię telefoniczną lub dzierżawioną. Oczywiście aby móc korzystać z protokołu SLIP należy mieć wpierw dostęp do _s_e_r_w_e_r_a _S_L_I_P. Wiele uniwersytetów i firm komercyjnych udostępniają usługę SLIP. SLIP wykorzystuje porty szeregowe komputera do przesyłania datagramów IP. W tym celu musi przejąć sterowanie portu szeregowego. Urządzenia SLIP noszą nazwy _s_l_0,_s_l_1 itd. Jak to się ma do urządzeń portów szeregowych? Oprogramowanie sieciowe korzysta z funkcji _i_o_c_t_l (i/o control) za pomocą których może zażadać zamiany urządzenia portu szeregowegow urządzenie SLIP. Dwa popularne programy potrafią to zrobić. Jeden z nich to _d_i_p, drugi _s_l_a_t_t_a_c_h. 66..2255..11.. ddiipp _d_i_p (Dialup IP) to zmyślny program umożliwiający ustawienie prędkości portów szeregowych, sterowanie modemem w celu wybrania odpowiedniego numeru, zautomatyzowane wejście do zdalnego systemu, przesukiwanie i wybieranie informacji przesyłanych przez zdalny serwer( np przydzielonego nam na czas sesji adresu IP), korzystanie z funkcji _i_o_c_t_l w celu przestawienia portu szeregowego w urządzenie SLIP. Program _d_i_p posiada rozbudowany język przeznaczony do pisania skryptów, dzięki czemu można bardzo łatwo zautomatyzować procedurę zestawiania połączenia SLIP. Jes dostępny pod adresem: sunsite.unc.edu . Aby go zainstalować spróbuj wydać następujące polecenia: # # cd /usr/src # gzip -dc dip337o-uri.tgz | tar xvf - # cd dip-3.3.7o # make install # Plik Makefile zakłada istnienie w twoim systemie grupy o nazwie _u_u_c_p, lecz możesz to zmienić np na _d_i_p, lub _s_l_i_p zleżnie od twojej konfiguracji. 66..2255..22.. ssllaattttaacchh _s_l_a_t_t_a_c_h w przecuwieńtwie do _d_i_p jest bardzo prostym programem, bardzo łatwym w użytkowaniu, nie posiadającym bogatych opcji programu _d_i_p. Nie posiada możłiwości tworzenia skryptów, jedyne co robi to konfiguracja urządzenia portu szeregowego, jako urządzenia SLIP. Zakłada, że posiadasz wszystkie informacje niezbędne do zestawienia połączenia oraz, że połazcenie fizyczne między portmi jest już zestawione. _s_l_a_t_t_c_h_c jest idealne d owykorzystania w stałych połaczeniach z serwerem, np. przez kabel łączący bezpośrednio dwa porty szeregowe lub przez linie dzierżawioną. 66..2255..33.. KKiieeddyy uużżyywwaaćć kkaażżddeeggoo zz ttyycchh pprrooggrraammóóww ?? Skorzystłbym z programu _d_i_p zawsze wtedy, gdy lączyłbyn komputer z serwerem SLIP przez modem i linię telefoniczną. Skorzystłbym z programu _s_l_a_t_t_a_c_h wtedy, gdy zestawiałbym połączenie przez linię dzierżawioną lub kabel bezpośrednio między serwerem i moim komputerem i gdy nie muszę wykonywać żdnych czynności do fizycznego zestawienia połączenia między moim komputerm a serwerem. Patrz rozdział 'Stałe połączenie SLIP'. Konfiguracja urządzenia SLIP jest zbliżona do konfiguracji urządzenia karty ethernetowej. (przeczytaj rozdział 'Konfiguracja karty ethernetowej). Jednakże istneiją dwie zasdnicze różnice: Po pierwsze SLIP w przeciwieństwie do sieci ethernetowych łączy bezpośrednio ze sobą tylko dwa komputery, po jednym na każdym końcu połączenia. O ile podłączenie kabla sieci ethernet do komputera oznacza jej natychmiastową gotowość do pracy, o tyle w przypadku protokołu SLIP może być wymagana wcześniejsza inicjacja fizycznego połączenia między komputerami. Jeśli korzystasz z programu _d_i_p, to zwykle inicjacja łącza odbywa się nie tuż po uruchomieniu systemu, lecz póżniej, gdy jesteś gotowy do korzystania z połączenia. Można całą tę procedurę zautomatyzować. Jeśli korzystasz z programu slattch wtedy prawdopodobnie zechcesz zmodyfikować plik startowy rc.inet1. Jak to zrobić powiemy za chwilę. Istnieją dwa podstawowe serwery udostępniające SLIP. Różnią się sposobem przydziału adresu IP, mogą to robić statycznie (za każdym razem otrzymujesz ten sam adres IP) i dynamicznie (po nawiązaniu połączenia serwer podaj, jakiego adreu powinieneś używać). Niemal każdy serwer SLIP bedzie wymagał przedstawienia się i podania hasła. _d_i_p potrafi zautomatyzować wszystkie te procedury. 66..2255..44.. SSttaattyycczznnyy sseerrwweerr SSLLIIPP lliinniiee mmooddeemmoowwee ii pprrooggrraammeemm DDIIPP.. Statyczny serwer SLIP to skrót oznaczający serwer SLIP przydzielający adresy IP w sposób statyczny, Otrzymany adres IP jest wyłącznie twój. Za każdym razem, gdy przyłączysz się do serwera będziesz konfigurował port SLIP swojego komputera tym samym adresem IP. Serwer odpowie na połączenie rozpoczęte przez twój modem, prawdopodobnie poprosi o podanie pseudonimu i hasła, a następnie po przejściu w tryb SLIP będzie przesyłał wszystkie datagramy adresowane na twój adres IP przez nazwiązane przez ciebie połączenie. Jeśli korzystasz ze statycznego serwera SLIP, możesz chcieć dodać do pliku /etc/hosts pozycję z nazwą i adresem IP twojego komputera. Powinieneś również skonfigurować kilka innych plików, między innymi rc.inet2, host.conf, resolv.conf, /etc/HOSTNAME i rc.local. Pamiętaj, że modyfikując rc.inet1 nie musisz podawać żadnych poleceń specyficznych dla połączenia SLIP, pnieważ to dopiero _d_i_p wykona całą ciężką robotę konfigurując interfejs SLIP, po tym jak nawiąże połączenie modemowe i zaloguje się na serwer. Jeśli tak właśnie pracuje serwer SLIP z którego korzystasz możesz przejść do rozdziału 'Korzystanie z programu dip', tam dowiesz się jak poprawnie skonfigurować ten program. 66..2255..55.. DDyynnaammiicc SSLLIIPP sseerrvveerr wwiitthh aa ddiiaalluupp lliinnee aanndd DDIIPP.. _D_y_n_a_m_i_c_z_n_y serwer SLIP to skrót oznaczający serwer SLIP, który z pewnej puli przydziela adresy IP w sposób dynamiczny (za każdym razem, gdy się z nim połączysz możesz otrzymać inny adres IP). To znaczy, że nie masz gwarancji, że łącząc sie otrzymasz konkretny adres IP, może on być wykorzystywany przez kogoś innego, wtedy gdy nie korzystasz z połączenia. Administrator sieci, który skonfigurował serwer przydzielił mu pewną pulęadresów IP z której może korzystać. Obsługując kolejne przychodzące połączenie znajduje pierwszy niewykorzystany w danym momencie adres IP, przeprowadza użytkownika przez procedurę weryfikacyjną wyświetlając na koniec informacje zawierającą adres IP, który został przydzielony temu użytkownikowi na czas trwania nawiązego właśnie połączenia. Konfiguracja do korzystania z tego rodzaju serwera jet podobna do tej dla serwera statycznego. Trzeba jedynie dodac fragment pobrania adresu IP rpzydzielonego nam przez serwer na czas trwania połączenia, a następnie kontunuować konfigurowanie SLIPa z tym właśnie adresem. Pnownie, _d_i_p wykonuje tę cięzką pracę, a jego nowsze wersje są na tyle sprytne, że potrafią nie tylko zlogować cię do systemu, ale również potrafią odczytać automatycznie adres IP wyświetlany przez serwer, zachowując go do późniejszego wykorzystania przy onfigurowaniu interfejsu SLIP. Jeśli tak właśnie pracuje serwer SLIP z którego korzystasz możesz przejść do rozdziału 'Korzystanie z programu dip', tam dowiesz się jak poprawnie skonfigurować ten program. 66..2255..66.. KKoorrzzyyssttaanniiee zz pprrooggrraammuu ddiipp.. Jak wyjaśniliśmy wcześniej _d_i_p jest potężnym programem, który potrafi uprościć i zautomatyzować proces łączenia się z serwerem SLIP, logowania się na ten serwer uruchamiania tam odpowiedniego oprogramowania i konfigurowania lokalnych urządzeń SLIP za pomocą odpowiednich poleceń korzystających z programów _i_f_c_o_n_f_i_g i _r_o_u_t_e. Podstawowym sposobem korzystania z programu _d_i_p jest pisanie i uruchamianie specjalnych skryptów, składających się z listy poleceń rozumianych przez program _d_i_p. Przyjżyj się plikowi sample.dip znajdującemu się w dystrybucji programu _d_i_p. Dip jest potężnym programem posiadającym wiele opcji, nie bedziemy ich tu wszystkich przedstawiać, jeśli cię to interesuje, przyjżyj się stronom podręcznika poświęconym programowi dip, plikom README i innym plikom przykłądowym znajdującym się w pakiecie dystrybucyjnym programu. Prawdopodobnie zauważyłeś, że plik sample.dip zakłada, że korzstasz ze statycznego serwera SLIP, tzn. że wiesz jaki jest twój adres IP, znim połączysz sie z serwerem. W przypadku korzystania z dynamicznego serwera SLIP nowsze wersje programu dip zostały zaopatrzone w dodatkowe polecenie, które potrafi automatycznie odczytać i skonfigurowć lokalne urządzenie SLIP z adresem IP przydzielonym przez serwer. Poniższa próbka jest zmodyfikowanym plikiem sample.dip dostarczanym w pakiecie _d_i_p_3_3_7_j_-_u_r_i_._t_g_z i w twoim przypadku prawdopodobnie jest dobrym punktem startowym. Możesz go zachować jako np. /etc/dipscript i dostosować go do swoich wrunków. # # sample.dip Dialup IP connection support program. # # This file (should show) shows how to use the DIP # This file should work for Annex type dynamic servers, if you # use a static address server then use the sample.dip file that # comes as part of the dip337-uri.tgz package. # # # Version: @(#)sample.dip 1.40 07/20/93 # # Author: Fred N. van Kempen, # main: # Next, set up the other side's name and address. # My dialin machine is called 'xs4all.hacktic.nl' (== 193.78.33.42) get $remote xs4all.hacktic.nl # Set netmask on sl0 to 255.255.255.0 netmask 255.255.255.0 # Set the desired serial port and speed. port cua02 speed 38400 # Reset the modem and terminal line. # This seems to cause trouble for some people! reset # Note! "Standard" pre-defined "errlevel" values: # 0 - OK # 1 - CONNECT # 2 - ERROR # # You can change those grep'ping for "addchat()" in *.c... # Prepare for dialing. send ATQ0V1E1X4\r wait OK 2 if $errlvl != 0 goto modem_trouble dial 555-1234567 if $errlvl != 1 goto modem_trouble # We are connected. Login to the system. login: sleep 2 wait ogin: 20 if $errlvl != 0 goto login_trouble send MYLOGIN\n wait ord: 20 if $errlvl != 0 goto password_error send MYPASSWD\n loggedin: # We are now logged in. wait SOMEPROMPT 30 if $errlvl != 0 goto prompt_error # Command the server into SLIP mode send SLIP\n wait SLIP 30 if $errlvl != 0 goto prompt_error # Get and Set your IP address from the server. # Here we assume that after commanding the SLIP server into SLIP # mode that it prints your IP address get $locip remote 30 if $errlvl != 0 goto prompt_error # Set up the SLIP operating parameters. get $mtu 296 # Ensure "route add -net default xs4all.hacktic.nl" will be done default # Say hello and fire up! done: print CONNECTED $locip ---> $rmtip mode CSLIP goto exit prompt_error: print TIME-OUT waiting for sliplogin to fire up... goto error login_trouble: print Trouble waiting for the Login: prompt... goto error password:error: print Trouble waiting for the Password: prompt... goto error modem_trouble: print Trouble occurred with the modem... error: print CONNECT FAILED to $remote quit exit: exit Powyższy przykład zakłada, że łączysz się z _d_y_n_a_m_i_c_z_n_y_m serwerem SLIP. Jeśli łączysz się z serwerem _s_t_a_t_y_c_z_n_y_m powinieneś skorzystać z pliku sample.dip dostarczanego razem z _d_i_p_3_3_7_j_-_u_r_i_._t_g_z. Gdy _d_i_p otrzyma polecenie _g_e_t _$_l_o_c_a_l przeszukuje tekst przesyłany przez serwer SLIP w poszukiwaniu ciągu znaków wyglądającego jako adres IP, tzn. viągi cyfr roznielone kropką '.'. Została ona wprowadzone dla osób korzystających z _d_y_n_a_m_i_c_z_n_y_c_h serwerów SLIP, aby dip mógł sam,automatycznie odczytać adres IP przydzielony przez serwer. W powyższym przykładzie po zestawieniu połączenia SLIP zostanie automatycznie dodana domyślna trasa skierowana właśnie przez to połączenie. Jeśli nie tego oczekujesz, możesz np posiadać inne połączcenie przez sieć ethernetową, przez które ma byc skierowana domyslna trasa, usuń z powyższego pliku wiersz z poleceniem _d_e_f_a_u_l_t. Jeśli po zakończeniu działania tego skryptu wydasz polecenie _i_f_c_o_n_f_i_g zobaczysz, że pojawiło się nowe urządzenie _s_l_0. To jest właśnie urządzenie SLIP. W miarę potrzeb możesz zmienić konfigurację sieci ręcznie, po zakończeniu działania programu _d_i_p, za pomocą pogramów _i_f_c_o_n_f_i_g i _r_o_u_t_e. Należy pamietac, że _d_i_p pozwala na wybranie jendego z wileu różnych protokołów wykorzystywanych w poleceniu mode. Najczęściej jest to _c_S_L_I_P oznaczający SLIP z kompresją nagłówków. Pamiętaj, że oba końce połączenia muszą pracować w identycznym trybie. Jeśli zmienisz jakieś ustawienia, musisz się upewnić, że serwer sobie z nimi poradzi. Powyższy przkład jest uniwersalny i powinien poradzic sobie z większością błędów jakie mogą wystąpić. Więcej informacji znajdziesz na stronie podręcznika poświęconej programowi _d_i_p (man dip). Oczywiście możesz w taki sposób zmodyfikować ten skrypt, aby w przypadku wystapienia błędu próbował powtórnie nawiązać połączenie telefoniczne, lub próbował połączyć się z innymi srwerami, które udostępniają ci wejscie do Internetu. 66..2255..77.. SSttaałłee ppoołłąącczzeenniiee SSLLIIPP pprrzzeezz lliinniięę ddzziieerrżżaawwiioonnąą -- ssllaattttaacchh.. Jeśli jesteś posiadaczem kabla łączącego dwa komputery, lub szczęścliwcem posiadającym linie dzierżawioną lub inne stałe połączenie szeregowe dwóch komputerów, wtedy nie musisz się kłopotać zestawiając łącze szeregowe za pomocą programu _d_i_p. _s_l_a_t_t_a_c_h jest bardzo łatwym w uzywaniu narzędziem umożliwiającym skonfigurować zestawiane połaczenie. Ponieważ będzie to połączenie stałe, prawdopodobnie zechcesz dodać kilka poleceń do pliku rc.inet1. Podswumowując, wszystko co potrzebujesz w przypadku zstawiania połączenia przez linię stałą, jest poprawne ustawienie prędkości portów szeregowych i przełączenie ich w tryb SLIP. _s_l_a_t_t_a_c_h pozwala wykonać to wszystko wydając jedno polecenie. Dodaj do pliku rc.inet1 następujące polecenie: # # Zestaw połączenie SLIP ze statycznym adresem IP # # configure /dev/cua0 for 19.2kbps and cslip /sbin/slattach -p cslip -s 19200 /dev/cua0 & /sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up # # Koniec Gdzie: IIPPAA..IIPPAA..IIPPAA..IIPPAA twój adres IP IIPPRR..IIPPRR..IIPPRR..IIPPRR adres IP po drugim końcu połączenia SLIP _s_l_a_t_t_a_c_h przyporządkowuje do urządzenia portu szeregowego pierwsze wolne urządzenie slip. Rozpoczyna od _s_l_0. To znaczy pierwsze wywołanie polecenia slattach przyporządkowuje portowi szeregowemu urządzenie _s_l_0, przy następnym wywołaniu będzie to _s_l_1 itd. _s_l_a_t_t_a_c_h umożliwia skonfigurowanie wielu różnych protokołów (argument opcji -p). W twoim przypadku w zależności od tego czy będziesz chciał korzystać z komresji nagłówków czy nie będziesz korzystał albo z protokołu _c_S_L_I_P albo _S_L_I_P. Uwaga: oba końsce połączenie muszą używać tego samego protokołu. 66..2266.. SSeerrwweerr SSLLIIPP.. Jeśli posiadasz komputer, być może przyłączony do sieci, i chcesz, aby udostępniał innym przez modem serwisy internetowe, to musisz skonfigurować go jako serwer. Jeśli protokołem, który chcesz używać jest SLIP, to istnieją trzy możliwości konfiguracji twojego komputera jako serwer. Osobiście preferuje pierwszą z prezentowanych, _s_l_i_p_l_o_g_i_n. Wydaje się być najprostszą i najłatwiejszą do skonfigurowania i zrozumienia. Przedstawie opis wszystkich trzech metod, abyś mogł samemu podjąć decyzję. 66..2266..11.. SSeerrwweerr kkoorrzzyyssttaajjąąccyy zz pprrooggrraammuu _s_l_i_p_l_o_g_i_n.. _s_l_i_p_l_o_g_i_n to program zastępujący zwykla powłoke (interpreter poleceń) użytkownika, dla tych, którzy chcą korzystac z linii szeregowej w trybie SLIP. Pozwala na skonfigurowanie twojego komputera zarówno jako _s_t_a_t_y_c_z_n_e_g_o _s_e_r_w_e_r_a _S_L_I_P (użytkownicy za każdym razem otrzymują ten sam adres IP), lub _d_y_n_a_m_i_c_z_n_e_g_o _s_e_r_w_e_r_a _S_L_I_P (adres IP jest przydzielony raczej do linii szeregowej, a nie użytkownika, więc użytkownik nie ma pewności, że za każdym razem otrzyma ten sam adres IP). Uzytkownik musi wpierw przejść przez standardową procedurę wchodzenia do systemu (logowanie się) podając swój identyfikator i haslo, lecz po wejściu do systemu, zmiast zwykłego interpretera poleceń uruchamiany jest program _s_l_i_p_l_o_g_i_n, który przeszukuje swój plik konfiguracyjny (/etc/slip.hosts) w poszukiwaniu pozycji odpowiadającej identyfikatorowi użytkownika. Po jej znalezieniu, przestawia linię w tryb 8mio bitowy, a następnie korzystając z odpowiednich funkcji _i_o_c_t_l przełącza linię w tryb SLIP. Po zakończeniu tego etapu nastęuje ostatnia faza, _s_l_i_p_l_o_g_i_n uruchamia skrypt, którego zadaniem jest skonfigurowanie interfejsu SLIP (ustawienie adresu IP, netamski) dodanie odpowiedniej trasy do tabeli trasowania (routingu) jądra. Skrypt ten nosi zwykle nazwę /etc/slip.login lecz podobnie jak w przypadku _g_e_t_t_y, jeśli niektórzy użytkownicy wymagają specjalnego traktowania możesz utworzyć skrypt /etc/slip.login.identyfikator_uzytkownika, który w takim przypadku zostanie uruchomiony w miejsce standardowego skryptu. Aby _s_l_i_p_l_o_g_i_n działał poprawnie należy zmodyfikować trzy lub cztery pliki. Omówię szczegółowo skąd i jak zdobyć odpowiednie oprogramowanie i jak je oprawnie skonfigurować. Wspomniane pliki to: ˇ /etc/passwd, definiujacy użytkownikłów twojego systemu, ˇ /etc/slip.hosts, zawierający informacje o każdym użytkowniku korzystającym ze SLIPa, ˇ /etc/slip.login, odpowiedzialny z odpowiednią konfigurację systemu, po zalogowniu się użytkownika, ˇ /etc/slip.tty wymagany tylko wtedy, gdy konfigurujesz _d_y_n_a_m_i_c_z_n_y _s_e_r_w_e_r _S_L_I_P, a który zawiera tabelę przydzielanch adresó IP, ˇ /etc/slip.logout zawierający polecenia jakie należy wykonać po zakończeniu pracy przez użytkownika, lub po zerwaniu połączenia. 66..2266..11..11.. SSkkąądd wwzziiąąćć _s_l_i_p_l_o_g_i_n Byc może pakiet _s_l_i_p_l_o_g_i_n jest już zainstalowany na twoim komputerze, jako część dystrybucji, jeśli nie _s_l_i_p_l_o_g_i_n jest dostępny pod adresem sunsite.unc.edu . Plik tar zawiera pliki źródłowe, skompilowane pliki binarne i dokumentację.. Aby zapewnić, że _s_l_i_p_l_o_g_i_n może być uruchamiany prze upoważnionych do tego użytkowników, powinieneś do pliku /etc/group dodać pozycję podobną do poniższej: .. slip::13:radio,fred .. Podczas instalacji pakietu _s_l_i_p_l_o_g_i_n, Makefile zmieni grupę do której należy program _s_l_i_p_l_o_g_i_n na slip. W ten sposób, prócz właściciela będą go mogli uruchamiać tylko użytkownicy należący do grupy SLIP. W powyższym przyładzie mogą to robić tylko użytkownicy radio i fred. Aby zainstalować pliki binarne do kaalogu /sbin/, a strony podręcznika do /man/ należy wykonoać następujące polecenia: # cd /usr/src # gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf - # cd sliplogin-2.1.1 # <..Jeśli nie korzystasz z shadow pasword popraw Makefile..> # make install Jeśli przed instalacją chcesz samemu skompilowac pliki binarne przed make install wykonaj polecenie make clean. Jeśli chcesz zainstalować pliki binarne w innym miejscu, musisz wcześniej zmienić plik Makefile. Więcej informacji znajdziesz w plikach README wewnątrz pakietu. 66..2266..11..22.. KKoonnffiigguurraaccjjaa pplliikkuu //eettcc//ppaasssswwdd. Zwykle dla osób korzystających ze SLIPa tworzy się oddzielne konta. Powszechnie przyjęta konwencja mówi, że jako pseudonim użytkownika należy przyjąc nazwę łączącego się z nami komputera, poprzedzoną wielką literą 'S'. Jeśli łączący się z nami komputer nosi nazwę rado, mogłbyś utworzyć dla niego pozycję w pliku /etc/passwd wyglądajacą mniej więcej tak: Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin Tak na prawdę nie ma znaczenia jaki jest identyfikator konta. Uwaga: użytkownik SLIPa nie potrzebuje własnego katalogu macierzystego, ponieważ nie będzie korzystał z powłoki interpretera poleceń na naszym komputerze. Dlatego dobrym wyborem w takim rzypadku jest katalog /tmp. Pamiętaj, że zamiast zwykłej powłoki uruchamiany jest program _s_l_i_p_l_o_g_i_n. 66..2266..11..33.. KKoonnffiigguurraaccjjaa pplliikkuu //eettcc//sslliipp..hhoossttss Plik /etc/slip.hosts jest przeszukiwany przez _s_l_i_p_l_o_g_i_n w poszukiwaniu szczegółów konfiguracyjnych dla użytkownika, przez którego zostal uruchomiony. W tym właśnie pliku podaje się adres IP i netmaskę któe będą przydzielone temu użytkownikowi i wykorzystywane do konfiguracji. Przykladowe dwie pozycje, jdną dla statycznej konfiguracji dla komputera radio i druga, dynamiczna konfiguracja dla komputera albert mogły by wyglądać następująco: # Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1 Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60 # Poszczególne pola w wierszu pliku /etc/slip.hosts oznaczają: 1. pseudonim użytkownika; 2. adres IP serwera, tzn adres IP tego komputera; 3. adres IP przydzielony komputerowi po drugiej stronie połączenia. Jeśli w tym polu występuje słowo DUNAMIC wtedy adres IP, zostanie przydzielony na podstawie informacji zawartych w pliku /etc/slip.tty. UUwwaaggaa:: to udogodnienie pojawiło się dopiero w wersji 1.3 programu sliplogin. 4. netmaska przydzielona łączącemu się komputerowi, w notacji dziesietnej z kropkami np. 255.255.255.0 netmaska klasy C; 5. tryb pracy SLIP pozwalający na włączenie/wyłączenie kompresji lub innych udogodnień; 6. parametr czasowy określajacy jak długo linia może pozostać w stanie oczekiwania na przesłanie informacji (brak orzymanych datagramó), zanim nastąpi automatyczne rozłaczenie. Wielkość ujemna wyłączą to udogodnienie. 7. parametry opcjonalne. Uwaga: W polach 2 i 3 można podawać zarówna nazwy komputerów, jak i adresy IP. Jeśli podasz nazwę komputera, sprawdź, czy system potrafi znaleźć jego adres IP, w pezeciwnym razie wykonanie skryptu zakończy się niepowodzeniem. Możesz to sprawdzić próbując połączyć się z nim za pomiocą programu telnet. Jeśli zobaczysz komunikat `_T_r_y_i_n_g _n_n_n_._n_n_n_._n_n_n_._._.' to znaczy, że twój komputer potrafi znaleźć adres IP komputera o podanej przez ciebie nazwie. Jeśli zobaczysz komunikat _U_n_k_n_o_w_n _h_o_s_t', to znaczy, że jednak nie potrafi. Jeśli nie potrafi musisz podawać adrs IP tego komputera lub sprwadź konfigurację DNS swojego komputera. Najczęściej wykorzysytwane tryby pracy SLIP to: nnoorrmmaall zwykły, nieskompresowny SLIP. ccoommpprreesssseedd skompresja nagłówków van Jacobsena (cSLIP) Oczywiśccie są to dwie wzajemnie wykluczające się opcje. Więcej inforamcji na temat dostępnych opcji znajdziesz na stronie podręcznika poświeconej progrmaowi sliplogin. 66..2266..11..44.. KKoonnffiigguurraaccjjaa pplliikkuu //eettcc//sslliipp..llooggiinn. Po przeszukaniu prze _s_l_i_p_l_o_g_i_n pliku /etc/slip.hosts i znalezieniu opowiednije pozycji, zostanie uruchomiony skrypt /etc/sli.login, który w rzeczywistości wykonuje cała pracę związaną z konfiguracja inerfejsów sieciowych, korzystając z przekazanych mu informacji o adresie IP i netmasce sieci. Przykładowy plik /etc/slip.login dostarczany w pakiecie _s_l_i_p_l_o_g_i_n wyglada następujaco: #!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a SLIP line. sliplogin invokes this with # the parameters: # $1 $2 $3 $4, $5, $6 ... # SLIPunit ttyspeed pid the arguments from the slip.host entry # /sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up /sbin/route add $6 arp -s $6 pub exit 0 # Jak widać, powższy skrypt po prostu korzysta z programu _i_f_c_o_n_f_i_g i _r_o_u_t_e. Konfiguruje urządzenie SLIP zgodnie z podanymi mu adresem IP i netaską, następnie modyfikuje tabele tradsowania w jądrze. Wykonuje te same polecenia, które należy wykonać ręcznie korzystając ze _s_l_a_t_t_a_c_h. Zwróc uwagę na użycie _P_r_o_x_y _A_R_P w celu zapewnienia dostępu do komputera pod drugiej stronie połączenia pozostałym komputerom znajdującym się na tym samym segmencie ethernetu co serwer SLIP. pole musi zawierać adres Zróć uwagę na użycie _P_r_o_x_y _A_R_P w celu zapewnienia komunikacji między komputerami znajdującymi się na tym samym segmencie sieci co nasz serwer, a komputerem łączącym się przez linię szeregową. Pole powinno zawierać adres sprzętowy karty ethernetowej serwera. Jeśli serwer nie jest przyłączony do sieci ethernetowej możesz pominąć ten wiersz całkowicie. 66..2266..11..55.. KKoonnffiigguurraaccjjaa pplliikkuu //eettcc//sslliipp..llooggoouutt. Kiedy następuje przerwanie połączenie chcesz być pewny, że port szeregowy jest przywracany do swego normalnego stanu i jest gotowy do obsługi kolejnego połączenia. Do tego celu służy skrypt /etc/slip.logout. Jest bardzo prosty i jest wywoływany z tymi samymi argumentami co /etc/slip.login. #!/bin/sh - # # slip.logout # /sbin/ifconfig $1 down arp -d $6 exit 0 # Wykonywane przez niego czynności to: wyłączenie interfejsu slip, spowoduje automatyczne usunięcie z tabeli trasowania wprowadzonej tam podczas zestawiania połączenie pozycji; usunięcie z tabeli arp wprowadzonej tam ręcznie pozycji. Nie potrzebujesz tego polecenia, jeśli twój serwer nie jest przyłączony do sieci ethernetowej. 66..2266..11..66.. KKoonnffiigguurraaccjjaa pplliikkuu //eettcc//sslliipp..ttttyy. Jeśli korzystasz z dynamicznego przydziału adresów IP (choć jeden komputer w pliku /etc/slip.hosts jest skonfigurowany z opcją DYNAMIC) to musisz również skonfigurować plik /etc/slip.tty informując system jakie adresy IP są przydzielone do każdego z wykorzystywanych portów szeregowych. Plik ten jest potrzebny tylko wtedy, gdy twój serwer będzie przydzielał adresy IP użytkownikom w sposób dynamiczny. Plik zawiera tabelę, które każdemu wykorzystywanemu urządzeniu _t_t_y przyporządkowuje adres IP jaki ma zostać przydzielony komputerowi łączącemu się przez to urządzenie _t_t_y. Format niniejszego pliku jest następujący: # slip.tty tty -> adres IP # format: /dev/tty?? xxx.xxx.xxx.xxx # /dev/ttyS0 192.168.0.100 /dev/ttyS1 192.168.0.101 # Pozycje w powyższym przykładzie oznaczają, że wszyscy, którzy połączą się prze port /dev/ttuS0 i jako swoj adres mają w pliku /etc/slip.hosts slowo DYNAMIC otrzymają adres 192.168.0.100. W ten sposób potrzebujesz jedynie jednego adresu IP na każdy wykorzystywany port dla wszystkich użytkowników, którzy nie potrzebują dedykowanego, stałego adresu IP. Dzieki temu liczba adresów potrzebna do obsługi wielu użytkowników jest bardzo mała. 66..2266..22.. SSeerrwweerr SSLLIIPP kkoorrzzyyssttaajjąąccyy zz pprrooggrraammuu _d_i_p.. Część z prezentowanej poniżej informacji pochodzi ze stron podręcznika dotyczących programu _d_i_p. Jest tam pokrótce opisane jak wykorzystać _d_i_p jako serwer SLIP. Proszę również zwrócić uwagę, że podane informacje dotyczą wersji _d_i_p_3_3_7_o_-_u_r_i_._t_g_z i prawdopodobnie nie mają zastosowania do innych wersji programu. _d_i_p posiada tryb pracy, w którym automatycznie wyszukuje pozycję dotyczącą użytkownika, który go wywołał i konfiguruje linię szeregową jako połączenie SLIP według parametrów jakie znalazł w pliku /etc/diphosts. Ten tryb pracy jest włączany wtedy, gdy _d_i_p zostanie uruchominy jako program o nazwie _d_i_p_l_o_g_i_n. To jest właśnie sposób wykrzystania _d_i_pa do stworzenia serwera SLIP. Należy utworzyć specjalne konta, z programem _d_i_p_l_o_g_i_n jako powłoką użytkownika. Pierwsze co musisz zrobić to następujące dowiązanie symboliczne: # ln -sf /usr/sbin/dip /usr/sbin/diplogin Następnie należy dodać odpowiednie pozycje do pliku /etc/passwd i /etc/diphosts. Aby skonfigurować Linuxa jako serwer SLIP wykorzystując do tego program _d_i_p wymaga utworzenia specjalnych kont do obsługi SLIPa z powłoką użytkownika w postaci programu _d_i_p jako _d_i_p_l_o_g_i_n. Sugerowana konwencja nadawania nazw tym kontom zaleca aby pseudonim użytkownika rozpoczynał się wielką literą 'S', no. `Sfredm'. Przykładowa pozycja pliku /etc/passwd konta SLIP może wyglądać następująco: Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin ^^ ^^ ^^ ^^ ^^ ^^ ^^ | | | | | | \__ diplogin jako powłoka użytkownika | | | | | \_______ katalog domowy | | | | \____________ pełna nazwa użytkownika | | | \_________________ numer grupy (GID) | | \_____________________ numer użytkownika (UID) | \_______________________________ zakodowane haslo \__________________________________________ pseudonim użytkownika Po zalogowaniu się użytkownika (jeśli zostanie porawnie zweryfikowany) program login uruchomi polecenie _d_i_p_l_o_g_i_n. _d_i_p wywołany jako _d_i_p_l_o_g_i_n zakłada, że został uruchomiony jako powłoka użytkownika. Piersze co robi, to korzysta z funkcji _g_e_t_u_i_d_(_) pobierając identyfikator wywołującego go użytkownika. Następnie przeszukuje /etc/diphosts w poszukiwaniu pierwszej pozycji, która pasuje do zdobytego identyfikatora lub wykorzystywanego urządzenia _t_t_y, a następnie odpowiednio się konfiguruje. Decydując czy użytkownik powinien mieć własną pozycję w pliku /etc/diphosts, czy powinien korzystać z konfiguracji domyśłnej, możesz budować serwer, który korzysta zarówno z dynamicznego i statycznego przydziału adresów IP. _d_i_p automatycznie doda pozycję _P_r_o_x_y_-_A_R_P jeśli zostanie wywołany jako _d_i_p_l_o_g_i_n. Nie musisz się martwić ręcznym dodawaniem tych pozycji. 66..2266..22..11.. KKoonnffiigguurraaccjjaa pplliikkuu //eettcc//ddiipphhoossttss /etc/diphosts jest wykorzystywany przez _d_i_p do wyszukiwania konfiguracji dla łączących się komputerów. Mogą to być pozycje dotyczące zarówno komputerów łączących się z twoim Linuxem, lecz równie dobrze mogą to być pozycje dotyczące komputerów, z którymi łączy się twój Linux. Ogólny format pliku /etc/diphosts wygląda nastęopująco: .. Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006 ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296 .. Poszczególne pola oznaczają: 1. pseudonim użytkownika: identyfikator zwaracany przez getpwuid(getuid()) lub nazwa terminala 2. niewykorzystane: zgodność z formatem passwd 3. adres zdaknt: nazwa (adres IP) łaczącego się z nami komputera 4. adres lokalny: nazwa (adres IP) naszego serwera 5. netmaska: nemaska w notacji dziesiętnej 6. komentarz: możesz tu wstawić co chcesz 7. protokół: Slip, CSlip itp. 8. MTU: liczba Przykłady pozycji pliku /etc/net/diphosts dla komputerów łączących się z nami: Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296 definującej połączenie SLIP między naszym serwerem, a komputerem, który otrzyma adres 145.71.34.1, parametr MTU połączenia będzie wynosił 296, lub Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006 definiującej połączenie cSLIP z komputerem, który otrzyma adres 145.71.34.1. parametr MRU połączenia wynosił 1008. Therefore, all users who you wish to be allowed a statically allocated dial-up IP access should have an entry in the /etc/diphosts and if you want users who call a particular port to have their details dynamically allocated you must have an entry for the tty device and do not configure a user based entry. You should remember to configure at least one entry for each tty device that your dialup users use to ensure that a suitable configuration is available for them regardless of which modem they call in on. When a user logs in, they will receive a normal login and password prompt, at which they should enter their SLIP-login userid and password. If they check out ok, then the user will see no special messages, they should just change into SLIP mode at their end and then they should be able to connect ok and be configured with the parameters from the diphosts file. 66..2266..33.. SSeerrwweerr SSLLIIPP kkoorrzzyyssttaajjąąccyy zz ppaakkiieettuu _d_S_L_I_P.. Matt Dillon stworzył pakiet, który służy nie tylko do inicjowania połączenia z serwerem, ale równie dobrze może obsługiwać połączenia przychodzące. Jest to kombinacja małych programów i skryptów zarządzających dla ciebie połączeniem. Musisz mieć zainstalowaną powłokę _t_c_s_h ponieważ przynajmniej jeden ze skryptów jej wymaga. Matt dostarcza binarną kopię programu _e_x_p_e_c_t, ponieważ wykorzystuje go inny ze skryptów. Prawdopodobnie zmuszenie pakietu do pracy będzie od ciebie wymagało trochę doświadczenia w obchodzeniu się z programem _e_x_p_e_c_t, lecz niech cię to nie odstręcza. Matt napisał dobry zestaw instrukcji instalacyjnych zgromadzonych w pliku README. Nie będę ich tutaj powtarzał. Pakiet _d_S_L_I_P możesz pobrać bezpośredni ze żródła: aappoolllloo..wweesstt..ooiicc..ccoomm /pub/linux/dillon_src/dSLIP203.tgz lub z: ssuunnssiittee..uunncc..eedduu /pub/Linux/system/Network/serial/dSLIP203.tgz Przeczytaj plik README i dodaj odpowiednie pozycje do pliku /etc/passwd i /etc/group zzaanniimm wydasz polecenie make install. 66..2277.. OObbssłłuuggaa pprroottookkoołłuu SSTTRRIIPP ((SSttaarrmmooddee RRaaddiioo IIPP)) Urządzenia STRIP noszą nazwy `st0', `st1', itd. OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Network device support ---> [*] Network device support .... [*] Radio network interfaces < > STRIP (Metricom starmode radio IP) STRIP to protokół zaprojektowany specjalnie dla radiowych modemów Metricom na uniwersystecie w Stanford w ramach projektu badawczego noszącego nazwę MosquitoNet Project . Zajdziesz tam mnóstwo ciekawych informacji, nawet jeślo nie jesteś bezpośrednio zainteresowany projektem. Modemy Metrikom przyłącza się przez port szeregowy komputera, posiadają szerokie spektrum technologiczne i są zdolne do pracy z prędkością zbliżoną do 100kbps. Informacje na temat samych modemów Metricom jest dostępna tutaj: Metricom Web Server . W chwili obecnej standardowe narządzia sieciowe nie obsługują drajwera STRIP. Musisz zdobyć specjalistyczne narzędzia dostępne na serwerze www projektu MosquitoNet. Szczegóły na temat niezbędnego oprgoramowania znajdziesz tutaj: MosquitoNet STRIP Page . Konfiguracja sieci pracujących z drejwerem STRIP polega na wykorzystaniu zmodyfikowanego programu _s_l_a_t_t_a_c_h, które ustawia tryb pracy linii szeregowej na STRIP, a następnie na konfiguracji powstałego urządzenia `st[0-9]' w taki sam sposón, jak gdyby była to zwykła karta ethernetowa. Z jednym wyjątkiem, z przyczyn technicznych STRIP nie obsługuje protokołu ARP, dlatego musisz ręcznie skonfigurować tabelę ARP dla wszystkich komputerów w twojej podsieci. Co nie powinno sprawić większego kłopoty=u. 66..2288.. TTookkeenn RRiinngg Urządzenia Token Ring noszą nazwy `tr0', `tr1' itd. Token Ring jest standardem sieci LAN opracowanym przez IBM, który unika kolizji wprowadzając mechanizm pozwalający na transmisję danych w jednej chili tylko jednej stacji przyłączonej do sieci. "Token" w danej chwili może należej tylko do jednej stacji i to właśnie ta stacja, która go posiada jest uprawniona do nadawania inforamcji. Po zakończonej transmisji przekazuje "Token" następnej stacji. Przechodzi kolejno pomiędzy wszystkimi aktywnymi końcówkami sieci. Stąd nazwa "Token Ring". OOppccjjee kkoonnffiigguurraaccjjii jjąąddrraa: Network device support ---> [*] Network device support .... [*] Token Ring driver support < > IBM Tropic chipset based adaptor support Konfiguracja urządzeń token ring jest identyczna, jak konfiguracja urządzeń ethernetowych, z dokładnością do nazwy urządzenia podlegającego konfiguracji. 66..2299.. XX..2255 X.25 to obwodowy protokół komutacji pakietów zdefiniwany w C.C.I.T.T. (organizacji standaryzacyjnej uznawanej przez firmy telekomunikacyjne większości krajów świata. Cały czas trwają pracę nad implementacją X25 u LAPB i najnowsze wersje jądra 2.1.* zawierają kod odzwierciedlający aktualny stan prac. Jonathon Naylor jsn@cs.nott.ac.uk przewodzi grupie rozwijającej to oprogramowanie i opiekuje się listą utworzoną do dyskusji na tematy dotyczące X25 i Linuxa. Aby się na nią zapisać należy na adres majordomo@vger.rutgers.edu napisać list o treści "subscribe linux- x25". Wczesne wersje narzędzi konfiguracyjnych można uzyskac z archiwum ftp ftp.cs.nott.ac.uk . 66..3300.. WWaavveeLLaann CCaarrdd Urządzenia Wavelan noszą nazwy `eth0', `eth1', itd. OOppccjjee kkoommppiillaaccjjii jjąąddrraa: Network device support ---> [*] Network device support .... [*] Radio network interfaces .... <*> WaveLAN support Karty WaveLan to szerokopasmowe sieciowe karty bezprzewodowe. Są bardzo podobne do kart ethernetowych i praktycznie w większości są konfigurowane w taki sam sposb. Więcej informacji na temat kart WaveLan znajdziesz na stronie Wavelan.com . 77.. KKaabbllee ii ookkaabblloowwaanniiee Ci z was, którzy posiadają odpowiednie narzędzia mogą chcieć zrobić własne kable do połączenia ze sobą dwóch Linuxów. Poniższe schematy powinny wam w tym pomóc. 77..11.. SSzzeerreeggoowwyy kkaabbeekk bbeezzmmooddeemmoowwyy ((SSeerriiaall NNUULLLL MMooddeemm ccaabbllee)) Nie wszystkie kable bezmodemowe są takie same. Dużo kabli bezmodemowych oszukuje twój komputer, tak aby myślał, że wszystkie potrzebne sygnały są obecne i zamienia ze sobą kanały nadawania i idbioru danych. Taki kabel będzie działał poprawnie, ale musisz stosować softwareowe sterowanie przepływem danych (XON/XOFF), które jest znacznie mniej wydajne od sterowania sprzętowego. Poniższy schemat przedstawia kabel umożliwiajacy transmisję ze sprzętowym sterowaniem przepływem danych (RTC/CTS). Pin Name Pin Pin Tx Data 2 ----------------------------- 3 Rx Data 3 ----------------------------- 2 RTS 4 ----------------------------- 5 CTS 5 ----------------------------- 4 Ground 7 ----------------------------- 7 DTR 20 -\--------------------------- 8 DSR 6 -/ RLSD/DCD 8 ---------------------------/- 20 \- 6 77..22.. KKAAbbeell ppoorrttuu rróówwnnoolleeggłłeeggoo ((kkaabbeell PPLLIIPP)) Jeśli zamierzasz korzystać z protokołu PLIP, to kabel wykonany wg. poniższego schematu będzie działał niezależnie od rodzaju posiadanego portu równoległego. Pin Name pin pin STROBE 1* D0->ERROR 2 ----------- 15 D1->SLCT 3 ----------- 13 D2->PAPOUT 4 ----------- 12 D3->ACK 5 ----------- 10 D4->BUSY 6 ----------- 11 D5 7* D6 8* D7 9* ACK->D3 10 ----------- 5 BUSY->D4 11 ----------- 6 PAPOUT->D2 12 ----------- 4 SLCT->D1 13 ----------- 3 FEED 14* ERROR->D0 15 ----------- 2 INIT 16* SLCTIN 17* GROUND 25 ----------- 25 Uwagi: ˇ Nie przyłączaj nigdzie igieł oznaczonych gwiazdką `*'. ˇ Dotakowe uziemienie znajduje się na igłach 18,19,20,21,22,23 i 24. ˇ Jeśłi używany przez ciebie kable posiada metalowy ekran, to powinien on być połączony do metalowej wtyczki DB-25, ale ttyyllkkoo zz jjeeddnneejj ssttrroonnyy. OOssttrrzzeeżżeenniiee:: kkaabbeell zzee źźllee wwyykkoonnaannyymmii ppoołłąącczzeenniiaammii mmoożżee ffiizzyycczznniiee zznniisszzcczzyyćć kkaarrttęę kkoonnttrroolloorraa ttwwoojjeeggoo kkoommppuutteerraa... Bądź bardzo ostrożny i dwukrotnie sprawdzaj każde połączenie, aby nie narazić się na niepotrzebny ból głowy lub atak serca. 77..33.. OOkkaabblloowwaanniiee eetthheerrnneettoowwee 1100bbaassee22 ((cciieennkkii kkoonncceennttrryykk)) 10base2 jest standardem okablowania ethernetowego wykorzystującego 52omowy kabel koncentryczny o średnicy ok 5mm. Łącząc ze sobą komputery za pomocą okablowania 10base2 należy pamiętać o kilku zasadach. Po pierwsze musisz mieć terminatory na oobbuu kkoońńccaacchh kabla. Terminator to opornik o oporniści 52 omy, zapewniający absorbję sygnału i zapobiegający jego odbiciom w momencie osiągnięcia końca kabla. Bez założonyc terminatorów, może się okazać, że siec nie jest pewna lub w ogóle nie nadaje się do pracy. Zwykle posczególne komputery podłącza się do kabla z pomocą 'trójników'. Dlatego tak zbudowana sieć wygląda mniej więcej tak: |==========T=============T=============T==========T==========| | | | | | | | | ----- ----- ----- ----- | | | | | | | | ----- ----- ----- ----- gdzie `|' oznacza terminator na kązdym zakończeniu kabla, `======' oznacza kabel koncentryczny, a `T' oznaczją trójniki. Kabel łączący trójnik z komputerem powinien być jak najkrótszy, najlepiej, gdy trójnik jest wpięty bezpośrednio na kartę ethernetową komputera. 77..44.. SSkkrręęttkkaa ((TTwwiisstteedd PPaaiirr EEtthheerrnneett CCaabbllee)) Jeśli chcesz połączyć ze sobą tylko dwie karty ethernetowe przez skrętkę, to nie potrzebujesz żadnego koncentratora (hub'a). Schemat wykonania potrzebnego kabla znajdziesz w Ethernet-HOWTO 88.. SSppiiss ssttoossoowwaannyycchh tteerrmmiinnóóww Poniższa lista zawiera najważniejsze z terminów wykorzystywanych w tym dokumencie. AARRPP Skrót pochodzący od nazwy _A_d_d_r_e_s_s _R_e_s_o_l_u_t_i_o_n _P_r_o_t_o_c_o_l, określa sposób przyporządkowywania adresów IP adresom sprzętowym kart ethernetowych. AATTMM Skrót pochodzący od nazwy _A_s_y_n_c_h_r_o_n_o_u_s _T_r_a_n_s_f_e_r _M_o_d_e. Sieci ATM przesyłąją dane w pakietach o ustalonej długości. ATM jest technologią sieci pakietowych z komutacją kanałów. kklliieenntt Jest to zwykle oprogramwoanie znajdujące się po tej samej stronie połączenia co użytkownik. Są oczywiśćie wyjątki od tej reguły, np. w przypadku X11 to właśnie serwe jest po stronie użytkownika, a klient jest to aplikacja wykonująca się na zdalnej maszynie. Klient ot oprogramowanie lub końsówka systemu korzystająca z usług oferowanych przez serwer. W przypadku połaczeń _p_e_e_r _t_o _p_e_e_r (każdy z każdym) jakimi są _s_l_i_p lub _p_p_p za klienta przyjmuje się ten koniec połączenia, który je zainicjował, a drugi koniec nosi nazwę serwera. ddaattaaggrraamm Datagram jest pakietem informacji, który prócz danych posiada również nagłówki zawierające adresy nadawcy i adresata. Jest podstawową jednostlą przesyłania informacji w sieci IP. Często jest zastępowany słowem 'pakiet'. DDLLCCII DLCI oznacza skrót Data Link Connection Identifier, jest stosowany do jednoznacznej identyfikacji virtualnego połączenie punkt-punkt przez Frame Relay. DLCI są zwykle przydzielane przez dostawcę usługi Frame Relay. FFrraammee RReellaayy Frame Relay oznacza technologię sieciową przeznaczoną przede wszystkim do przenosznia ruchu charaktyryzującego się neregularnym natężeniem lub o sporadycznej charakterysyce. Koszty sieci są redukowane przez współdzielenie nośności sieci przez wielu użytkowników, przu założeniu, że każdy z nich generuje największy ruch o innej porze. AAddrreess sspprrzzęęttoowwyy Numer który jednoznacznie identyfikuje komputer na poziomie wartstwy fizycznej sieci (na poziome warstwy nośnika). Przykładem takich adresów jest _a_d_r_e_s _k_a_r_t_y _e_t_h_e_r_n_e_t_o_w_e_j lub _a_d_r_e_s _A_X_._2_5. IISSDDNN ISDN oznacza skrót _I_n_t_e_g_r_a_t_e_d _S_e_r_v_i_c_e_s _D_e_d_i_c_a_t_e_d _N_e_t_w_o_r_k. ISDN umożliwia ujednolicony sposób dostarczania użytkownikom informacji głosowej lub cyfrowej. Technicznie ISDN jest siecią danych z komutacją kanałów. IISSPP Jest to skrót Internet Service Provider (dostawca internetu). Są to organizacje lub firmy, które umożliwiają ludziom dostęp do Internetu, aaddrreess IIPP Jest to numer jednoznacznie identyfikujący komputer w sieci TCP/IP. Adres składa się z 4rech bajtów i zwykle jest przedstawiany w tzw notacji dziesiętnej, czyli takiej, w której każdu bajt jest reprezentowany przez liczbę w systemie dziesiętnym, przy czym poszczególne bajty są rozdzielone znakiem '.'. MMSSSS Maximum Segment Size (_M_S_S) oznacza maksymalny rozmiar porji danych, która może zostać przesłana za jednym razem. Aby zapobiec lokalnej fragmentacji pakietów MSS powinno się równać MTU-nałówki IP. MMTTUU Maximum Transmission Unit (_M_T_U) to parametr, który określa maksymalny rozmiar datagramu, jaki może zostać przesłany przez inerfejs, bez konieczności podziału go na mnijesze kawałki. MTU powinno byćwięsze niż największy datagram jaki ma byc przesyłany w jednym kawałku. Pamietaj, że ten parametr steruje jedyni lokalną fragmentacja pakietów. Może się zdarzyć, że któreś z połączeń leżących na trasie do celu będzie miało mnijejsze MTU, a wtedy pakiet zostanie podzielony na kwawłki w tym wąskim garde. Standartowymi wielkościami są 1500 dla kart ethernetowych,576 dla interfejsu SLIP. ttrraassaa _t_r_a_s_a osnacza ścieżkę jaką przebywają datagramy wędrujac od nadawcy do odbiorcy. sseerrwweerr Oprogramowanie lub system po przeciwnej stronie połączenia w stosunku do pozycji użytkownika. Serwer udostępnia pewne usługi jednemu lub więcej klientom. Mogą to być usługi typu _f_t_p, _n_f_s lub _d_n_s. W przypaku połączeń tyu _p_e_e_r_-_t_o_-_p_e_e_r (każdy z każdym) za serwer przyjmuje się ten koniec połączenia, który odpowiada na wezwanie, koniec rozpoczynający sesje nosi nazwę klienta. wwiinnddooww _O_k_i_e_n_k_o to największa liczba bajtów jaką w danej chwili odbiorca jest w stanie przyjąc. 99.. LLiinnuuxx uu ddoossttaawwccóóww IInntteerrnneettuu ?? Jeśli jesteś zainteresowany wykorzystaniem Linuxa jako dostawca Internetu polecam stronę Linux ISP homepage . Zawiera listę odnośników do informacji, które mogą cię zainteresować. 1100.. PPooddzziięękkoowwaanniiaa Chciałbym podziekować następującym ludziom, za ich wkład w powstanie tego dokumentu (kolejnosc nie mażadnego znaczenia): Axel Boldt, Arnt Gulbrandsen, Gary Allpike, Cees de Groot, Alan Cox, Jonathon Naylor. 1111.. CCooppyyrriigghhtt.. NET-3-HOWTO, informacja na temat instalacji i konfiguracji oprogramowania sieciowego pod Linuxem. Copyright (c) 1997 Terry Dawson. To jest darmowe oprogramowanie, możesz je rozpowszechniać i modyfikować na zasadach zgodnych z licencją GNU General Public License wydaną przez Freee Software Foundation w wersji 2 (lub jak wolisz) późniejszej. Ten program jest rozpowszechniany w nadziei, że bedzie użyteczny, lecz BEZ ŻADNYCH GWARANCJI; nawet bez gwarancji zdatności HANDLOWEJ lub UŻYTECZNOŚCI W KONKRETNYM ZASTOSOWANIU. Wiecej szczegółów w tekście GNU General Public License. Wraz z tym programem powinieneś otrzymać kopie Licencji GNU General Public License, jeśli nie napisz do: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 1122.. OOdd ttłłuummaacczzaa To tłumaczenie zawiera mnóstwo różnego rodzaju błędów. Postanowiełem je udostępnić w takim stanie, ponieważ nie mam czasu na dokładne sprawdzenie tego dokumentu (a jest tego troche), a szkoda mi trzymać to na dysku, czekając na Wolną Chwile (TM), która być może nigdy nie nadejdzie. Dlatego bedę wdzięczny za każdą, nawet najdrobniejszą uwagę. Najnowszą wersję tego tłumaczenia znajdziesz tutaj: http://www.ippt.gov.pl/pub/Linux/JTZ/html/NET-3-HOWTO.pl.html . piotr.pogorzelski@ippt.gov.pl