Portál AbcLinuxu, 17. května 2024 16:47

Řešení pro dialup

11. 3. 2002 | Ján Tomka
Články - Řešení pro dialup  

Připojujete se na Internet přes modem? Pak si přečtěte tento návod, který vám ukáže komplexní řešení připojení na síť, DNS, emailu, proxy i offline prohlížení.

1. Úvodné informácie
Tento dokument je šírený v súlade s licenciou GNU Free Documentation Licence.

Téma popisovaná v tomto dokumente vyžaduje určité znalosti operačného systému GNU/Linux, preto je viac než odporúčané preštudovať si literatúru uvedenú na začiatku tej-ktorej kapitoly.

2. Príprava linuxového kernelu
Pokiaľ vytvárate vlastné jadro, je nutné do neho zakompilovať podporu protokolu PPP. Ak ale používate jadro dodané v distribúcii, môžete túto kapitolu preskočiť. Tieto jadrá totiž podporu PPP už obsahujú.

Viď tiež: /usr/src/linux/README, The Linux Kernel HOWTO

2.1. Konfigurácia
Aby bolo možné nadviazať spojenie s iným počítačom cez modem pripojený na sériovom porte pomocou protokolu PPP, Linuxový kernel musí obsahovať nasledovné súčasti:

  1. Nainštalujte zdrojové kódy kernelu z inštalačného CD. Nachádzajú sa v adresári /usr/src/linux/. Zadajte v tomto adresári ako root príkaz

    sh# make menuconfig

    Pohybujete sa hore-dole po položkách pomocou šípok, takisto vpravo-vľavo po tlačítkach. <Select> mení nastavenie aktívnej položky, <Exit> pre návrat na predchádzajúcu ponuku, <Help> zobrazí pomocný text pre aktuálnu položku.

  2. Nastavte nasledovné voľby (ak nie sú):

    General setup
    <*> Networking support

    Networking options
    <*> Packet socket
    [*] TCP/IP networking

    Network device support
    [*] Network device support
    <*> PPP (point-to-point protocol) support
    <*> PPP support for async serial ports

    Character devices
    <*> Standard/generic (8250/16550 and compatible UARTs) serial support

  3. Opakovaným zadávaním <Exit> opustíte program. Na otázku Do you wish to save your new kernel configuration? odpovedzte <Yes>.
  4. Zmeňte v súbore /usr/src/linux/Makefile riadok

    #export INSTALL_PATH=/boot

    na

    export INSTALL_PATH=/boot/ppp

    Na začiatku súboru /usr/src/linux/Makefile nastavte aj premennú EXTRAVERSION:

    EXTRAVERSION = -ppp

2.2. Kompilácia a inštalovanie
Zadávajte postupne príkazy:
    sh# mkdir /boot/ppp
    sh# make dep
    sh# make bzImage
    sh# make modules
    sh# make modules_install
    sh# make install
  1. Do súboru /etc/lilo.conf vložte blok:

    image=/boot/ppp/vmlinuz
    label=ppp
    root=/dev/hda3 (1)
    read-only

    (1) Namiesto /dev/hda3 vložte meno zariadenia, na ktoré sa montuje oddiel /.

    Po zadaní príkazu mount dostanete výpis napríklad:

    /dev/hda1 on / type reiserfs (rw)
    none on /proc type proc (rw)
    none on /dev/pts type devpts (rw,mode=0620)

    V riadku, ktorý obsahuje reťazec on / je uvedené zariadenie /dev/hda1, teda toto uvediete aj do lilo.conf.

  2. Spustite príkaz sh# lilo
  3. Reštartujte počítač a zvoľte kernel ppp.
3. Nastavenie adries DNS serverov
Viď tiež: bind, DNS HOWTO, Linux Networking HOWTO
3.1. DNS u providera
Ešte pred tým, ako sa pripojíte na Internet, je dôležité nastaviť v niekoľkých súboroch správne hodnoty IP adries DNS serverov vášho providera.

Nasledovné súbory musia obsahovať aspoň uvedené riadky (pre ostatné voľby viď man stránky).

/etc/resolv.conf:

nameserver 195.146.128.60 (1)
nameserver 195.146.134.59

