Przyk³ad ustawienia demona "diald" Autor: Harish Pillay, h.pillay@ieee.org WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll v1.0, 30 Sierpnia 1997 Dokument ten ma s³u¿yæ jako przyk³ad ustawienia, którym pos³ugiwa³em siê na wielu maszynach i które umo¿liwia automatyczn± instalacjê diald podczas startu systemu. Kiedy pojawia siê ¿±danie po³±czenia, automatycznie wybierany jest numer mojego ulubionego dostawcy Inter net-u tutaj w Singapurze - _P_a_c_i_f_i_c _I_n_t_e_r_n_e_t. Wielkie dziêki dla EErriiccaa SScchheennkkaa za ten super program - diald. Dokument ten zosta³ napisany w standardzie ISO-8859-2. Jego oryginalna wersja znajduje siê pod adresem ftp.icm.edu.pl <ftp://ftp.icm.edu.pl:/pub/Linux/sun site/docs/HOWTO/mini/>. 11.. OOppiiss ddzziiaa³³aanniiaa ddiiaalldd.. 11..11.. //eettcc//rrcc..dd//rrcc..llooccaall #! /bin/sh # Put any local setup commands in here # Running gpm echo "Running gpm..." gpm -t ms & # starting innd /etc/rc.d/rc.news # starting CERN httpd echo "Starting CERN httpd with proxy and caching." /usr/local/bin/httpd # loading modules that are needed /etc/rc.d/rc.modules # starting diald echo "Starting diald daemon to Pacific Internet ..." cd /usr/lib/ppp /usr/lib/ppp/diald.pacific.internet 11..22.. //uussrr//lliibb//pppppp//ddiiaalldd..ppaacciiffiicc..iinntteerrnneett /usr/sbin/diald /dev/ttyS1 /dev/ttyS1 lock debug 20 -m ppp local 127.0.0.2 \ remote 127.0.0.3 defaultroute modem crtscts \ connect "chat -v -f /usr/lib/ppp/pppchat.pi" \ dynamic -- debug noipdefault 11..33.. //uussrr//lliibb//pppppp//ppppppcchhaatt..ppii ABORT "NO CARRIER" ABORT BUSY "" ATZ OK ATm1s50=255s111=0DT1-800-555-1212 CONNECT "" login MÓJLOGIN ssword MOJEHAS£O 11..44.. PPrroossttyy sskkrryypptt ddoo PPPPPP.. · Odpal minicom-a. · Po³±cz siê ze swoim dostawc± Internet-u. · Zainicjuj PPP na drugim koñcu. · Zawie¶ minicom-a (ALT-A-J). · Wykonaj nastêpuj±cy skrypt. #!/bin/sh # Ustaw PPP na ¶lepo - skrypt o nazwie blind.ppp DEVICE=ttyS1 ( stty 38400 -tostop pppd -detach debug noipdefault defaultroute mru 1500 /dev/$DEVICE & exit 0 ) /dev/$DEVICE 11..55.. MMóójj pplliikk //eettcc//ddiiaalldd..ccoonnff ((nniiee zzmmiieenniioonnyy oodd iinnssttaallaaccjjii ddyyssttrryy bbuuccjjii)) # Jest to do¶æ skomplikowana kombinacja regu³ filtruj±cych. # (S± to regu³y, których u¿ywam osobi¶cie) # # Podzieli³em te regu³y na 4 sekcje: # pakiety TCP, pakiety UDP, pakiety ICMP i na koñcu regu³y dla reszty. #------------------------------------------------------------------------------ # Regu³y dla pakietów TCP #------------------------------------------------------------------------------ # Ogólny komentarz dotycz±cy zestawu regu³: # # Ogólnie, jako znacz±ce do timeout-ów, chcieliby¶my traktowaæ tylko # pakiety zawieraj±ce dane na ³±czu TCP. Dlatego spróbujemy ignorowaæ # pakiety bez danych. Poniewa¿ najkrótszy mo¿liwy nag³ówek pakietu # TCP to 40 bajtów, wiêc ka¿dy pakiet o d³ugo¶ci 40 bajtów nie mo¿e # zawieraæ danych. W ten sposób mo¿emy przeoczyæ puste pakiety (w # nag³ówku IP mog± znajdowaæ siê opcjonalne informacje na temat # routing-u i inne dodatkowe informacje), ale powinni¶my dostaæ # wiêkszo¶æ z nich. Zauwa¿, ¿e nie chcemy odfiltrowywaæ pakietów z # wyzerowanym polem "tcp.live", poniewa¿ u¿yjemy ich pó¼niej, aby # przyspieszyæ roz³±czenia na niektórych po³±czeniach TCP. # # Chcemy tak¿e byæ pewni, ¿e pakiety WWW s± aktywne, nawet je¶li gniazdo TCP # jest zamkniête. Robimy to poniewa¿ WWW nie utrzymuje otwartych # po³±czeñ jak ju¿ dane zostan± przetransportowane, i by³oby # denerwuj±ce ci±g³e inicjowanie i zamykanie po³±czenia jak tylko # dostaniesz jaki¶ dokument. # # Poza WWW TCP jest najczê¶ciej u¿ywane do d³ugo¿ywotnych po³±czeñ, # które jak ju¿ zgin±, to znaczy, ¿e ich nie potrzebujemy. Nie # koniecznie chcemy czekaæ 10 minut a¿ po³±czenie zostanie zamkniête # je¶li nie mamy uruchomionych ¿adnych telnet-ów czy rlogin-ów, tak # wiêc chcemy przyspieszyæ timeout na po³±czeniu TCP, które zosta³y # zamkniête. Zrobimy to poprzez przechwytywanie pakietów, które nie # maj± ustawionej flagi "live". # # --- w³a¶ciwy pocz±tek zestawu regu³ --- # Na inicjacjê po³±czenia dajemy tylko 15 sekund. Ca³y pomys³ polega tu # na tym, ¿e trzeba siê liczyæ z mo¿liwo¶ci±, i¿ sieæ na drugim koñcu # nie bêdzie dzia³aæ. W tym przypadku nie chcesz przecie¿ dawaæ 10 # minut na po³±czenie. Poni¿sz± regu³± dajemy w³a¶nie po³±czeniu owe # 15 sekund czasu. Je¶li sieæ z drugiej strony dzia³a, to w ci±gu 15 # sekund otrzymamy odpowied¼, która bêdzie zawiera³a jakie¶ # dane. Je¶li w twoim przypadku sprawia to problemy, bo np.: masz # wolne po³±czenie czy d³ugi czas odpowiedzi, to mo¿esz zwiêkszyæ # timeout lub po prostu usun±æ tê regu³ê. accept tcp 15 tcp.syn # Nie podtrzymuj po³±czenia je¶li przychodz± pakiety do named-a ignore tcp tcp.dest=tcp.domain ignore tcp tcp.source=tcp.domain # (Oj! SCO telnet zaczyna od wysy³ania pustych sygna³ów "SYN" i # otwiera po³±czenie tylko w przypadku je¶li otrzyma odpowied¼. Jeny...) accept tcp 5 ip.tot_len=40,tcp.syn # Nie podtrzymuj po³±czenia je¶li pakiety s± puste (oprócz pustych SYN-ów) ignore tcp ip.tot_len=40,tcp.live # Upewnij siê, ¿e transfer http podtrzymuje po³±czenie przez 2 minuty, # nawet po zakoñczeniu. # UWAGA: W pliku /etc/services mo¿e nie byæ definicji # serwisu tcp dla www, w którym to przypadku powiniene¶ zakomentowaæ # dwie poni¿sze linie, albo zdobyæ nowszy plik /etc/services. W # sprawie nowego /etc/services zobacz FAQ. accept tcp 120 tcp.dest=tcp.www accept tcp 120 tcp.source=tcp.www # Je¶li po³±czenie nie jest ju¿ aktywne, spróbujemy szybko je # zamkn±æ. Zauwa¿, ¿e je¶li po³±czenie jest ju¿ "zdown-owane", to # zmiana stanu nie spowoduje jego przywrócenia. keepup tcp 5 !tcp.live ignore tcp !tcp.live # po danych ftp albo po³±czeniu ftp mo¿na siê spodziewaæ do¶æ czêstego # ruchu accept tcp 120 tcp.dest=tcp.ftp accept tcp 120 tcp.source=tcp.ftp # UWAGA: ftp-data nie jest zdefiniowane w pliku /etc/services # dostarczanego z najnowsz± wersj± NETKIT, wiêc to zakomentowa³em. # Je¶li chcesz to zdefiniowaæ, to dodaj poni¿sz± liniê do # /etc/services # ftp-data 20/tcp # i odkomentuj dwie nastêpne linie #accept tcp 120 tcp.dest=tcp.ftp-data #accept tcp 120 tcp.source=tcp.ftp-data # Je¶li nie wy³apiemy tego wcze¶niej, to daj po³±czeniu 10 minut. accept tcp 600 any # Regu³y dla pakietów UDP # # ¯±dania dla domeny bêdziemy odrzucaæ od razu poniewa¿ chcemy, ¿eby # one tylko podnios³y po³±czenie, a nie trzymaæ je przez d³ugi czas. # Robimy tak poniewa¿, sieæ by³aby inicjowana przy ka¿dym odwo³aniu do # biblioteki resolvera (o ile nie trzymasz wszystkich swoich czêsto u¿ywanych # adresów w /etc/hosts, w którym to przypadku odkryjesz jeszcze inne # problemy.) # Zauwa¿, ¿e nie powiniene¶ ustawiaæ mniejszego timeout-u ni¿ # spodziewany czas odpowiedzi twojego serwera DNS. W innym przypadku # kiedy inicjacyjne po³±czenie jest ju¿ ustawione mo¿e siê pojawiæ # wiêksze opó¼nienie ni¿ to pomiêdzy inicjacyjn± seri± pakietów zanim # jakikolwiek pakiet, który podtrzymuje po³±czenie przejdzie przez po³±czenie. # Nie ustawiaj po³±czenia dla rwho ignore udp udp.dest=udp.who ignore udp udp.source=udp.who # Nie ustawiaj po³±czenia dla RIP ignore udp udp.dest=udp.route ignore udp udp.source=udp.route # Nie ustawiaj po³±czenia dla NTP czy timed. ignore udp udp.dest=udp.ntp ignore udp udp.source=udp.ntp ignore udp udp.dest=udp.timed ignore udp udp.source=udp.timed # Nie ustawiaj po³±czenia dla ¿±dañ domeny pomiêdzy dwoma dzia³aj±cymi named-ami ignore udp udp.dest=udp.domain,udp.source=udp.domain # Ustaw po³±czenie je¶li pojawi siê ¿±danie domeny z innego miejsca # ni¿ named accept udp 30 udp.dest=udp.domain accept udp 30 udp.source=udp.domain # To samo dla rozg³aszania netbios-ns # UWAGA: w pliku /etc/services serwis netbios-ns mo¿e nie byæ # zdefiniowany - wtedy powiniene¶ zakomentowaæ 3 poni¿sze linie ignore udp udp.source=udp.netbios-ns,udp.dest=udp.netbios-ns accept udp 30 udp.dest=udp.netbios-ns accept udp 30 udp.source=udp.netbios-ns # Nie utrzymuj po³±czenia dla transferów routed i gated ignore udp tcp.dest=udp.route ignore udp tcp.source=udp.route # Wszystko inne dostaje 2 minuty czasu accept udp 120 any # Wszystkim pakietom, których nie objê³y poprzednie zasady daj 30 # sekund ¿ycia accept any 30 any 11..66.. MMóójj pplliikk ddiiaalldd..ddeeffss ((nniiee zzmmiieenniioonnyy oodd iinnssttaallaaccjjii ddyyssttrryybbuuccjjii)) # Definicja domy¶lnych regu³ dla protoko³ów prule tcp tcp 9:12:13:14:15:16:17:18:19:+0:+1:+2:+3:9:9:9 prule udp udp 9:12:13:14:15:16:17:18:19:+0:+1:+2:+3:9:9:9 prule icmp icmp 9:12:13:14:15:16:17:18:19:9:9:9:9:9:9:9 prule any any 9:12:13:14:15:16:17:18:19:9:9:9:9:9:9:9 # Definicja pól nag³ówków pakietów internet-owych var ip.ihl 0(24)&0xf var ip.version 0(28)&0xf var ip.tos 1(24)&0xff var ip.tot_len 2(16)&0xffff var ip.id 4(16)&0xffff var ip.frag_off 6(16)&0x3fff var ip.ttl 8(24)&0xff var ip.protocol 9(24)&0xff var ip.check 10(16)&0xffff var ip.saddr 12 var ip.daddr 16 # Definicja pól nag³ówków pakietów TCP var tcp.source +0(16)&0xffff var tcp.dest +2(16)&0xffff var tcp.seq +4 var tcp.ack_seq +8 var tcp.doff +12(28)&0xf var tcp.fin +13(24)&0x1 var tcp.syn +13(25)&0x1 var tcp.rst +13(26)&0x1 var tcp.psh +13(27)&0x1 var tcp.ack +13(28)&0x1 var tcp.urg +13(29)&0x1 var tcp.live +127 # Definicja nag³ówków pakietów UDP var udp.source +0(16)&0xffff var udp.dest +2(16)&0xffff var udp.len +4(16)&0xffff var udp.check +6(16)&0xffff # Definicja nag³ówków pakietów ICMP var icmp.type +0(24)&0xff var icmp.code +1(24)&0xff var icmp.checksum +2(16)&0xffff var icmp.echo.id +4(16)&0xffff var icmp.echo.sequence +6(16)&0xffff var icmp.gateway +4 11..77.. MMóójj sspprrzzêêtt ii oopprrooggrraammoowwaanniiee.. · 486/66, 20 MB RAM i du¿o miejsca na dysku :-) · du¿o chip-ów 16550 · diald 0.11, pppd 2.2.0d, j±dro 1.3.95 (zmodularyzowane) 11..88.. UUwwaaggii.. · Upewnij siê, ¿e zmieni³e¶ powy¿ej /dev/ttyS1 odpowiednio do swoich potrzeb · Upewnij siê, ¿e mo¿esz siê rzeczywi¶cie po³±czyæ przez PPP u¿ywaj±c skryptu blind.ppp Masz jakie¶ pytania? Przy¶lij <mailto:h.pillay@ieee.org> mi list. 11..99.. OOdd tt³³uummaacczzaa.. T³umaczenie to jest chronione prawami autorskimi © Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny. Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne, sk³adniowe, techniczne to pisz do mnie: B.Maruszewski@jtz.org.pl Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/ Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem ftp.jtz.org.pl w katalogu /HOWTO/. Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej stronie WWW. <http://www.jtz.org.pl/bartek/tlumaczenie.html> S± tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej. Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz siê na ni± zapisaæ, to wy¶lij list o tre¶ci subscribe jtz Imiê Nazwisko na adres majordomo@ippt.gov.pl