Návod k připojení k IOL z OS Linux.

Stáhněte si tento popis v .zip(28k)

Tento dokument

Tento dokument v vytvořen v integrovaném výpočetní prostředí Emacs z projektu GNU. Dokument je možné si prohlédnout v čemkoli, co trochu rozumí alespoň HTML 3.0. Dokument je kódován v ISO-8859-2:1987.

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 .


Úvod

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).


Co je to Linux ?

Linux je moderní, multitaskový operační systém podobný UNIXu. Jeho nespornou výhodou je, že je zcela stabilní a je zdarma. Více informací lze najít například na následujících místech:
  1. www.linux.cz
  2. www.linux.org
  3. www.linuxhq.com
  4. Kde získat software ?
O volně šiřitelném software pojednává www.freesoft.cz.

Připojení k Internetu

Konfigurace kernelu(jádra)

Nejprve dobrá zpráva pro majitele distribucí. Pokud máte originální kernel z distribuce linuxu (jako je RedHat nebo Debian), nic dělat nemusíte. Nicméně, standardní kernel v distribucích je přeložen s maximem dostupných funkcí a je tedy relativně neefektivní. Návod na překlad kernelu na domácí stránce Vladimíra Myslíka. K překladu je několik poznámek:
  1. Je třeba zařadit podporu TCP/IP
  2. Je třeba zařadit podporu PPP (platí pro většinu providerů)
  3. Pokud váš provider používá SLIP, zařaďte příslušnou podporu.

Konfigurace vlastního připojení přes PPP

Máme tedy nakonfigurované a instalované jádro. Další bod je konfigurace modemu.

Konfigurace modemu

Pokud máte PnP modem, budete muset provést jeden krok navíc. Nainstalujte si utilitu isapnptools, například z CD nebo z některého archivu linuxového software na Internetu. Podrobnosti jsou zde. Takže, v případě Redhatu proveďte následující krok:
# pnpdump > /etc/isapnp.conf
Poznámky:
Znak na začátku řádky je buď '#' nebo '$'.

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 modem
Pokud 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_vhi
tento 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.

Ověření funkce modemu

Nastala doba k ověření vlastní funkce modemu. K tomu nejlépe použijeme terminálový program, například minicom. Zkusíme zadat několik příkazů pro modem. Například na příkaz 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.

Konfigurace ppp

PPP komunikaci v linuxu obstarává speciální program, ppp démon. Nutná je i podpora v kernelu, viz. informace výše. Pokud tedy máme kernel s podporou PPP, pokračujeme nastavením tohoto programu.

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.
Tím je hotova konfigurace pro modem a následuje část pro vlastní internetové spojení.

Konfigurace pppd

Program pppd provádí navázání spojení přes PPP. Konfigurace se provádí pomocí souboru /etc/ppp/options a pomocí příkazové řádky programu pppd. Nejprve proto soubor /etc/ppp/options:
asyncmap 0
crtscts
lock
modem
defaultroute
Spuš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_SCRIPT
Telefonní číslo samozřejmě doplněte vlastní a získáte ho na http://www.iol.cz/
Jméno na poslední řádce skriptu také doplňte vlastní.
Tím je konfigurováno vlastní připojení. Pokud se ale v tomto okamžiku pokusíte o připojení, nebude to možné. Je to proto, že přípojný server IOL zná Vaše jméno, ale neví, jste-li to opravdu Vy. To prokážete pomocí hesla. IOL použivá autorizaci pomocí protokolu CHAP, uveďte tedy své heslo do souboru /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á ...


Nyní doplníme adresy serverů doménových jmen do souboru /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.1
Pokud 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)
  1. Vytvoříme prázdný soubor /etc/resolv.conf.local a pak soubor /etc/resolv.conf.connected se stejným obsahem jako výše uvedený resolv.conf
  2. Do souboru /etc/ppp/ip-up.local přidáme řádek cp /etc/resolv.conf.connected /etc/resolv.conf
  3. Do souboru /etc/ppp/ip-down.local přidáme řádek cp /etc/resolv.conf.local /etc/resolv.conf
Tím se nám při připojení budou programy ptát nameserverů v internetu a pokud nejsme připojeni, budou používat jen tabulku /etc/hosts.


Pak se nalogujeme jako "root" a provedeme:
# /etc/ppp/iol

Tím mám nejtěžší část za sebou a příkaz výše by vás měl připojit k internetu. Odpojení zařídíte příkazem:
# killall pppd



Poznámky k připojení




Nastavení pošty

Z poštovní software máme 2(hlavní) možnosti:
  1. netscape
  2. sendmail+fetchmail

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

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.cz
Syntaxe 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:

kerberos
Ješ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í.
Sendmailu pak oznámíme tabulku 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:

  1. některé programy používají vlastní nastavení pro hlavičku "From:", pro ty se to musí nastavit zvlášť (např.: netscape communicator, PINE, gnus). Pokud máte v souboru iol.mc řádek začínající GENERICS_DOMAIN_FILE, měly by i tyto programy fungovat správně.
  2. zběžný manuál k sendmailu je (obvykle) instalován v souboru /usr/lib/sendmail-cf/README

fetchmail

je program pro příjem pošty. Jeho provedení je velmi jednoduché, na příkazovou řádku jen napište:
$ fetchmail
A 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"

Nastavení odesílané a přijímané pošty

Pokud budete odesílat poštu přes vlastní sendmail, nastavte své programy pro SMTP(odcházející pošta) na 'localhost', POP(příchozí pošta) na 'mail.telecom.cz'.

FAQ

Zatím nejsou, ptejte se na adrese níže (ale neprve čtěte manuály).

Poděkování

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.


Autor

David Šauer <davids@penguin.cz>

Záruka na informace z textu

Žádná není.
pocitadlo.
Počet přístupů

Poslední modifikace: So zář 18 20:19:55 CEST 1999