(1) Uveďte IP čísla, ktoré ste obdržali od svojho providera, DNS1 a DNS2.

/etc/host.conf:

order hosts,bind

/etc/nsswitch.conf:

hosts: files dns

3.2. Caching only DNS
Doplnkom k DNS serverom u providera môže byť caching only DNS server na lokálnom systéme. Tu sa budú ukladať všetky doteraz nájdené IP adresy. Pri ďalšej požiadavke na adresu servera, ktorú už máte uloženú, ušetríte čas na spojenie s DNS serverom u ISP, na ktorom sa táto adresa nachádza.

Niektoré distribúcie GNU/Linuxu obsahujú balík caching-only-dns, ktorý si stačí nainštalovať a už je všetko hotové. Ak taký balík nemáte, čítajte ďalej.

  1. Nainštalujte balík bind (verzia 8 a vyššia).
  2. Upravte/vytvorte súbory nasledovne:

    /etc/named.conf:

    options {
    directory "/var/named";
    auth-nxdomain no;
    query-source port 53;
    forward first;
    forwarders {
    195.146.128.60; (1)
    195.146.134.59;
    };
    };

    zone "." {
    type hint;
    file "root.hints";
    };

    zone "0.0.127.in-addr.arpa" {
    type master;
    file "zone/0.0.127";
    notify no;
    };

    (1) Opäť platí, že treba vložiť čísla DNS serverov, ktoré ste obdržali od providera.

    /var/named/zone/0.0.127:

    $TTL 1H30M
    @ IN SOA localhost.localdomain. root.localhost.localdomain. (
    2001101106 ; Serial
    8H ; Refresh
    2H ; Retry
    1W ; Expire
    1D) ; Minimum TTL
    NS localhost.localdomain.
    1 PTR localhost.

    Číslo Serial vytvoríte z aktuálneho dátumu, pridaním dvojciferného čísla. Toto musíte pri každej zmene súboru 0.0.127 zvýšiť.

  3. Do súboru /etc/resolv.conf vložte nasledovný riadok a dbajte, aby bol jediným, ktorý sa začína slovom nameserver:

    nameserver 127.0.0.1

Ak chcete používať caching-only DNS server, nezabudnite zo súboru /etc/ppp/options odstrániť voľbu usepeerdns. Inak si pppd po nadviazaní spojenia vyžiada IP adresy DNS serverov od providera a tie sa budú používať priamo.
4. Pripojenie na Internet
Viď tiež: Serial HOWTO, Modem-HOWTO, Linux PPP HOWTO, ISP-Hookup-HOWTO

Existuje niekoľko spôsobov, ako v Linuxe nadviazať PPP spojenie, ale program wvdial je inteligentným nástrojom, ktorý urobí všetko za vás. Problém je, že tento program som na inštalačnom CD Mandrake nenašiel, takže si ho musíte ešte predtým niekde stiahnuť (ak ho nemáte ani vy). Bohužiaľ...

Okrem toho potrebujete program pppd, ale ten sa nachádza prakticky v každej distribúcii.

Pravda je taká, že môj provider má ppp server nastavený tak, že klasické skripty z adresára /etc/sysconfig/network-scriptssa skončia neúspešne s chybou vykonania skriptu na nadviazanie spojenia. wvdial nejakým zázrakom dokáže spustiť pppd v tom správnom čase a to je ďalší dôvod, prečo používať toto riešenie.

  1. Pripojte a zapnite modem.
  2. Spustite príkaz

    sh# wvdialconf /etc/wvdial.conf

  3. V súbore /etc/wvdial.conf upravte riadky na nasledovný tvar:

    Phone = 01919
    Username = prihlasovacie_meno(1)
    Password = heslo

    (1) Prihlasovacie meno a heslo nájdete na papiery, ktorý ste dostali u providera, v časti prístup.

  4. Spustite príkaz

    sh# wvdial

Pri overovaní užívateľského mena a hesla sa môže vypísať pár chybových hlásení typu Authentification failure, ale vwdial aj tak spustí pppd a nakoniec to dobre dopadne. No, a teraz by mali okolo vás začať chodiť všetky tie ženské v červenom...

