\"/
\"/ \"/    

Připojte svůj Linux k terminálovému serveru ÚVT MU

Jan Kasprzak, FI MU
Ročník VI - číslo 2, listopad 1995
Citace: J. Kasprzak. Připojte svůj Linux k terminálovému serveru ÚVT MU. Zpravodaj ÚVT MU. ISSN 1212-0901, 1995, roč. VI, č. 2, s. 12-15.
Tematické zařazení: Operační systémy, Počítačové sítě na MU
 předchozí článek | následující článek 

V minulých číslech Zpravodaje se čtenáři dověděli o možnostech spojení domácího počítače s terminálovým serverem ÚVT MU: článek [1] ukazuje, jak vytvořit IP spojení mezi terminálovým serverem a počítačem vybaveným Microsoft Windows za použití protokolu PPP1. V tomto článku nastíníme, jak postupovat, pokud chceme obdobných výsledků dosáhnout na počítači s operačním systémem LINUX.

Sériové porty

Pod LINUXem existují dva druhy speciálních souborů, které přísluší sériovým portům. První z nich jsou určeny pro příchozí spojení (dial-in). Jsou to speciální soubory s hlavním číslem (major) 4 a jmenují se /dev/ttyS[0-3]. Druhý typ je určen pro volání ven ze systému (dial-out). Tato zařízení mají major 5 a jmenují se /dev/cua[0-3].

Dále je nutno věnovat pozornost tomu, jaký typ sériového portu vlastníme. Počítač IBM PC AT byl vybaven sériovými porty řízenými obvodem 8250. S tímto typem se u současných typů počítačů již téměř nesetkáme. Nejčastěji používaným obvodem pro tyto účely je (anebo aspoň donedávna byl) obvod 16450. Oba zmiňované chipy mají vstup/výstupní frontu v délce jedné slabiky. Nejmodernějším obvodem řídícím sériový port je obvod 16550A. Tento obvod má vstupní a výstupní frontu v délce 16 slabik. Toho s výhodou využijeme zejména ve víceprocesovém prostředí, kde systém nemůže poskytovat tak rychlou odezvu na přerušení od sériového portu.

Kde jsou hranice možností jednotlivých obvodů? V zásadě lze říci, že 16450 lze provozovat do rychlosti 38 400 bps, takže se hodí nanejvýš pro modemy s maximální rychlostí 14 400 bps a hardwarovou kompresí dat. Pro rychlejší modemy je lépe koupit sériovou kartu s obvody 16550A. Vlastníme-li interní modem, jsou tyto problémy vyřešeny, neboť většina současných interních modemů se z hlediska systému tváří jako 16550A.

Nastavení modemu

Předpokládejme, že máme svůj modem připojený na druhý sériový port (COM2 pod MS-DOSem, /dev/cua1 pod LINUXem). K tomu, abychom mohli posílat modemu jednoduché příkazy, případně ručně vytáčet čísla, potřebujeme určitý software. Pro tyto účely je možné použít program cu z balíku uucp, který musí být spuštěn pod superuživatelskou identifikací:

     #cu -l cua1 -s 38400

Je také možné použít obrazovkově orientovaný program minicom (klávesami "Ctrl-a z" vyvoláme nápovědu) anebo program seyon pro X Window System.

Jedním z těchto programů si nastavíme modem na příslušnou konfiguraci a pak vyzkoušíme, jestli s ním lze pracovat, přibližně takto:

     ATZ
OK
ATD755755
CARRIER 14400
CONNECT
...
login: kas
Password: heslo
...
TERMINAL-SERVER>

Pokud modem podporuje uchování uživatelské konfigurace, je lepší mít všechny důležité parametry přednastavené a modem inicializovat pouhým resetovacím řetězcem ATZ.

IP spojení

Nyní již můžeme používat přímé spojení s terminálovým serverem nejen pro vzdálené přihlášení, ale i pro přenos souborů (například protokolem Zmodem - příkazy szrz). Nicméně máme daleko širší možnosti. Zatím se náš počítač (nebo přesněji jeden jeho proces) tvářil jako terminál vzdáleného počítače na MU. Nyní se pokusíme vytvořit ze svého počítače plnohodnotný uzel Internetu.

Existují dva protokoly, které umí LINUX provozovat nad modemovým spojením: prvním z nich je SLIP (Serial Line Internet Protocol), druhým je již zmiňovaný PPP. Protokol PPP je silnější a také jednodušší na použití, proto se zde budeme zabývat jen jím. (Zájemci si mohou nastudovat použití SLIPu z [2].)

PPP a jádro Linuxu

Konfigurace PPP není složitá. Nejprve je třeba se ujistit, že námi používané jádro umí používat PPP; v takovém případě soubor /proc/net/dev obsahuje slovo ppp. Pokud jádro nemá nainstalovanou podporu PPP, ale umí pracovat se sítí TCP/IP, je možné nainstalovat PPP za běhu systému jako modul. Příkazem

     # make modules modules_install

