zp∞t do archivu Φlßnk∙ |
rejst°φk |
p°edchozφ dφl |
nßsledujφcφ dφl
Ji°φ Peterka: Co je Φφm ... v poΦφtaΦov²ch sφtφch (67):
Telnet - I.
V p°edchozφch dvou dφlech jsme si vysv∞tlili podstatu
terminßlov²ch relacφ a vzdßlenΘho p°ihlaÜovßnφ
v poΦφtaΦov²ch sφtφch, a poslΘze narazili na nejvß₧n∞jÜφ
problΘm kolem jejich praktickΘ implementace - na velkou
r∙znorodost pou₧φvan²ch terminßl∙. Dnes se ji₧ m∙₧eme zaΦφt
podrobn∞ji zab²vat protokolem TELNET, kter² mß v sφ¥ovΘm
modelu TCP/IP realizaci vzdßlen²ch terminßlov²ch relacφ na
starosti.
Ka₧d² aplikaΦnφ protokol, kter² chce realizovat
vzdßlenΘ terminßlovΘ relace v prost°edφ poΦφtaΦov²ch sφtφ,
musφ p°edpoklßdat urΦitou mφru distribuovanosti svΘ
vlastnφ implementace - jak jsme si ostatn∞ ji₧ naznaΦovali
v 65. dφlu, kde jsme se nad realizacφ vzdßlen²ch
terminßlov²ch relacφ zam²Üleli poprvΘ. Snad neuÜkodφ si tuto
p°edstavu jeÜt∞ jednou o₧ivit, tentokrßte ji₧ na konkrΘtnφm
p°φkladu protokolu TELNETu.
TELNET klient a server
Protokol TELNET p°edpoklßdß vzßjemnou spoluprßci dvou
sv²ch slo₧ek, jejich₧ role a postavenφ vychßzφ
z architektury klient-server: jedna slo₧ka, provozovanß na
"lokßlnφm" poΦφtaΦi (tj. na tom, ke kterΘmu je fyzicky
p°ipojen u₧ivatel∙v terminßl) je oznaΦovßna jako TELNET
klient, zatφmco druhß slo₧ka, na "vzdßlenΘm" poΦφtaΦi (ke
kterΘmu se prost°ednictvφm vzdßlenΘ terminßlovΘ relace
u₧ivatel p°ihlaÜuje) je v postavenφ TELNET serveru. ┌loha
obou slo₧ek p°itom odpovφdß p°edstav∞, kterou jsme si
zavedli v 65. dφlu: slo₧ka v roli klienta p°ijφmß vÜechny
vstupy od terminßlu, a odesφlß je po sφti svΘ partnerskΘ
slo₧ce v roli serveru na "vzdßlenΘm" poΦφtaΦi. Tato slo₧ka
pak p°φsluÜnΘ vstupy "podstrkuje" svΘmu okolφ tak, jako
kdyby Ülo o vstupy terminßlu, p°ipojenΘho k mφstnφmu
vzdßlenΘmu poΦφtaΦi. Filosofie protokolu TELNET p°itom
p°edpoklßdß, ₧e ob∞ slo₧ky majφ formu aplikaΦnφch program∙,
a nejsou tedy "pevn∞ zabudovßny" v operaΦnφm systΘmu - jak
by asi bylo, alespo≥ u slo₧ky v roli serveru, z°ejm∞
nejp°irozen∞jÜφ. V²hodou je toti₧ mnohem v∞tÜφ flexibilita
a snadnost provßd∞nφ p°φpadn²ch zm∞n, nev²hodou pak menÜφ
efektivnost. Uv∞domme si toti₧, ₧e p°i takovΘmto °eÜenφ
ka₧d² jednotliv² znak prochßzφ celkem p∞tkrßt "skrz" cel²
operaΦnφ systΘm: poprvΘ ne₧ se dostane od terminßlu ke
klientskΘ slo₧ce, podruhΘ kdy₧ jej tato slo₧ka odesφlß na
vzdßlen² poΦφtaΦ, pot°etφ kdy₧ projde operaΦnφm systΘmem na
tomto vzdßlenΘm poΦφtaΦi a₧ ke slo₧ce v roli serveru,
poΦtvrtΘ prochßzφ operaΦnφm systΘmem, kdy₧ jej serverovß
slo₧ka "podstrkuje" zp∞t svΘmu operaΦnφmu systΘmu, a koneΦn∞
popßtΘ, kdy₧ jej tento operaΦnφ systΘm p°edßvß jinΘ
aplikaΦnφ ·loze, kterß je koneΦn²m p°φjemcem vstupu.
Analogicky pro vÜechny v²stupy, kterΘ cestujφ opaΦn²m
sm∞rem.
Dßle je pro toto °eÜenφ nutnΘ, aby operaΦnφ systΘm
(alespo≥ na stran∞ serveru) vychßzel vst°φc v²Üe citovanΘ
mo₧nosti "podstrkovßnφ" vstup∙, a poskytoval za tφmto ·Φelem
vhodn² mechanismus. Zde velmi zßle₧φ na konkrΘtnφm
prost°edφ, ve kterΘm je protokol TELNET implementovßn.
OperaΦnφ systΘm Unix s takovouto mo₧nostφ poΦφtß, a nabφzφ
k vyu₧itφ zvlßÜtnφ vstupn∞/v²stupnφ body, na kterΘ se
nejr∙zn∞jÜφ programy mohou napojit, a napodobovat chovßnφ
skuteΦnΘho terminßlu. V AT&T Unixu se t∞mto vstupnφm bod∙m
do operaΦnφho systΘmu °φkß pseudoterminßly, zatφmco v BSD
Unixu jsou oznaΦovßny jako pseudo tty.
Za zmφnku takΘ stojφ konkrΘtnφ zp∙sob implementace obou
slo₧ek v prost°edφ Unixu. Slo₧ka v roli klienta je b∞₧n²m
aplikaΦnφm programem, kter² si u₧ivatel sßm a explicitn∞
spouÜtφ a₧ v okam₧iku, kdy to skuteΦn∞ pot°ebuje. Naproti
tomu slo₧ka v roli serveru mß postavenφ systΘmovΘho procesu
- tzv. TELNET dΘmona (viz 64. dφl), oznaΦovanΘho tΘ₧:
TELNETD.
Nejen Unixem ₧iv je TELNET
Protokol TELNET je relativn∞ velmi jednoduch²m
protokolem, kter² se zßm∞rn∞ sna₧φ nevßzat na vlastnosti,
schopnosti a slu₧by urΦitΘho konkrΘtnφho prost°edφ. Uka₧me
si smysl tohoto poΦφnßnφ na p°φkladu: kdy₧ se u₧ivatel
p°ihlßsφ k prßci v operaΦnφm systΘmu urΦitΘho poΦφtaΦe (tj.
provede tzv. login), a potΘ si prost°ednictvφm TELNET-u
otev°e vzdßlenou terminßlovou relaci s jin²m poΦφtaΦem, musφ
se na n∞m znovu sßm p°ihlßsit (op∞t provΘst tzv. login).
Bylo by sice mo₧nΘ, aby za n∞j toto p°ihlßÜenφ provedl
TELNET automaticky. Znamenalo by to ovÜem, ₧e by musel v∞d∞t
jak - musel by znßt konkrΘtnφ konvence pro p°ihlaÜovßnφ
a zadßvßnφ hesel, zp∙sob uchovßvßnφ informacφ o u₧ivatelφch
a jejich heslech a mnoho dalÜφch konkrΘtnφch informacφ,
kterΘ se v r∙zn²ch systΘmech mohou v²razn∞ liÜit.
Dφky tomu, ₧e se TELNET o automatickΘ p°ihlaÜovßnφ
nesna₧φ, m∙₧e b²t implementovßn v prost°edφ r∙zn²ch
operaΦnφch systΘm∙, a to dokonce i takov²ch, kterΘ pojem
terminßlov²ch relacφ a u₧ivatelsk²ch jmen a ·Φt∙ v∙bec
neznajφ. Nap°φklad je mo₧nΘ (a v souΦasnΘ dob∞ i velmi
ΦastΘ), aby klientskß slo₧ka protokolu TELNET byla
provozovßna jako b∞₧n² aplikaΦnφ program na osobnφm poΦφtaΦi
v prost°edφ operaΦnφho systΘmu MS DOS, zatφmco slo₧ka v roli
serveru b∞₧ela na UnixovskΘm poΦφtaΦi. U₧ivatel osobnφho
poΦφtaΦe si pak m∙₧e z°izovat vzdßlenΘ terminßlovΘ relace
z prost°edφ DOSu do prost°edφ Unixu.
S implementacφ klientskΘ slo₧ky protokolu TELNET se
dnes m∙₧eme setkat v prost°edφ snad ka₧dΘho operaΦnφho
systΘmu, zdaleka ne jen MS DOSu, a ze vÜech t∞chto
operaΦnφch systΘm∙ je pak mo₧nΘ si z°izovat vzdßlenΘ
terminßlovΘ relace s Unixovsk²mi poΦφtaΦi. ZajφmavΘ je, zda
to platφ i obrßcen∞ - tedy zda i slo₧ka v roli serveru m∙₧e
b²t implementovßna v jinΘm prost°edφ ne₧ v Unixu, a zda je
tedy mo₧nΘ si prost°ednictvφm protokolu TELNET z°izovat
vzdßlenΘ terminßlovΘ relace i s jin²mi, ne₧ Unixovsk²mi
poΦφtaΦi. Odpov∞∩ je samoz°ejm∞ kladnß, jen p°φsluÜn²ch
implementacφ TELNET server∙ je zatφm pon∞kud mΘn∞.
TELNET server na PC
Existujφ dokonce i implementace serverov²ch slo₧ek
protokolu TELNET pro operaΦnφ systΘm MS DOS poΦφtaΦ∙ PC
(dokonce z kategorie public domain). To je pon∞kud pikantnφ,
proto₧e MS DOS je jedno·lohov² a jednou₧ivatelsk² operaΦnφ
systΘm, kter² pojem terminßlovΘ relace v∙bec neznß. Z°φzenφ
vzdßlenΘ terminßlovΘ relace s poΦφtaΦem PC (pod MS DOSem) je
pak vlastn∞ formou dßlkovΘho ovlßdßnφ (remote control)
poΦφtaΦe PC jako celku. Pro pot°eby dßlkovΘho ovlßdßnφ
poΦφtaΦ∙ PC dnes existuje celß °ada komerΦnφch i public
domain program∙, kterΘ ale vesm∞s vy₧adujφ vlastnφ,
specifickΘ klientskΘ slo₧ky. V²hodou tohoto °eÜenφ (tj.
TELNET serveru na poΦφtaΦi PC) je mo₧nost vyu₧φt standardnφ
klientskou slo₧ku protokolu TELNET, kterß m∙₧e b²t navφc
provozovßna i jinde, ne₧ jen v prost°edφ MS DOSu. Dφky tomu
je mo₧nΘ, aby nap°φklad Unixovsk² poΦφtaΦ na dßlku ovlßdal
poΦφtaΦ PC. Navφc je vhodnΘ si uv∞domit, ₧e po z°φzenφ
vzdßlenΘ terminßlovΘ relace prost°ednictvφm protokolu TELNET
je jejφ existence pro u₧ivatele transparentnφ, tak₧e
nap°φklad u₧ivatel UnixovskΘho poΦφtaΦe pak m∙₧e mφt dojem,
₧e pracuje na poΦφtaΦi PC. Nebude to ale iluze dokonalß
- ji₧ jen z d∙vodu omezenΘ p°enosovΘ rychlosti. DalÜφ
problΘmy pak zp∙sobuje nap°. odliÜnost v poΦtu °ßdk∙:
zatφmco terminßly Unixovsk²ch poΦφtaΦ∙ majφ nejΦast∞ji 24
°ßdk∙, poΦφtaΦe PC zobrazujφ v zßkladnφm textovΘm re₧imu 25
°ßdek.
Rlogin je jin²
TELNET nenφ zdaleka jedin²m protokolem pro realizaci
vzdßlen²ch terminßlov²ch relacφ - v prost°edφ TCP/IP sφtφ je
ale z°ejm∞ nejrozÜφ°en∞jÜφ. Existuje °ada dalÜφch, mnohem
propracovan∞jÜφch a komplexn∞jÜφch protokol∙ pro vzdßlenΘ
terminßlovΘ relace, kterΘ nabφzφ v∞tÜφ rozsah slu₧eb, ale za
svou dokonalost platφ omezen∞jÜφmi mo₧nostmi nasazenφ, ne₧
jednoduÜÜφ TELNE. Za zmφnku stojφ alespo≥ jeden alternativnφ
protokol - rlogin. Pochßzφ z prost°edφ BSD Unixu, a liÜφ se
od TELNETu p°edevÜφm v tom, ₧e "vnφmß" prost°edφ, ve kterΘm
pracuje jeho klientskß i serverovß slo₧ka, a sna₧φ se
vyu₧φvat specifickΘ vlastnosti a schopnosti t∞chto prost°edφ
- nap°. pro zajiÜt∞nφ automatickΘho p°ihlaÜovßnφ. P°φstup
protokolu rlogin je takov², ₧e sprßvce systΘmu na urΦitΘm
poΦφtaΦi mß mo₧nost specifikovat, kterΘ jinΘ poΦφtaΦe
pova₧uje za "d∙v∞ryhodnΘ" - v tom smyslu, ₧e kdy₧ u₧ivatel
ji₧ jednou proÜel na takovΘmto poΦφtaΦi procesem ov∞°ovßnφ
svΘ identity (zadßnφm u₧ivatelskΘho jmΘna a hesla), dan²
poΦφtaΦ ji₧ nepo₧aduje novΘ opakovßnφ tohoto procesu. Jin²mi
slovy: "v∞°φ" v identitu u₧ivatel∙, kte°φ mu vysφlajφ svΘ
₧ßdosti o z°φzenφ vzdßlen²ch terminßlov²ch relacφ z t∞ch
poΦφtaΦ∙, kterΘ jsou sprßvcem urΦeny jako "d∙v∞ryhodnΘ"
(anglicky: trusted hosts), a nesna₧φ se ji ov∞°ovat znovu.
Dßle mß sprßvce systΘmu mo₧nost stanovit, ₧e konkrΘtnφ
u₧ivatelΘ "d∙v∞ryhodn²ch" poΦφtaΦ∙ majφ na danΘm poΦφtaΦi
takovß a takovß u₧ivatelskß jmΘna. Kdy₧ pak p°ijde ₧ßdost
o z°φzenφ terminßlovΘ relace od konkrΘtnφho u₧ivatele
"d∙v∞ryhodnΘho" poΦφtaΦe, m∙₧e b²t tento u₧ivatel
automaticky p°ihlßÜen do systΘmu danΘho poΦφtaΦe pod
p°φsluÜn²m jmΘnem, a bez nutnosti zadßvat heslo.
Jakmile je toto mo₧nΘ, lze implementovat i takovou
slu₧bu, kterß u₧ivateli jednoho poΦφtaΦe umo₧nφ zadat
p°φkaz, kter² se mß provΘst na jinΘm poΦφtaΦi. P°itom se
automaticky z°φdφ vzdßlenß terminßlovß relace, v rßmci kterΘ
se vzdßlenΘmu poΦφtaΦi zadß p°φsluÜn² p°φkaz, a po jeho
provedenφ se terminßlovß relace zase zruÜφ. U₧ivateli p°itom
staΦφ zadat jen dva zßkladnφ ·daje: p°φkaz, kter² mß b²t
proveden, a dßle jmΘno poΦφtaΦe, na kterΘm se tak mß stßt.
zp∞t do archivu Φlßnk∙ | rejst°φk |
p°edchozφ dφl |
nßsledujφcφ dφl
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese
http://archiv.czech.net/copyleft.htm