wvdial zostane spustený v popredí a ak ho ukončíte (Ctrl-C), automaticky zruší spojenie a položí telefón.

5. Proxy server a webovské prehliadače
Adresa proxy servera je napríklad proxy.provider.sk:3128. Túto adresu vložte do konfiguračných súborov svojich internetovských klientov, ktoré to vyžadujú, alebo ktoré umožňujú využívať služby proxy servera (prehliadače, ftp a iné klienty).
5.1. Lynx
V súbore /etc/lynx.cfg:

http_proxy:http://proxy.provider.sk:3128/
https_proxy:http://proxy.provider.sk:3128/
finger_proxy:http://proxy.provider.sk:3128/

Ak máte vlastný lokálny webserver (napr. www.localhost.bogus), vložte aj riadok

no_proxy:www.localhost.bogus

5.2. Mozilla/Netscape
Choďte doradu v menu a nastaveniach Edit->Preferences...->Advanced->Proxies->Manual proxy configuration nastavte v kolónkach HTTP, FTP a SSL/Security na proxy.provider.sk a 3128.
6. Offline browsovanie
Vynikajúce služby pre ľudí pripojených cez modem poskytuje program WWWOFFLE, ktorý nájdete na adrese www.gedanken.demon.co.uk/wwwoffle.
  1. WWWOFFLE ponúka niekoľko spôsobov, ako ušetriť peniaze na pripojenie. V prvom rade, stránky, ktoré si na internete prezeráte, zostanú k dispozícii aj po odpojení. Umožňuje tiež zostaviť zoznam stránok, ktoré si chcete prezrieť, a po pripojení sa tieto automaticky stiahnu, spolu so stránkami, na ktorých odkazy ste klikli počas prezerania už stiahnutých.
  2. Po nainštalovní z binárnej distribúcie alebo zo zdrojového kódu stačí v konfiguračnom súbore /var/spool/wwwoffle/wwwoffle.conf v časti Proxy nastaviť nasledovne:

    Proxy
    {
    proxy = proxy.provider.sk:3128
    }

  3. Ako root spustite démon

    wwwoffled -c /var/spool/wwwoffle/wwwoffle.conf

  4. V konfigurácii webovských prehliadačov nastavte ako proxy server pre http, https, ftp a finger meno vlastného počítača, s číslom portu 8080.
  5. Po pripojení na internet uveďte WWWOFFLE do online režimu príkazom

    wwwoffle -online

  6. Po odpojení zase naspäť do režimu offline

    wwwoffle -offline

K zoznamom stiahnutých stránok, stránok označených na stiahnutie, alebo stránok, ktoré sa majú obnoviť pri každom pripojení, sa dostanete jednoduchým zadaním http://localhost:8080/index/.

Konfigurácia WWWOFFLE sa dá takisto robiť priamo z prehliadača, po zadaní adresy http://localhost:8080/control/.

