
Vzhledem k tomu, že od IOL odcházím, nebude tento dokument již více měněn či aktualizován. Pokud chce někdo jiný pokračovat, nechť neváhá a kontaktuje mě.
Tento text si klade za cíl blíže osvětlit problémy při připojování k službě Internet On Line z operačního systému Linux. V malé míře může být užitečný i pro jiné providery , například v části o konfiguraci pošty.
Z hlediska distribucí tento text využívá distribuci RedHat. Pokud používáte jinou distribuci, budou zřejmě nějaké rozdíly. Konfigurace PPP je popsána k verzi Redhat 4.2, v novějších je trochu jiná (ale i ta popsaná bude fungovat).
# pnpdump > /etc/isapnp.confPoznámky:
Pak editujte soubor /etc/isapnp.conf a upravte nastavení IO portů a linky přerušení podle vlastního uvážení. Pokud neuděláte nic, alespoň odkomentujte první možnou konfiguraci. Formát souboru je samovysvětlující.
Tím je ukončena část věnující se PnP modemům.
Pokračujeme konfigurací modemu. Modem je připojen k sériovému portu. Sériové porty jsou označeny ttySx, kde x je číslo portu, počítá se od 0. Každému sériovému portu odpovídá tzv. speciální soubor, který je obvykle v adresáři /dev, tedy prvnímu sériovému portu odpovídá soubor /dev/ttyS0. Mějme tedy modem na COM4 (dle DOSu). Pak odpovídající zařízení v linuxu je /dev/ttyS3. Abychom si nemuseli pamatovat nějaká čísla, vytvoříme si symbolický odkaz na modem, například takto:
# cd /dev # ln -sf ttyS3 modemPokud máme modem jinde, samozřejmě použijeme jiný speciální soubor (ttySx). Pokud je Váš modem na jiném IRQ než standardně, musí to to linuxu sdělit. To se provede příkazem setserial (man setserial). Tedy v případě, že máte modem na IRQ 5, proveďte příkaz
# setserial /dev/modem irq 5 spd_vhitento příkaz nastaví přerušení na irq 5 a maximální rychlost na 115200 (použijte jak pro 33.6K i 56K modemy). Příkaz setserial s odpovídajícími parametry přidejte i do startovacích skriptů, například do souboru
/etc/rc.d/rc.serial.
AT by měl modem odpovědět OK.
Po vytočení Vašeho vlastního čísla by se měl ozvat obsazovací tón.
Modem tedy funguje a my se pokusíme konfigurovat ppp pro připojení na přípojná místa IOL.
Neprve malé upozornění. RedHat linux má vlastní konfigurační program do X-Window. Proto berte tento návod jako referenci, jak to celé asi funguje. Návod je funkční, ale není to jediná cesta jak konfigurovat Linux.
Program pppd umí komunikaci přes protokol ppp, není ale schopen obsluhovat modem. Proto si volá speciální program chat. Připravíme si soubor se skriptem pro vytočení čísla na IOL:
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v \
TIMEOUT 10 \
ABORT 'NO CARRIER' \
ABORT 'BUSY' \
ABORT 'NO ANSWER\r' \
'' \rATZ \
SAY 'Posilam inicializaci ... ' \
'OK-+++\c-OK' AT \
OK 'AT&F' \
OK 'ATV1' \
OK 'ATX3' \
OK 'ATS95=255' \
OK 'ATM2' \
SAY 'hotovo.\nVytacim telefon a cekem 60 s ...' \
TIMEOUT 60 \
OK ATD,${TELEPHONE} \
'sername:' \
'ssword:' \
SAY ' cekam ...' \
PROTOCOL '\c' \
SAY ' modemy spojeny\n' \
TIMEOUT 20 \
'~' '\c' \
SAY 'PPP bezi.\n' 2>/dev/console
Výše uvedený soubor si stáhněte zde a zkopírujte ho na disk jako /etc/ppp/ppp-on-iol.
/etc/ppp/options:
asyncmap 0 crtscts lock modem defaultrouteSpuštění programu pppd pak proběhne ze skriptu
/etc/ppp/iol, který můžete získat zde a výpis následuje:
#!/bin/sh # # Script to initiate a ppp connection. This is the first part of the # pair of scripts. This is not a secure pair of scripts as the codes # are visible with the 'ps' command. However, it is simple. # # These are the parameters. Change as needed. TELEPHONE=680120 # The telephone number for the connection # # Export them so that they will be available at 'ppp-on-dialer' time. export TELEPHONE # # This is the location of the script which dials the phone and logs # in. Please use the absolute file name as the $PATH variable is not # used on the connect option. (To do so on a 'root' account would be # a security hole so don't ask.) # DIALER_SCRIPT="/etc/ppp/ppp-on-iol" # # Initiate the connection # # I put most of the common options on this command. Please, don't # forget the 'lock' option or some programs such as mgetty will not # work. The asyncmap and escape will permit the PPP link to work with # a telnet or rlogin connection. You are welcome to make any changes # as desired. Don't use the 'defaultroute' option if you currently # have a default route to an ethernet gateway. # exec /usr/sbin/pppd /dev/modem 115200 user "jmeno" connect $DIALER_SCRIPTTelefonní číslo samozřejmě doplněte vlastní a získáte ho na http://www.iol.cz/
/etc/ppp/chap-secrets. Obsah bude následující:
# Secrets for authentication using CHAP # client server secret IP addresses "jmeno" * "heslo"Poslední sloupec určuje IP adresy a pro naše účely ho ponecháme prázdné. Ano, všimli jste si správně, jméno a heslo je třeba poslat 2x. Jednou ve výzvě v chat skriptu a podruhé při CHAP autentizaci. Smysl mi stále uniká ...
/etc/resolv.conf, abychom mohli komunikovat s počítači v Internetu. /etc/resolv.conf pak bude vypadat takto:
nameserver 194.228.2.35 nameserver 194.228.2.1Pokud zjistíte, že když nejste prřipojeni, vám dotaz na jména počítačů do internetu trvá nějak déle, můžete použít následující trik:(platí pro distribuci RedHat)
/etc/resolv.conf.local a pak soubor /etc/resolv.conf.connected se stejným obsahem jako výše uvedený resolv.conf
- Do souboru
/etc/ppp/ip-up.local přidáme řádek cp /etc/resolv.conf.connected /etc/resolv.conf
- Do souboru
/etc/ppp/ip-down.local přidáme řádek cp /etc/resolv.conf.local /etc/resolv.conf
/etc/hosts.
# /etc/ppp/iol
# killall pppd
/etc/ppp/iol můžeme zajistit např. pomocí programu sudo.
V případě 1.) provedeme nastavení podobně jako z Windows. Výhodou je určitým způsobem integrované prostředí, nevýhodou HW náročnost programu a to, že jsem odkázáni jen na jeden program při posílání pošty.
Případ 2.) zde bude popsán. Je nevýhodou je složitější konfigurace, výhodou naopak univerzálnost a možnost odesílat poštu z kteréhokoli programu (PINE, gnus, mail ...).
sendmail je program vytvářející kompletní poštovní úřad na vašem linuxu. Jeho konfigurace není nejjednodušší, proto zde uvedu konfigurační soubor, který sám používám. Stáhněte si ho zde. K použití tohoto konfiguračního souboru budete potřebovat balík sendmail, sendmail-cf a m4 (platí pro RedHat). Veškeré informace zde se vztahují k sendmailu verze 8.9.1. Soubor iol.mc zkopírujte jako /usr/lib/sendmail-cf/cf/iol.mc a proveďte:
# cd /usr/lib/sendmail-cf/cf # m4 < iol.mc > /etc/sendmail.cf
Vlastní program sendmail pak pro naše účely budeme startovat jen v případě požadavku na odeslání pošty a do souboru /etc/inetd.conf doplníme řádek (pokud tam již není)
smtp stream tcp nowait root /usr/sbin/tcpd sendmail -bs
Samozřejmě, musíme upravit startovací skripty tak, aby se sendmail nestartoval automaticky po zapnutí počítače(například můžeme upravit soubor /etc/rc.d/init.d/sendmail takto:
#!/bin/sh exit 0
Posledním problémem odcházející pošty je změna vašeho lokálního jména na vaši oficiální emailovou adresou. To se zařídí pomocí tabulky genericstable. Ta může být uložena například v souboru /etc/mail/genericstable.txt s následujícím obsahem:
david davids@iol.czSyntaxe je jednoduchá. V prvním sloupci je vaše logovací jméno na vašem stroji, druhý sloupec je oficiální e-mail.
Na tomto místě malá poznámka: některé programy (PINE) obsahují vlastní MTA (poštovní program, přímo realizující doručení). Pokud je nepoužíváte, vymažte z konfiguračního souboru iol.mc řádek GENERICS_DOMAIN_FILE(...). V případě, že tento řádek ponecháte (a to doporučuji), založte soubor /etc/mail/my_domain, kde uvedete jméno svého počítače, např. takto:
kerberosJeště poznámka: v PINE nezapomeňte v případě, že provozujete vlastní sendmail volbu smtp-server na localhost, jinak bude PINE vyuzivat vlastniho MTA a genericstable ani jiné nastavení se neuplatní.
genericstable následující sekvencí:
# cd /etc # makemap hash genericstable < mail/genericstable.txt
Nyní by mělo být možno odesílat maily. Pokud nebudete zrovna připojen(a) k internetu, maily se budou ukládat na váš disk a po připojení je můžete odeslat přikazem sendmail -q. Příkaz také můžete přidat do souboru /etc/ppp/ip-up.local, pak se vaše pošta odešle automaticky po připojení k internetu.
Poznámky:
iol.mc řádek začínající GENERICS_DOMAIN_FILE, měly by i tyto programy fungovat správně.
/usr/lib/sendmail-cf/README
$ fetchmailA vaše pošta bude stažena. Konfiguraci programu fetchmail zajišťuje soubor ~/.fetchmailrc, jehož příklad je zde uveden:
poll mail.telecom.cz proto POP3 user "jmeno"Což znamená zeptat se na poštu počítače mail.telecom.cz (kanonicky kerberos.telecom.cz) protokolem POP3 a stáhnout ji. Program se vás zeptá na heslo. Pokud se tím nechcete zdržovat, vytvořte si soubor
~/.netrc s následující řádkou:
machine mail.telecom.cz login "jmeno" password "heslo"
Michalu Chourovi za připomínku k PINE (doplnění GENERICS_DOMAIN v konfiguraci sendmailu).
Pavlu Pelcovi za nalezení nedostatků v sekci o vytvoření souboru /etc/sendmail.cf.