spuštěným v adresáři /usr/src/linux se vytvoří (mimo jiné) moduly slhc.oppp.o, které nainstalujeme do běžícího systému:

     # /sbin/insmod /lib/modules/'uname -r'/net/slhc.o
# /sbin/insmod /lib/modules/'uname -r'/net/ppp.o

Bohužel podpora TCP/IP zatím ještě není modularizovaná2, takže pokud používané jádro nemá podporu TCP/IP (soubor /proc/net/dev neexistuje), je nutné překompilovat a nainstalovat nové jádro.

Konfigurace pppd

Pro vytvoření PPP spojení použijeme program pppd, který se nachází v adresáři /usr/lib/ppp/. Popišme si jednotlivé parametry programu pppd, které použijeme k vytvoření spojení:

Nejprve je nutno vytvořit telefonní spojení s terminálovým serverem. K tomu slouží program chat ve stejném adresáři jako pppd. Vytvořme soubor /usr/lib/ppp/chatscript přibližně s tímto jednořádkovým obsahem:

     '' ATZ OK ATD755755 CONNECT '' Username: uživatelské_jméno Password: heslo SERVER> ppp

Takto vytvořený soubor obsahuje střídavě řetězce, které program chat očekává od modemu, a odpovědi na tyto texty: Nejprve program neočekává žádný řetězec a rovnou posílá první příkaz - proto text začíná prázdným řetězcem. Dále jsou příkazy pro reset modemu a vytočení telefonního čísla. Jakmile je spojení ustaveno (modem odpoví "CONNECT"), nevysílá chat žádný řetězec, ale čeká na výzvu k zadání uživatelského jména. Pak zadá jméno a heslo a počká na prompt terminálového serveru. Příkazem ppp přepne vzdálený konec telefonní linky do režimu PPP.

Na tomto místě je třeba učinit poznámku o bezpečnosti: Je zřejmé, že jakékoli heslo uvedené v nezašifrované podobě v souboru je velmi nebezpečné. Proto toto řešení lze doporučit pouze na jednouživatelských počítačích. V každém případě je dobré nastavit souboru chatscript minimální přístupová práva.

Máme-li tedy prostředky na vytvoření PPP spojení, lze zadat příkaz, kterým se toto spojení vytvoří:

     # /usr/lib/ppp/pppd connect "chat -f /usr/lib/ppp/chatscript" 38400 /dev/cua1 defaultroute

Zde parametr connect značí program, který se má použít pro navázání spojení, a číslo 38400 určuje rychlost pro spojení mezi počítačem a modemem3. Další parametr určuje speciální soubor modemu a poslední parametr říká, že pppd má po navázání spojení směrovat síťové pakety přes rozhraní PPP.

Program pppd se po spuštění přepne na pozadí a my můžeme začít využívat síťové služby:

     $ ping 147.251.4.33

Ještě zadáme adresu nameserveru, abychom nemuseli používat pro spojení IP adres; do souboru /etc/resolv.conf napíšeme tyto řádky:

     domain ics.muni.cz
nameserver 147.251.4.33
nameserver 147.251.48.3

Nyní již můžeme používat doménová jména:

     $ telnet grond

PPP spojení ukončíme zasláním signálu SIGTERM procesu pppd.

Bezpečnost

Vytvořením PPP spojení mezi naším počítačem a terminálovým serverem se z počítače stane plnohodnotný uzel Internetu se všemi bezpečnostními riziky, která tento fakt přináší. Proto je dobré nemít na svém počítači účty s prázdným heslem a také neopomenout žádné důležité bezpečnostní opatření.

Další informace

Další informace o operačním systému LINUX je možné získat přes WWW. Česká domovská WWW stránka LINUXu se nachází na  http://www.fi.muni.cz/~kas/linux/linux.html a obsahuje odkazy na většinu zdrojů v České republice, které se týkají LINUXu, a také některé odkazy do zahraničí.

Literatura

[1] Petr Ulrich. Některé zkušenosti s používáním protokolu SLIP. Zpravodaj V/2, 1994, s. 13-15.
... zpět do textu
[2] Olaf Kirch. Linux Network Administrator's Guide. O'Reilly & Associates, 1994.
... zpět do textu
[3] Al Longyear. Linux PPP HOWTO. Linux Documentation Project.
... zpět do textu
setting
1 Point-to-point Protocol
... zpět do textu
2 v čase psaní tohoto článku - to jest jádro verze 1.3.20
... zpět do textu
3 Toto číslo musí být vždy aspoň tak vysoké jako předpokládaná rychlost spojení na telefonní lince. Pokud modem podporuje hardwarovou kompresi dat, je zde nutné mít výrazně vyšší rychlost spojení mezi modemem a počítačem.
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011