7. Elektronická pošta
Viď tiež: postfix, fetchmail, The Linux Electronic Mail Administrator HOWTO, The Linux Mail User HOWTO
7.1. Zasielanie pošty
Nainštalujte si balík postfix. Odporúčam postfix pre výrazne jednoduchšiu konfiguráciu oproti napr. sendmailu. Ak používate iný MTA, konfigurácia bude odlišná, ale cieľ je ten istý -- posielať všetku poštu cez providera a zariadiť pred odoslaním prepísanie adresy odosielateľa z lokálneho mena na adresu v tvare <meno_uzivatela@provider.sk>.
  1. Keďže váš počítač nemá vlastné meno ani stálu IP adresu, musíme o zasielanie pošty požiadať server nášho providera. V súbore /etc/postfix/main.cf vložte alebo upravte riadok na tvar:

    relayhost = mail.provider.sk

    To zaistí, že všetka pošta, ktorú pošlete von, pôjde najskôr na mail.provider.sk a ten ju potom sám rozošle.

  2. Zasielať poštu možno len s existujúcou doménou zasielateľa v hlavičke správy. Teda treba prepísať túto adresu z vášho mena na lokálnom stroji na adresu, ktorú máte priradenú od providera.

    Ak je login užívateľa, ktorý posiela poštu z vášho lokálneho stroja, napr. hiraga a adresa (opäť z papiera od providera) napr. potom v adresári /etc/postfix/ vytvorte súbor sender_canonical s obsahom:

    hiraga peter.kovac@provider.sk

    Ak máte vytvorených viac užívateľov, spod ktorých chcete posielať poštu, alebo majú priradenú inú adresu u providera, vložte pre každý takýto prípad ďalší riadok podobného tvaru.

  3. Spustite príkaz

    sh# postmap /etc/postfix/sender_canonical

    Tento príkaz musíte spustiť po každej zmene súboru sender_canonical.

  4. Do súboru /etc/postfix/main.cf vložte (alebo upravte existujúci) riadok

    sender_canonical_maps = hash:/etc/postfix/sender_canonical

  5. Reštartujte (alebo spustite) postfix a môžete posielať poštu. Samozrejme, tá sa odošle, len keď budete pripojení. Po nadviazaní PPP spojenia môžete zadať príkaz

    sh$ sendmail -q

    a všetky zatiaľ neodoslané správy sa pošlú. To je dobre, lebo môžete dve hodiny písať listy, ale odošlete ich za tri minúty (= jeden impulz).

7.2. Prijímanie pošty
Nainštalujte si balík fetchmail, ktorý slúži na sťahovanie pošty zo vzdialeného poštového servera.
  1. Vo svojom domovskom adresáry vytvorte súbor .fetchmail s takýmto obsahom:

    poll mail.provider.sk;
    protocol pop3;
    username "účet (schránka)";(1)
    password "heslo";

    Položky username a password naplňte názvom vášho účtu a heslom z výpisu objednaných služieb (časť pošta).

  2. Súboru dajte práva 600 príkazom

    sh$ chmod u=rw,go= ~/.fetchmailrc

  3. Vždy po pripojení na Internet jednoducho spustite príkaz

    sh$ fetchmail

    a nové správy sa stiahnu z poštového servera.

8. Automatizovanie úloh
Pri pripojení zvyčajne potrebujete vykonať niekoľko úloh, ako odoslať a stiahnuť poštu, uviesť WWWOFFLE do stavu online, atď. Pri odpojení zase uviesť WWWOFFLE do režimu offline.

Program pppd po nadviazaní spojenia spustí skript /etc/ppp/ip-up a pri odpojení skript /etc/ppp/ip-down. Do týchto súborov uveďte príkazy, ktoré sa majú pri týchto príležitostiach vykonať.

Príklad 1. /etc/ppp/ip-up

#!/bin/sh
# /etc/ppp/ip-up

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

# WWWOFFLE HTTP proxy server online
if [ -x /usr/local/bin/wwwoffle ]; then
/usr/local/bin/wwwoffle -online -c /var/spool/wwwoffle/wwwoffle.conf
fi

# WWWOFFLE HTTP proxy server fetch
if [ -x /usr/local/bin/wwwoffle ]; then
/usr/local/bin/wwwoffle -fetch -c /var/spool/wwwoffle/wwwoffle.conf &
fi

# Odoslať poštu
if [ -x /usr/sbin/sendmail ];then
/usr/sbin/sendmail -q 2>/dev/null >/dev/null &
fi

# Stiahnuť poštu pre užívateľa
if [ -x /usr/bin/fetchmail ]; then
/bin/su hiraga -c'/usr/bin/fetchmail' &>/dev/null &
fi

exit 0

Príklad 2. /etc/ppp/ip-down

#!/bin/sh
# /etc/ppp/ip-down

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

# WWWOFFLE HTTP proxy server offline
if [ -x /usr/local/bin/wwwoffle ]; then
/usr/local/bin/wwwoffle -offline -c /var/spool/wwwoffle/wwwoffle.conf
fi

exit 0

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

Diskuse k tomuto článku

12.3.2002 17:17 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše DJBDNS
Odpovědět | Sbalit | Link | Blokovat | Admin
Jen bych podotknul k casti ,DNS caching', ze existuje IMHO mnohem lepsi varianta, dnscache od DJB: homepage

Je tam solidni howto a navod, instalaci zvladne asi kazdy. Je maly, rychly, bezpecny. Ale je to spise osobni preference ;)

"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
13.3.2002 14:45 libor klepac
Rozbalit Rozbalit vše Re: DJB
ano mate pravdu DJBDNS je skvely software, stejne tak jako qmail, pouzivam je jiz asi rok a musim rict ze jsou mnohem lepsi ne bind+sendmail - zvlaste se mi libi jednodusi konfigurace (sendmail jsem opravdu nedokazal nastavit)
elkropac at students.zcu.cz
12.3.2002 19:10 Pavel.Vondricka@ff.cuni.cz
Rozbalit Rozbalit vše A co dial-up on demand?
Odpovědět | Sbalit | Link | Blokovat | Admin
Rad bych se zeptal, jak se Linux nastavi, aby navazoval spojeni automaticky, objevi-li se pozadavek pristupu na extreni sit (Internet) a sam ho zase shazoval, kdyz se dlouho nic nedeje.

Diky.

13.3.2002 14:08 Kare
Rozbalit Rozbalit vše Re: Rad bych se zeptal, jak se Linux nastavi, aby navazoval spojeni automaticky, objevi-li se pozadavek pristupu na extreni sit (Internet) a sam ho zase shazoval, kdyz se dlouho nic nedeje.

Diky.

Pouzivajte iba pppd a do volieb /etc/ppp/options vlozte volbu demand a user Do suborov pap-secret a chap-secret vlozte meno a heslo ktorym sa pripajate na dial. U mna vo firme to takto funguje uz vyse roka bez problemov. Existuje aj moznost pouzit diald.
13.3.2002 14:51 libor klepac
Rozbalit Rozbalit vše clanek dobry
Odpovědět | Sbalit | Link | Blokovat | Admin
ano je to dobry clanek, ale vse zde zminene jiz mam nastaveno, spis bych ocenil nejaky navod jak se zbavit wvdial, protoze bych chtel vytacet pripojeni pres cgi skript. bohuzel se ze vsech ppp howto... etc nemohu zjistit jak ovladat primo ppp, nejdale jsem se dostal k tomu ze overoval heslo a jmeno ale dal ani nic
12.4.2002 22:44 grumpa
Rozbalit Rozbalit vše clanek dobry
Jestli mas vsechno nastaveno, vcetne chap-secrets, pak bude stacit:

sh$ pppd jmeno_z_secrets

a uz to svisti! :o)

12.4.2002 22:46 grumpa
Rozbalit Rozbalit vše clanek dobry
oprava (sorry)

sh$ pppd name jmeno_z_secrets

15.3.2002 08:50 Radek Cervinka
Rozbalit Rozbalit vše wvdial a MDK
Odpovědět | Sbalit | Link | Blokovat | Admin
Program wvdial je soucasti mandraka 8.1 viz http://mandrake.redbox.cz/search.php?query=wvdial&zdroj=FILES

odpoved: wvdial-1.42-1mdk.i586.rpm

Jinak pekny clanek.

20.3.2002 08:35 Ondra
Rozbalit Rozbalit vše wvdial
Odpovědět | Sbalit | Link | Blokovat | Admin
Dobry den, pri zadani toho prikazu: sh# wvdialconf /etc/wvdial.conf mi nahlasi, ze zadny modem nebyl nalezen. Pritom setserial a isapnp mam nastavy spravne,aspon podle meho usudku.Jak mam tedy uvest modem do cinnosti? Dekuji
14.8.2002 20:10 Kaso
Rozbalit Rozbalit vše Problem s dial-upom
Odpovědět | Sbalit | Link | Blokovat | Admin
Pri vytacani mi hodi hlasku:No dial tone. Vo Windows sa to odstrani zrusenim polozky:Wait for dial ton.Prosim poradte mi ako to vyriesit v Linuxe.
1.10.2002 10:25 mchmelik@bb.tronet.sk
Rozbalit Rozbalit vše Problem s dial-upom
Neviem ako v linuxe ale wait for dialtone sa na modeme zrusi at prikazom atx3 alebo hyperterminale napis at&fx3&w

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.