Příkazový řádek v systému Windows
- vnitřní příkazy
- vnější příkazy
Přesměrování
příkaz1 | příkaz2 posílá výstup prvního příkazu jako vstup pro druhý příkaz
příkaz < soubor získá vstup příkazu z konkrétního souboru
příkaz > soubor pošle výstup z daného příkazu do souboru
(soubor vytvoří nebo přepíše)
příkaz >> soubor připojí výstup k danému souboru
příkaz < soubor1 > soubor2 získá vstup ze souboru1 a výstup zapíše do souboru2
Příklady:
dir | more
dir c: > vypis_adresare
dir c:nnn 2>&1
Spojování a seskupování příkazů
příkaz1 & příkaz2 spustí příkaz1 a poté příkaz2
příkaz1 && příkaz2 spustí příkaz2, jeli úspěšně dokončen příkaz1
příkaz1 || příkaz2 spustí příkaz2, není-li úspěšně dokončen příkaz1
Příklady:
cd c:\working\docs & dir
dir c:\working\logs\current.log && move current.log d:\history\logs
(hostname & ipconfig & netstat –a) > current_config.log
Třídy adres IP sítí
Třída Interval pro byte Platná čísla sítí Maska
A 1 až 126 1.0.0.0 – 126.0.0.0 255.0.0.0
B 128 až 191 128.1.0.0 - 191.254.0.0 255.255.0.0
C 192 až 223 192.0.1.0 - 223.255.254.0 255.255.255.0
D 224 až 239 multicast
Vyhrazené IP adresy
127.0.0.1 localhost
0.0.0.0 tento počítač
255.255.255.255 všechny počítače v síti
Soukromé adresy
10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255
Masky sítí a podsítí
přirozená maska binární vyjádření masky
třída A 255.0.0.0 11111111.00000000. 00000000. 00000000 (má rozsah sítí dán prvním oktetem)
třída B 255.255.0.0 11111111. 11111111. 00000000. 00000000 (má rozsah dán prvními dvěmi oktety)
třída C 255.255.255.0 11111111. 11111111. 11111111. 00000000 (má rozsah dán prvními třemi oktety)
Příslušnost počítače k síti
Jsou dány IP adresy třídy C tří počítačů a maska. Zjišťujeme, které počítače patří do stejné sítě a které nikoli.
Maska: 255.255.255.0
Počítač A - IP: 192.64.64.2,
Počítač B - IP: 192.64.64.3
Počítač C - IP: 192.64.65.3
Logický součin 255 se 192 je 192, 0 s x je 0, výpočty přeskočíme.
255 . . . . . . . . . . . 1111 1111 255 . . . . . . . . . . . 1111 1111
64 . . . . . . . . . . . 0100 0000 65 . . . . . . . . . . . 0100 0001
Součin. . . . . . . . . . 0100 0000 Součin. . . . . . . . . . 0100 0001
Součin - hex. . . . . . . 40 Součin - hex. . . . . . . 41
Součin - dec. . . . . . . 64 Součin - dec. . . . . . . 65
Výsledek
Počítač A -
adresa sítě: 192.64.64.0
Počítač B - adresa sítě: 192.64.64.0
Počítač C - adresa sítě: 192.64.65.0
Počítače A a B patří do stejné sítě 192.64.64.0, počítač C nikoli, jeho síťová adresa 192.64.65.0 je odlišná.
Počítač A - IP: . . . . . . 146.102.68.99
Počítač B - IP: . . . . . . 146.102.69.99
Maska podsítě . . . . . . . 255.255.252.0
68 . . . . . . . . 0100 0100 69 0100 0101
252 . . . . . . . . 1111 1100 252 1111 1100
Součin. . . . . . . 0100 0100 0100 0100
Součin - hex. . . . 40 40
Součin - dec. . . . 68 68
Adresám IP 146.102.68.99 a 146.102.69.99 maskovaným 255.255.252.0 odpovídá stejná adresa sítě: 146.102.68.0; počítače A a B patří do stejné sítě. Bitové posloupnosti v součinech na pozicích 17 - 22 jsou shodné.
Bitové pozice 17 - 22 - vyznačení podsítě. Součin s první IP je 0100 01, s druhou IP je 0100 01.
Počítač A - IP: . . . . . . . 146.102.64.219
Počítač B - IP: . . . . . . . 146.102.68.99
Maska podsítě . . . . . . . . 255.255.252.0
Počítač A
255.255.252.0 . . . . . 1111 1111 1111 1111 | 1111 11|00 0000 0000
146.102.64.219. . . . . 1001 0010 0110 0110 | 0100 00|00 1101 1011
Součin. . . . . . . . . 1001 0010 0110 0110 | 0100 00|00 0000 0000
Součin - hex. . . . . . 92 . . . . 66 . . . | 40 . . | . 00
Součin - dec. . . . . . 146. . . . 102. . . | 64 . . | . 0|
Počítač B
255.255.252.0 . . . . . 1111 1111 1111 1111 | 1111 11|00 0000 0000
146.102.68.99 . . . . . 1001 0010 0110 0110 | 0100 01|00 0110 0011
Součin. . . . . . . . . 1001 0010 0110 0110 | 0100 01|00 0000 0000
Součin - hex. . . . . . 92 . . . . 66 . . . | 44 . . | . 00
Součin - dec. . . . . . 146. . . . 102. . . | 68 . . | . 0|
Bitové pozice 17 - 22 - vyznačení podsítě. Součin s první IP 0100 00, součin s druhou IP 0100 01.
Bitové posloupnosti v součinech na pozicích 17 - 22 jsou různé, proto jsou různé podsítě 146.102.64.0 a 146.102.68.0.
ipconfig [/all] | [/release [Adapter]] | [/renew [Adapter]]
Konfigurace protokolu IP systému Windows
Název hostitele . . . . . . . . . : j352h39
Primární přípona DNS. . . . . . . :
Typ uzlu . . . . . . . . . . . . : všesměrové vysílání
Povoleno směrování IP . . . . . . : Ne
WINS Proxy povoleno . . . . . . . : Ne
Prohledávací seznam přípon DNS. . : vse.cz
Adaptér sítě Ethernet Připojení k místní síti:
Přípona DNS podle připojení . . . : vse.cz
Popis . . . . . . . . . . . . . . : Intel(R) PRO/100 VE Network Connection #2
Fyzická Adresa. . . . . . . . . . : 00-16-76-64-63-7B
Protokol DHCP povolen . . . . . . : Ano
Automatická konfigurace povolena : Ano
Adresa IP . . . . . . . . . . . . : 146.102.174.187
Maska podsítě . . . . . . . . . . : 255.255.254.0
Výchozí brána . . . . . . . . . . : 146.102.175.253
Server DHCP . . . . . . . . . . . : 146.102.162.162
Servery DNS . . . . . . . . . . . : 146.102.16.1
146.102.16.2
Zapůjčeno . . . . . . . . . . . . : 20. února 2007 13:49:43
Zápůjčka vyprší . . . . . . . . . : 21. února 2007 1:49:43
TCP/IP, konfigurace stanice a diagnostické prostředky
o Ipconfig a zobrazení konfigurace tcp/ip. Příkaz ipconfig
o Ping a zjištění dostupnosti počítače. Příkaz ping
o Tracert a zjišťování cesty paketů. Příkaz tracert
o Nslookup a jmenná služba. Příkaz nslookup
o Netstat (W98, XP, Linux) Zobrazení stavu sítě z hlediska jedné stanice. Příkaz netstat
Existují sbírky odkazů na www stránky zabezpečující online diagnostiku v sítích TCP/IP. Z nich jsou stále funkční a aktualizované:
NetRodent: ad hoc IP tools
Web Based Web Based Network Tools
Prostředky z cizí domény umožňují pohled zvenčí, který se může lišit od pohledu zevnitř. Důvodem může být, že některé porty jsou při přístupu z cizí domény zakázány.
Pomocí Start/Spustit/msinfo32 dostaneme okno se systémovými informacemi. V části Programové prostředí/Služby lze najít označení a cestu ke klientům DHCP a DNS a způsob spuštění.
Syntaxe:
ping [-t] [-a] [-n počet] [-l velikost] [-f] [-i TTL] [-v TOS]
[-r počet] [-s počet] [[-j sezn_host] | [-k sezn_host]]
[-w čas_limit] cíl
Možnosti:
-t Opakovaně odesílat určenému hostiteli žádost o ozvěnu až
do ukončení. Zobrazit statistiku a pokračovat - Control+Break; Ukončit - Control+C.
-a Převádět adresy na názvy hostitelů.
-n počet Počet žádostí o ozvěnu, které se odešlou.
-l velikost Odeslat velikost vyrovnávací paměti.
-f V paketu nastavit příznak Nefragmentovat.
-i TTL Doba života (Time To Live).
-v TOS Typ služby (Type Of Service).
-r počet Zaznamenat cestu pro počet směrovačů.
-s počet Časová značka pro počet směrovačů.
-j sezn_host Seznam hostitelů, kterými má paket projít s možností libovolného počtu meziskoků mezi určenými hostiteli(volný režim).
-k sezn_host Seznam hostitelů, kterým musí paket projít v určeném pořadí bez možnosti meziskoků mezi určenými hostiteli (přísný režim).
-w čas_limit Časový limit v ms, po který se čeká na odpověď.
ping 127.0.0.1
... (smyčka – posílání paketů na vlastní počítač)
ping 0.0.0.0 ... nelze, cíl není platný
ping videoserver.vse.cz
ping 146.102.168.20 -n 100 ... sto žádostí o ozvěnu
ping lib.ucl.ac.uk -t ... opakování žádosti (přerušení z klávesnice)
ping j382h25.unet.vse.cz
ping nb371h04.znet.vse.cz > h:\ipnb371h04.txt ... výstup do souboru
ping www.nkp.cz
nebo ping 195.113.132.66
Odesílá se žádost o ozvěnu počítači nkp.cz [195.113.132.66] s 32 bajty dat:
Vypršel časový limit žádosti.
Vypršel časový limit žádosti.
Vypršel časový limit žádosti.
Vypršel časový limit žádosti.
Statistika příkazu Ping pro 195.113.132.66:
Paketů: Odesláno= 4, Přijato= 0, Ztraceno= 4 (100% ztráta)
Přibližná doba od odeslání požadavku do příchodu ozvěny v milisekundách:
Nejmenší= 0ms, největší= 0ms, průměrná= 0ms
Vzdálený počítač na žádost o echo neodpovídá. To neznamená, že nepracuje. Zasílání echa žádajícímu lze zabránit v konfiguraci. V našem případě lze pomocí prohlížeče získat nějakou stránku a ověřit činnost počítače.
Použití:
tracert [-d] [-h max_počet] [-j sezn_host] [-w doba] cíl_název
Možnosti:
-d Nepřevádět adresy na názvy hostitelů.
-h max_počet Nejvyšší počet přeskoků pro dosažení cíle.
-j sezn_host Seznam hostitelů, kterými má paket projít s možností
libovolného počtu přeskoků mezi určenými hostiteli(volný režim).
-w doba Čeká na odezvu z každé brány po dobu (v ms).
tracert www.cesnet.cz
Trasování směrování k www.cesnet.cz [195.178.64.44] s nejvýše 30 přeskoky:
1 <10 ms 1 ms 1 ms ca8500.vse.cz [146.102.64.253]
2 1 ms 1 ms 1 ms router.vse.cz [146.102.56.2]
3 2 ms 2 ms 1 ms geovc-1.pasnet.cz [195.113.68.157]
4 1 ms 1 ms 1 ms cesnet-geovc.pasnet.cz [195.113.69.54]
5 1 ms 2 ms 1 ms r1-r21-stm1.cesnet.cz [195.113.144.129]
6 1 ms 1 ms 1 ms r38-r1-fe.cesnet.cz [195.113.144.170]
7 2 ms 3 ms 2 ms www.cesnet.cz [195.178.64.44]
Trasování bylo dokončeno.
Může se stát, že cílový počítač není dosažitelný. Příkaz "tracert" využívá žádost o ozvěnu protokolu ICMP obdobně jako "ping". Filtrování paketů na směrovačích může způsobit, že paket nebude propuštěn na cestě k cíli. Úplnou cestu k cíli nezjistíme.
tracert www.nkp.cz
Trasování směrování k nkp.cz [195.113.132.66] s nejvýše 30 přeskoky:
1 1 ms 1 ms 1 ms ca8500-poslC.vse.cz [146.102.71.253]
2 <10 ms <10 ms <10 ms ca65rb-ge-c.net.vse.cz [146.102.25.85]
3 1 ms 1 ms 1 ms gezizkov-ca8500.net.vse.cz [146.102.25.1]
4 <10 ms <10 ms 1 ms gelf1-gezizkov.pasnet.cz [195.113.68.217]
5 <10 ms <10 ms <10 ms geruk-gelf1.pasnet.cz [195.113.67.33]
6 1 ms 1 ms <10 ms cesnet-geruk.pasnet.cz [195.113.69.58]
7 1 ms 1 ms 2 ms nkp-r21-prg.cesnet.cz [195.178.64.226]
8 * * * Vypršel časový limit žádosti.
...
13 * * * Vypršel časový limit žádosti.
Místo jména "www.nkp.cz" bylo použito základní jméno "nkp.cz". IP adresa přiřazená jménu cíle je odlišná od IP adresy posledně odpovídajícího počítače. Prohlížeč s IP adresou ověřovaného počítače určitě získá vyžádanou stránku. Cestu od "nkp-r21-prg.cesnet.cz" k "www.nkp.cz" jsme nezjistili. Paket s protokolem HTTP dále prošel, paket protokolu ICMP nikoli. Proč na ICMP požadavek odpověděly směrovače 1 - 7?
Zkusit: www.microsoft.com, www.kalimaya.co.id, www.internet.cr, www.abit.com.tw
Příkaz "nslookup" ve Windows XP Professional je složitější. Obsahuje podpříkazy. Můžeme zjišťovat IP adresy z doménových jmen a naopak. Argumentem může být označení jednoho počítače nebo subdomény. Odpovědi závisí rovněž na použitém DNS serveru, zda je odpovědným serverem pro danou doménu či nikoli.
Pomocí "set type=druh záznamu" lze nastavit zobrazení všech nebo určitého typu záznamu (RR) z databáze DNS, např. A, CNAME, MX, NS, PTR, SOA, aj. Detaily o záznamech jsou v rejstříku nápovědy XP pod heslem "záznamy o prostředcích".
1. Příkaz bez operandu zobrazí jméno a adresu výchozího DNS serveru a výzvu (>) k zadávání podpříkazů.
nslookup
Výchozí server: vse470.vse.cz
Address: 146.102.16.1
>
2. Standardní DNS server vyhledá adresu IP k doménovému jménu.
nslookup gama.vse.cz
Server: vse470.vse.cz
Address: 146.102.68.32
3. Na výzvu zadáme podpříkaz pro pomoc - help.
...
Příkazy: (identifikátory jsou uvedeny velkými písmeny, závorky [] označují
volitelné parametry)
NÁZEV - vytiskne informace o názvu (NÁZEV) hostitele či domény
s použitím výchozího serveru
NÁZEV1 NÁZEV2 - má stejnou funkci jako parametr výše, avšak parametr NÁZEV2
určuje název použitého serveru
help or ? - vytisknout informace o často používaných příkazech
set MOŽNOST - nastavit možnost MOŽNOST
all - vytiskne možnosti, aktu lní server a hostitele
[no]debug - vytiskne informace o ladění
[no]d2 - vytiskne podrobné informace o ladění
[no]defname - připojí n zev domény do všech dotaz
[no]recurse - bude požadovat rekurzivní odpověÔ na dotaz
[no]search - použije seznam hledání domény
[no]vc - vždy použije virtuální okruh
domain=NÁZEV - nastaví jako název domény NÁZEV
srchlist=N1[/N2/.../N6] - nastaví doménu N1 a seznam hledání
na hodnoty N1, N2, atd
root=NÁZEV - nastaví jako kořenový server server NÁZEV
retry=X - nastaví počet opakování na hodnotu X
timeout=X - nastaví počáteční časový limit na X sekund
type=X - nastaví typ dotazu (například A, ANY, CNAME, MX,
NS, PTR, SOA, SRV)
querytype=X - stejné jako u příkazu type
class=X - nastaví třídu dotazu
[no]msxfr - použije rychlý přenos zóny MS
ixfrver=X - aktuální verze, která má být použita v požadavku na přenos IXFR
server NÁZEV - nastaví výchozí server na NÁZEV. Použije aktuální
výchozí server
lserver NÁZEV - nastaví výchozí server na NÁZEV. Použije počáteční
server
finger [UŽIVATEL] - zobrazí údaje o volitelném uživateli UŽIVATEL na
aktuálním výchozím hostiteli
root - nastaví aktuální výchozí server do kořene
ls [opt] DOMÉNA [> SOUBOR] - zobrazí adresy v doméně DOMÉNA (volitelné:
výstup do souboru SOUBOR)
-a - zobrazí názvy v kanonickém tvaru a aliasy
-d - zobrazí všechny záznamy
-t TYP - zobrazí záznamy zadaného typu (například A, CNAME, MX,
NS, PTR)
view SOUBOR - seřadí výstupní soubor ls a zobrazí jej pomocí
programu pg
exit - ukončí program.
4. Zobrazení všech typů záznamů DNS set type=any pro subdoménu vse.cz.
...
> set type=any
> vse.cz
Server: vse470.vse.cz
Address: 146.102.16.1
...
5. Překlad doménového jména na IP adresu z reverzní domény in-addr.arpa
> set type=ptr
> 146.102.68.32
Server: vse470.vse.cz
Address: 146.102.16.1
32.68.102.146.in-addr.arpa name = nb371s02.znet.vse.cz
68.102.146.in-addr.arpa nameserver = vse470.vse.cz
68.102.146.in-addr.arpa nameserver = vse.vse.cz
vse.vse.cz internet address = 146.102.16.2
vse.vse.cz AAAA IPv6 address = 2001:718:1e02::2
vse470.vse.cz internet address = 146.102.16.1
6. Autoritativní (oprávněný) server domény a jeho překlady doménových jmen
Zjistíme DNS server pro doménu "seznam.cz" a přeložíme jeho prostřednictvím doménové jméno "www.seznam.cz".
Řešení
Primární DNS domény "seznam.cz" je počítač "ns.seznam.cz". Tuto nezaručenou odpověď poskytl server "vse470.vse.cz". Podpříkaz "server" nastaví výchozí server na novou hodnotu, autoritativní server domény "seznam.cz".
> server ns.seznam.cz
Výchozí server: ns.seznam.cz
Address: 82.100.0.150
> www.seznam.cz
Server: ns.seznam.cz
Address: 82.100.0.150
Název: www.seznam.cz
Address: 212.80.76.3
> type=any
Server: ns.seznam.cz
Address: 82.100.0.150
DNS request timed out.
timeout was 2 seconds.
*** Časový limit požadavku pro ns.seznam.cz vypršel.
7. Ukončení práce programu - podpříkaz exit
> exit
Zobrazení možností použití:
netstat -h
Zobrazí statistiku sítě Ethernet a současná síťová spojení TCP/IP.
NETSTAT [-a] [-e] [-n] [-s] [-p protokol] [-r] [interval]
-a Zobrazí všechna spojení a naslouchající porty.
-e Zobrazí statistiku ethernetu. Tento přepínač lze
kombinovat s přepínačem -s.
-n Zobrazí adresy a porty v číselném tvaru.
-p protokol Zobrazí spojení protokolu, určeného parametrem protokol;
protokol může být TCP nebo UDP. Pokud je použit s
parametrem -s pro výpis statistiky, protokol může být TCP,
UDP nebo IP.
-r Zobrazí směrovací tabulku.
-s Zobrazí statistiku jednotlivých protokolů. Výchozí
nastavení zobrazuje statistiku pro TCP, UDP a IP;
parametrem -p lze určit podmnožinu výchozího nastavení.
interval Znovu zobrazí zvolenou statistiku vždy po čase určeném
parametrem interval v sekundách. Stiskem CTRL+C vypnete
opětovné zobrazování statistiky. Pokud tak neučiníte,
informace o nastavení se vypíše znovu.
Ve Windows XP jsou k dispozici nové přepínače: [-b] [-o] [-v] [interval].
-b Zobrazí spustitelný soubor, který se podílí na vytvoření
jednotlivých připojení nebo naslouchajících portů. V některých
případech známé spustitelné soubory hostí
více nezávislých součástí a v těchto případech
je zobrazena posloupnost součástí podílejících se
na vytváření připojení nebo naslouchajících portů. V takových
případech je název spustitelného souboru zobrazen dole v hranatých
závorkách [] a nahoře je součást, kterou volal,
a tak to pokračuje až po protokol TCP/IP. Tato možnost
může být časově náročná a nezdaří se, pokud nemáte dostatečná
oprávnění.
-o Zobrazí ID procesu přiřazené každému připojení.
-v Při použití s parametrem -b zobrazí posloupnost
součástí podílejících se na vytváření připojení nebo
naslouchajícího portu pro všechny spustitelné soubory.
Netstat (bez operandů)
Aktivní spojení
proto lokální adresa vzdálená adresa stav
TCP nobody:1026 localhost.vse.cz:1027 ESTABLISHED
TCP nobody:1027 localhost.vse.cz:1026 ESTABLISHED
Netstat -s -a ... všechna spojení a naslouchající porty, statistika
Statistika protokolu IP
Počet přijatých paketů 1381
Přijato s chybami hlaviček 0
Přijato s chybami adresy 57
Předané datagramy 0
Přijato s neznámým protokolem 0
Zahozené přijaté pakety 0
Doručené přijaté pakety 1381
Požadavky na výstup 24
Zahozená směrování 0
Zahozené výstupní pakety 0
Nesměrovatelné výstupní pakety 1
Vyžadováno znovusestavení 0
...
Statistika ICMP
Přijato Odesláno
Zprávy 57 4
Chyby 0 0
Nedostupný cíl 0 1
Překročení času 0 0
Problémy parametru 0 0
Zpomalení toku dat 0 0
Žádost o přesměrování 0 0
Ozvěny 0 0
Odpovědi na ozvěnu 0 0
...
Statistika TCP
Aktivní otevření 2
Pasivní otevření 1
Neúspěšné pokusy o spojení 1
Původní spojení 0
Současná spojení 2
Přijaté segmenty 15
Odeslané segmenty 16
Opakovaně odeslané segmenty 3
Statistika UDP
Přijaté datagramy 1
Žádné porty 1365
Chyby příjmu 0
Odeslané datagramy 1
C:\>netstat -b
Aktivní připojení
Proto Místní adresa Cizí adresa Stav PID
TCP nb371h04:1029 sb.unet.vse.cz:524 NAVÁZÁNO 660
[winlogon.exe]
TCP nb371h04:1030 nbu.vse.cz:524 NAVÁZÁNO 660
[winlogon.exe]
TCP nb371h04:1031 nbu.vse.cz:524 NAVÁZÁNO 660
[winlogon.exe]
DNS
Spolupráce několika DNS serverů
1. Hanka otevře webový prohlížeč a zadá http://www.frantovafirma.cz
2. Lokální DNS server nezná tento název a oslovi DNS s IP adresou 1.1.1.1
3. DNS server 1.1.1.1 název zná a vrátí lokálnímu DNS IP adresu DNS serveru v doméně frantovafirma
4. DNS server 150.1.3.4 zopakuje svůj dotaz, který odešle na 199.1.1.3
5. DNS 199.1.1.3 vrátí DNS 150.1.3.4 IP adresu www.frantovafirma.cz
6. Lokální DNS vrátí požadovanou IP adresu 199.1.1.2 Hance
Wireshark – analyzátor protokolů
Program umí „odchytávat“ pakety na daném rozhraní (funkce Capture) a následně je zobrazovat.
Protokoly TCP/IP nižší úrovně
o Protokoly ARP, RARP, BootP, DHCP a ICMP
Otevřené porty
Příkaz ping obecně zjišťuje, zda počítač v síti pracuje. Otevřený port označuje spuštěnou službu.
K programům pro diagnostiku portů patří např. cports.exe, ipscan.exe, yaps.exe aj. Některé nezapisují do registru, takže je lze bez omezení instalovat i ve školním prostředí.
Počítač zasílající IP datagram nezná fyzickou adresu cílového počítače, ale zná jeho IP adresu. Pomocí protokolu ARP fyzickou adresu získá.
Zašle všeobecný požadavek se žádostí o zaslání fyzické adresy cílového počítače, aby mohl zaslat příslušný rámec. Z obeslaných odpoví ten, jehož IP adresa se shoduje s IP adresou cíle v požadavku; zašle svou fyzickou adresu. Žadatel pak vyšle rámec s fyzickou adresou cílového počítače a příslušnými daty.
Stanice sítě může dočasně ukládat dvojice internetových a fyzických adres v tabulce ARP. Její obsah lze zobrazit příkazem "arp".
Obsah tabulky zobrazený příkazem ″arp -a″.
>arp -a
Rozhraní: 146.102.68.99 on Interface 0x1000002
internetová adresa fyzická adresa typ
146.102.68.133 00-13-20-af-80-39 dynamický
146.102.71.253 00-14-a9-66-f1-c1 dynamický
Přidružení IP k fyzické adrese s trvalým záznamem do tabulky ARP.
>arp -s 192.64.64.1 00-00-b4-3f-e4-67
Rozhraní: 192.64.64.1 on Interface 0x2000003
internetová adresa fyzická adresa typ
192.64.64.1 00-00-b4-3f-e4-67 statický
Zrušení záznamu v tabulce ARP o určitém počítači: >arp -d 192.64.64.5
Je obrácený ARP: známe vlastní fyzickou adresu a při spouštění počítače potřebujeme přiřadit IP (např. bezdiskové stanice). Při spouštění zašle pracovní stanice požadavek na RARP server. Ten obsahuje databázi RARP. Věty databáze tvoří dvojice: fyzická adresa, IP adresa. Odpověď RARP: zašle IP.
Má obdobné funkce jako RARP. BootP předává žádající stanici kromě IP i další údaje.
Klientský počítač nezná svou IP adresu, ani adresu BootP serveru (fyzickou, IP). Požadavek zasílá na všeobecnou adresu 255.255.255.255 (všem počítačům této sítě), uvádí svou fyzickou adresu a IP adresu 0.0.0.0. Server na základě fyzické adresy klienta v odpovědi vrací přiřazenou IP adresu a další upřesňující údaje na základě svého konfiguračního souboru.
Nahrazuje BootP. Dynamicky přiděluje IP adresy a další parametry síťovým klientům. Správa IP adres se centralizuje na DHCP serveru. Klientské počítače mohou při spouštění získat svou IP adresu (jen na určitou dobu), pokud podporují protokol DHCP (služba DHCP).
Směrovací tabulka pracovní stanice
Příkaz ″route″ - Vypíše směrovací tabulky nebo její obsah modifikuje
>route print
Aktivní směrování:
Síťová adresa Maska Adresa brány Rozhraní Metrika
0.0.0.0 0.0.0.0 146.102.71.253 146.102.68.99 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
146.102.68.0 255.255.252.0 146.102.68.99 146.102.68.99 1
146.102.68.99 255.255.255.255 127.0.0.1 127.0.0.1 1
224.0.0.0 224.0.0.0 146.102.68.99 146.102.68.99 1
255.255.255.255 255.255.255.255 146.102.68.99 146.102.68.99 1
Poznámky:
· 1.řadek - výchozí trasa
· 2.řádek - síť zpětné smyčky
· 3.řádek - místní síť
· 4.řádek - místní adresa IP
· 5.řádek - adresy vícesměnového vysílání
· 6.řádek - adresa omezeného všesměrového vysíláání
Údaje příkazu ″ipconfig″ pro danou stanici
0 Ethernet adaptér :
Popis . . . . . . . . : Realtek RTL8029(AS) Ethernet Adapt
Fyzická adresa. . . . . . : 00-E0-7D-8B-AB-17
DHCP zapnuto. . . . . . . . : Ano
Adresa IP. . . . . . . . . : 146.102.68.99
Maska podsítě . . . . . . . . : 255.255.252.0
Výchozí brána . . . . . . : 146.102.71.253
Server DHCP . . . . . . . . : 146.102.42.42
Směrovací tabulka se vytváří automaticky na základě aktuální konfigurace protokolu TCP/IP v počítači. Každé trase odpovídá jeden řádek zobrazené tabulky. Počítač vyhledá směrovací tabulku pro položku, která nejpřesněji odpovídá cílové adrese IP.
Výchozí trasa je použita pouze v případě, že cílové adrese obsažené v datagramu IP neodpovídá žádná jiná hostitelská nebo síťová trasa. Výchozí trasa obvykle předává datagram IP (pro který nebyla nalezena žádná vyhovující trasa nebo explicitní místní trasa) na adresu výchozí brány směrovače v místní podsíti. Ve výše uvedeném příkladu výchozí trasa předává datagram směrovači s adresou brány 146.102.71.253.
Vzhledem k tomu, že směrovač, který odpovídá výchozí bráně, obsahuje informace o identifikátorech dalších podsítí IP obsažených v rámci rozsáhlejší struktury sítí TCP/IP, předává datagram dalším směrovačům, dokud není nakonec doručen směrovači IP připojenému k zadanému cílovému hostiteli nebo podsíti větší sítě.
Přenos souborů v Internetu
Obsah
· Principy protokolu ftp pro přenos souborů
· Anonymní a neanonymní služba přenosu souborů
· Typy souborů a režimy přenosu
Principy protokolu ftp pro přenos souborů
Protokol ftp stanoví pravidla komunikace mezi klientem a serverem. Jedná se o spojovanou spolupráci. Klient naváže spojení se serverem, předá uživatelské jméno a heslo. Po navázání spojení může probíhat práce s adresáři a soubory a přenos dat mezi klientem a serverem. Spojení se obvykle ukončí z podnětu klienta. Úsek komunikace mezi otevřením a uzavřením spojení se nazývá relace.
V protokolu ftp se užívá pro server dvou standardních portů (20, 21). Server na těchto portech očekává a vyřizuje požadavky klientů. Pakety na portu 21 slouží k řízení komunikace. Protokol je textově orientován a jeho příkazy jsou člověku srozumitelné. Port 20 slouží k vlastnímu přenosu dat. Porty klienta jsou dynamické a přiděluje je OS.
Podle toho, kdo spojení zahajuje, se rozlišuje aktivní a pasivní spojení. Přenos souborů probíhá v textovém a nebo binárním režimu v závislosti na typu souboru nebo potřebách uživatele. Chování serveru nebo klientského programu je určeno konfigurací. O komunikaci lze vést na obou stranách spojení protokol.
Aplikační protokol ftp využívá vrstvy TCP k zabezpečenému přenosu datových segmentů. Uživatel komunikuje s klientským programem pomocí příkazů, které připomínají příkazy pro práci se soubory. Klientský program překládá příkazy uživatele do příkazů platných v protokolu. Výňatek z dokumentu RFC 959 obsahuje seznam příkazů ftp protokolu.
Anonymní a neanonymní služba přenosu souborů
Anonymní servery umožňují přihlášení uživatele pomocí standardního uživatelského jména: anonymous nebo ftp. K zadání hesla obvykle stačí adresa elektronické pošty ve tvaru user@host.
Anonymní servery umožňují prohlížení veřejných adresářů (obvykle pub a jeho podadresáře) a stahování souborů na lokální počítač. Zpravidla nepovolují zápis do struktury souborů serveru.
Neanonymní servery vyžadují účet uživatele pro daný server. Skládá se z přihlašovacího jména a hesla. Určuje oprávnění uživatele k souborům a adresářům. Seznam účtů vytváří správce služby. Vzhledem k tomu, že heslo uživatele je přenášeno po síti nešifrovaně, je používání neanonymního FTP z bezpečnostních důvodů velmi problematické.
Typy souborů a režimy přenosu
V různých operačních systémech existují rozdíly v reprezentaci textových souborů. Textový soubor obsahuje tisknutelné znaky a některé řídicí znaky. Dělí se na řádky. Konce řádků jsou v různých OS zobrazeny odlišně. V DOS/Windows: CR+LF. UNIX: LF, MAC: CR.
Při přenosu textového souboru v režimu ascii dochází u různých operačních systémů k převodu zobrazení. V režimu binary se libovolný soubor přenáší beze změny zobrazení a délky. Binární přenos slouží např. k přenosu obrázků (např. typu .gif, .jpeg, aj), komprimovaných souborů, atp.
Klientské programy
Rozeznáváme textové a grafické klientské programy, a to podle typu uživatelského rozhraní. Mezi textově orientované klientské programy ftp patří např. i aktuální MS ftp klient Windows XP. V současné době převládají grafické klientské programy. K nim patří WS_FTP, FileZilla nebo interní grafický klient v programu WinCmd / TotalCmd. Prohlížeče stránek WWW bývají rovněž vybaveny interním klientským ftp programem. Data získaná z ftp serverů bývají prezentována v textové podobě doplněné o grafické prvky jako stránky html.
Grafické klientské programy ftp mají snadný způsob ovládání a podporují různé funkce. Usnadňují konfiguraci programu, umožňují vytvářet a ukládat profily relací a obecně automatizují co nejvíce funkcí. V konečném účinku nastavení jejich chování a ovládání zakrývá základní způsob komunikace a charakter služby. Textové klientské programy se ovládají méně snadno, avšak někdy bývá jejich repertoár funkcí bohatší. Generování výstupu v textovém tvaru je rychlejší než generování např. html stránky s obsahem adresáře. Vyžadují lepší porozumění protokolu přenosu souborů a TCP/IP vůbec.
Příkazy programu MS ftp
Tlačítkem Start lze vyvolat hlavní menu MS Windows XP Professional a v něm příkazem aktivovat příkazový režim Windows XP. Na cvičení budeme užívat anonymní ftp servery VŠE: ftp.vse.cz, beta.vse.cz, gama.vse.cz.
Spuštění a ukončení programu MS ftp
V okně Příkazový řádek spustíme klientský program c:>ftp (bez operandu) nebo c:>ftp hostitel. Hostitel znamená IP adresu nebo jméno ftp serveru. Po spuštění programu se zobrazí výzva ve tvaru ftp>. Relaci a klientský program ukončí příkazy ftp>bye nebo exit. Příkaz ftp lze v OS WinXP spustit i s parametry. Jejich přehled a význam lze získat příkazem ftp -h
Otevření a ukončení spojení
Open hostitel - otevře spojení se vzdáleným počítačem. Close - uzavře aktuální spojení a uživatele odhlásí.
Zobrazení nápovědy v programu ftp
Přehled dostupných podpříkazů ftp lze získat příkazem help (?) bez operandu. Nápovědu pro jeden příkaz vyvoláme ftp>help název_příkazu. Příklad: ftp>help user. Odeslat informace o novém uživateli
Nápověda obsahuje jen popis významu příkazů, nikoli jejich syntaxi.
ftp> help
Příkazy lze zkracovat. Příkazy:
! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
Příkazy pro práci se systémem souborů
Je nutné rozlišovat mezi místním a vzdáleným adresářem/souborem. Níže uvedené příkazy mají význam a ovládání obdobné jako v OS DOS a UNIX.
Nejužívanější příkazy
pwd, dir, ls, cd, lcd, get, put, mget, mput.
Příkaz pwd zobrazí jméno pracovního adresáře vzdáleného systému. Příkazy dir, ls zobrazí obsah vzdáleného adresáře.
Příklad ukazuje výpis adresáře na unixovém ftp serveru (zkráceno) příkazem dir (bez operandu).
-rw-r--r-- 1 ftpadm ftpadm 747 May 29 1999 README.uploads
-rw-r--r-- 1 ftpadm ftpadm 10763 Dec 23 1999 ROADMAP.html
-rw-r--r-- 1 ftpadm ftpadm 6247 Dec 23 1999 ROADMAP.m4
drwxr-xr-x 13 ftpadm ftpadm 4096 Apr 4 1997 atari
drwxr-xr-x 21 ftpadm ftpadm 4096 Jul 13 2004 bibliography
drwxr-xr-x 5 ftpadm ftpadm 45 Sep 10 1997 diplomky
-rw-r--r-- 1 ftpadm ftpadm 882269 Sep 30 04:50 du-sort.gz
drwxr-xr-x 7 ftpadm ftpadm 4096 Apr 16 2004 gnu
drwxr-xr-x 3 ftpadm ftpadm 692224 Sep 28 17:10 internet-drafts
Výpis obsahu vzdáleného adresáře může být rozsáhlý a vzniká problém jeho přerušení nebo přesměrování.
K zastavení výpisu na obrazovku lze vyzkoušet vstup z klávesnice
· Ctrl-s
· Ctrl-Pause
· aj.
Přesměrování výpisu obsahu pracovního vzdáleného adresáře na místní disk zajistí příkaz dir s dvěma operandy.
dir * obsah.txt
Aktuální nastavení místního pracovního adresáře zobrazí příkaz: lcd (bez operandu). Místním adresářem je na začátku aktuální adresář platný při spuštění ftp klienta.
Získání vzdáleného souboru a skupiny souborů - příkazy get/mget
Příklady: get rfc2991.txt, mget rfc299?.txt
Získání skupiny vzdálených souborů závisí na aktivaci zástupných znaků ( *, ?) příkazem glob (přepínač). On znamená jejich uplatnění; off jejich potlačení; budou se chápat jako běžné znaky.
Přenos soubor; může probíhat s výzvou. Výzva se nastaví příkazem prompt. Odpovědi na výzvu: y (yes) - další soubor, n (no) - nepřenášet. Ukončení přenosu: zkusit Ctrl-C.
Příklad: Přenos textového souboru v režimu ascii a binary ze serveru beta.vse.cz 24.2.2003
ftp> ascii
200 Type set to A.
ftp> get rfc3455.txt
200 PORT command successful.
150 Opening ASCII mode data connection for rfc3455.txt (79620 bytes).
226 Transfer complete.
ftp: 81527 bajtů přijato do 0.55Vteřin 148.23kB/s.
ftp> binary
200 Type set to I.
ftp> get rfc3455.txt
200 PORT command successful.
150 Opening BINARY mode data connection for rfc3455.txt (79620 bytes).
226 Transfer complete.
ftp: 79620 bajtů přijato do 0.49Vteřin 162.49kB/s.
Zápis souboru(ů) na server - příkazy put/mput
Příkazem put jméno_souboru se odešle soubor na vzdálený počítač, příkazem mput více souborů.
Příklady: put rfc2991.txt, mput rfc299?.txt
Při zápisu více souborů je nutné aktivovat zástupné znaky. Přenos může probíhat s výzvou. Ukončení přenosu: zkusit Ctrl-C.
Přechody mezi klientským programem a místním OS
Příkaz ! umožní vstup do místního OS bez přerušení klientského programu. Poté lze používat všechny příkazy místního OS. Příkaz exit vrací řízení klientskému programu.
Archivy souborů
České: ftp://ftp.cesnet.cz ftp://ftp.muni.cz ftp://ftp.cvut.cz ftp://ftp.vslib.cz ftp://ftp.zcu.cz ftp://ftp.ruk.cuni.cz
Zahraniční: ftp://ftp.ripe.net ftp://ftp.funet.fi ftp://ftp.sunet.se
Přílohy
Interní format FTP příkazů
RFC 959
File Transfer Protocol
USER <SP> <username> <CRLF>
PASS <SP> <password> <CRLF>
ACCT <SP> <account-information> <CRLF>
CWD <SP> <pathname> <CRLF>
CDUP <CRLF>
SMNT <SP> <pathname> <CRLF>
QUIT <CRLF>
REIN <CRLF>
PORT <SP> <host-port> <CRLF>
PASV <CRLF>
TYPE <SP> <type-code> <CRLF>
STRU <SP> <structure-code> <CRLF>
MODE <SP> <mode-code> <CRLF>
RETR <SP> <pathname> <CRLF>
STOR <SP> <pathname> <CRLF>
STOU <CRLF>
APPE <SP> <pathname> <CRLF>
ALLO <SP> <decimal-integer>
[<SP> R <SP> <decimal-integer>] <CRLF>
REST <SP> <marker> <CRLF>
RNFR <SP> <pathname> <CRLF>
RNTO <SP> <pathname> <CRLF>
ABOR <CRLF>
DELE <SP> <pathname> <CRLF>
RMD <SP> <pathname> <CRLF>
MKD <SP> <pathname> <CRLF>
PWD <CRLF>
LIST [<SP> <pathname>] <CRLF>
NLST [<SP> <pathname>] <CRLF>
SITE <SP> <string> <CRLF>
SYST <CRLF>
STAT [<SP> <pathname>] <CRLF>
HELP [<SP> <string>] <CRLF>
NOOP <CRLF>
USER pinkas
331 User login OK, waiting for password
PASS ******
230-Quota credit: 10000000 Bytes
230 User password OK, CesarFTP server ready
pwd
257 "/"
PASV
227 Entering Passiv Mode (192,64,64,1,8,0)
CWD chyby
250 Directory change OK
PWD
257 "/chyby"
LIST
150 Data connection created for directory listing
TYPE A
200 Type successfully set
NLST
150 Data connection created for directory listing
226-Quota credit: 10000000 Bytes
226 Transfer successfully achieved
QUIT
221 Good Bye
S použitím datového portu (192,64,64,1,8,0) musíme vytvořit nové telnetové
spojení s počítačem 192.64.64.1 na port 8*256 + 0*1= 2048, tj. spojení na
ftp server. Spustíme novou instanci příkazového řádku a novou instanci telnetu.
FTP server odešle obsah adresáře /chyby do telnetového okna po
navázání spojení. Současně zapíše na řídící kanál zprávu o výsledku přenosu
(226 Transfer successfully achieved).
![příkaz] |
provede příkaz na lokálním počítači |
? [příkaz] |
bez operandu zobrazí přehled příkazů, s operandem zobrazí nápovědu zvoleného příkazu |
ascii |
nastaví ASCII režim přenosu |
bell |
nastavení zvukových upozornění |
binary |
nastaví binární režim přenosu |
bye |
ukončí ftp program |
glob on|off |
on - umožňuje užívání zástupných znaků při přenosu více souborů; off - potlačuje tuto funkci |
hash |
zobrazování průběhu přenosu - znak hash za každých 1KB přenesených znaků |
help [příkaz] |
bez operandu zobrazí přehled příkazů, s operandem zobrazí nápovědu zvoleného příkazu |
pwd |
zobrazí pracovní adresář vzdáleného počítače |
cd [adresář] |
změní pracovní adresář na vzdáleném počítači |
lcd |
bez operandu zobrazí aktuální adresář, jinak změní pracovní adresář na lokálním disku |
dir [vzdálený adresář] |
vypíše obsah adresáře |
ls [vzdálený adresář] |
vypíše obsah vzdáleného pracovního adresáře; lze jej pozastavit kl. PAUSE a opět spustit kl. ENTER |
mkdir [jméno adresáře] |
vytvoří nový adresář na vzdáleném počítači |
rmdir [jméno adresáře] |
zruší adresář |
bget jm. souboru |
binárně přenese a uloží na lokálním počítači soubor ze vzdáleného počítače |
get, recv jm. souboru |
přenese a uloží na lokálním počítači soubor ze vzdáleného počítače |
mget jméno vzdáleného souboru se zástupnými znaky (*) |
přenese a uloží na lokálním počítači více souborů ze vzdáleného počítače |
put, send [soubor] |
odešle soubor na vzdálený počítač |
mput jméno lokálního souboru se zástupnými znaky (*) |
odešle více souborů z lokálního na vzdálený počítač |
delete [soubor] |
smaže soubor na vzdáleném počítači |
mdelete [soubor] |
smaže více souborů na vzdáleném počítači |
close |
zruší spojení |
prompt |
nastaví interaktivní dotaz na provedení každé části vícenásobného příkazu (např. mget) |
status |
zobrazí aktuální nastavení parametrů a statistický přehled přenosů |
quit |
ukončí ftp program |
Vzdálené přihlášení, přístup ke katalogům a databázím
Obsah
o Principy spolupráce klienta a serveru v protokolu telnet
o Řídící znaky klávesnice a obrazovky
o Vyjednávání o parametrech relace
o Klientské programy, jejich funkce a příkazy
o Využívání vzdáleného přihlášení
o Úlohy
Principy spolupráce klienta a serveru v protokolu telnet
V terminálových sítích se využívala specializovaná zařízení složená z klávesnice a obrazovky k místnímu nebo vzdálenému připojení ke komunikačnímu portu centrálního počítače. Nazývala se terminál. Výpočet probíhal na centrálním počítači a terminál sloužil k vkládání a přenosu příkazů a příjmu výsledků zpracování.
K ovládání klávesnice a obrazovky terminálu sloužily jednoduché instrukce závislé na výrobci terminálu. Příkladem je instrukce pro výmaz obrazovky od pozice kurzoru do konce řádky. Kódy instrukcí se často lišily podle typu terminálu.
S příchodem personálních počítačů byly terminály nahrazovány mikropočítači. Existence procesoru umožňovala vytváření programů pro napodobení funkcí terminálu v závislosti na jeho typu. Takové napodobování klasického terminálu pomocí mikropočítače se jmenuje emulace. Emulace zajistila, že se nemusely měnit úlohy na centrálním počítači. Nejčastější jsou emulace terminálů typu VT-52, VT100, DEC220, Tektronix, WYSE, aj.
Abstrakcí společných rysů skutečných terminálů byl vytvořen síťový virtuální terminál (NVT - network virtual terminal). Sada příkazů pro NVT představuje společný základ, který je možno v konkrétním případě rozšířit o příkazy specifické pro konkrétní typ terminálu. Klient a server musí vyjednávat o parametrech vzájemné komunikace, aby se rozšíření mohlo uplatnit. Klient obvykle umí emulovat několik typů terminálu a servery telnetu v UNIXu obsahují databázi konkrétních terminálů o rozsahu několika stovek typů. Typ terminálu je základní parametr komunikace mezi klientem a serverem telnetu.
Klient zadává požadavky serveru, který je očekává a vyřizuje na standardním portu 23. Na něm může pracovat i nestandardní server, ovšem musí umět protokol telnet. Nestandardní server může pracovat i na jiném portu než 23, avšak tento port nesmí být rezervovaný pro jiné aplikace
Na serveru je zřízen seznam účtů. Každý účet zahrnuje přihlašovací jméno a heslo. S účtem jsou spjata přístupová práva k souborům a adresářům a práva spouštění programů. Telnet server mívá vlastní správu hesel nebo může integrovat správu hesel operačního systému (např. Windows NT).
Po připojení klienta k serveru proběhne přihlášení. Poté může klient zadávat serveru jednotlivé příkazy, např. příkazy operačního systému vzdáleného počítače. Odpojením od serveru se spojení ukončí. Doba mezi připojením a odpojením se nazývá relace.
Klientský program umožňuje přepínání mezi režimem relace a příkazovým režimem. V příkazovém režimu lze upravovat parametry činnosti klientského programu a ovládat průběh relace. Příkazový režim se rozpozná podle výzvy "telnet>" u textových klientů. Grafický klient umožňuje aktivovat speciální okna.
Protokol telnet je textový. Příkazy jsou jednotlivé znaky nebo krátké sekvence znaků. Znaky a sekvence mají význam určený specifikací protokolu. Hodnoty znaků řídících komunikaci mají symbolické označení.
Protokol telnet umožňuje volbu zobrazení vstupů z klávesnice místního počítače. Rozlišuje se místní a vzdálené echo. Není-li nastaveno místní echo, pak klient zasílá každý zapsaný znak z klávesnice telnet serveru a ten jej vrací zpátky (vzdálené echo) a klientský program jej potom zobrazí. Výhodou je, že uživatel vidí, jaký znak server přijal. Je-li nastaveno místní echo, je znak zapsaný na místním počítači ihned zobrazen. Při zapnutém místním a vzdáleném echu dochází ke zdvojování znaků. Podle aplikace je třeba zapnout/vypnout místní echo.
Režim okamžitého odesílání znaku z klávesnici na vzdálený počítač se nazývá znakový. Má své nevýhody a proto existuje ještě režim řádkový. V něm se znaky zapisují do vyrovnávací paměti klávesnice, lze je editovat a odeslat na vzdálený počítač až po stisknutí <ENTER> (odeslání celé řádky).
Řídící znaky klávesnice a obrazovky
Různé terminály mají různé schopnosti řízení kurzoru a vůbec provádění základních operací s obrazovkou. Mezi základní operace patří: posun kurzoru o sloupec vlevo a výmaz znaku, přechod kurzoru na další pozici tabulátoru, konec řádky (posun kurzoru o řádku níž), návrat vozíku na levý okraj řádky, vymazání obrazovky. Dalšími jsou mazání znaku a řádky, rolování obsahu obrazovky nahoru a dolů.
Složitější operace se vyjadřují pomocí změnových posloupností. Změnu signalizuje netisknutelný znak s hodnotou 27 v kódu ASCII (escape - ESC) a za ním následuje dohodnutá posloupnost znaků. Celý řetězec je pak povelem pro obrazovku k vykonání určité akce.
Pohyb kurzoru řízený neprogramovatelným terminálem |
|
Znak |
Činnost |
Ctrl-H |
Posun kurzoru o sloupec vlevo s výmazem znaku |
Ctrl-I |
Přechod kurzoru na další pozici tabulátoru |
Ctrl-J |
Konec řádky (posun kurzoru o řádku níž) |
Ctrl-L |
Návrat vozíku na levý okraj řádky |
Ctrl-M |
Vymazání obsahu obrazovky |
Jestliže terminál neumí interpretovat posloupnosti znaků začínající znakem ESC a zobrazí jen několik sekvencí začínajících znakem CTRL, pak se nazývá neprogramovatelný terminál.
Vyjednávání o parametrech relace
Po navázání spojení mezi klientem a serverem proběhne vyjednávání o parametrech komunikace. Klient/server si přeje používat (will) nějakou volbu a příjímací strana souhlasí (do) nebo nesouhlasí (dont) s navrženou volbou. Odesilatel si přeje, aby příjemce použil nějakou volbu (do) a příjemce souhlasí (will) nebo odmítá (wont). Odesilatel si přeje nepoužívat nějakou volbu (wont) a příjemce potvrzuje svůj souhlas (dont). Odesilatel si přeje, aby příjemce nepoužíval nějakou volbu (dont) a příjemce potvrzuje, že volbu nepoužije (wont).
V ukázce si klient jako odesilatel přeje, aby příjemce (server) používal echo. Server jako odesilatel říká, že souhlasí (will echo).
2003-03-06 16:14:22 Connecting to 146.102.64.30 port 23
2003-03-06 16:14:22 client: WILL NAWS
2003-03-06 16:14:22 client: WILL TSPEED
2003-03-06 16:14:22 client: WILL TTYPE
2003-03-06 16:14:22 client: WILL NEW_ENVIRON
2003-03-06 16:14:22 client: DO ECHO
2003-03-06 16:14:22 client: WILL SGA
2003-03-06 16:14:22 client: DO SGA
2003-03-06 16:14:22 server: DO TTYPE
2003-03-06 16:14:22 server: DO TSPEED
2003-03-06 16:14:22 server: DO XDISPLOC
2003-03-06 16:14:22 client: WONT XDISPLOC
2003-03-06 16:14:22 server: DO NEW_ENVIRON
2003-03-06 16:14:22 server: DO NAWS
2003-03-06 16:14:22 client: SB NAWS 80,24
2003-03-06 16:14:22 server: WILL ECHO
2003-03-06 16:14:22 server: DO SGA
2003-03-06 16:14:22 server: WILL SGA
. . .
2003-03-06 16:14:22 server: DO ECHO
2003-03-06 16:14:22 client: WONT ECHO
2003-03-06 16:14:22 server: WILL STATUS
2003-03-06 16:14:22 client: DONT STATUS
2003-03-06 16:14:22 server: DO LFLOW
2003-03-06 16:14:22 client: WONT LFLOW
2003-03-06 16:40:26 client: SB NAWS 100,35
Klientské programy, jejich funkce a příkazy
Existují klientské programy telnetu textově a graficky orientované. V prostředí DOS byl v minulosti oblíbený NCSA klient. Byl volně šířen, včetně zdrojových textů programu. V prostředí Windows jsou součástí operačního systému textově zaměřené klientské programy (MS telnet).
Z grafických klientů patří k nejoblíbenějším Putty a TeraTerm. Programy se liší v některých funkcích a stupněm konfigurovatelnosti. Uložení konfiguračních souborů bývá odlišné: dříve se používaly soubory typu .ini, dnes se využívá registr Windows. Vzhledem k odlišnostem klientských programů je nutno konfiguraci věnovat pozornost.
Níže jsou uvedeny nejčastější součásti konfigurace klienta.
o Typ terminálu (ANSI/VT100, VT220, VT320, aj.) a jeho emulace (místní a vzdálené echo). Nastavení klávesnice (mazání znaku vlevo, kurzorové klávesy a numerická klávesnice: normální režim/aplikace).
o Definice relace (hostitel, port, jméno relace, označování, ukládání a vyvolávání relací, protokolovací soubor).
o Okno (výška a šířka, vyrovnávací paměť a přetáčení, tvar kurzoru, převody znaků - kódové stránky, barvy).
o Spojení telnet (identifikace typu terminálu, automatické udržování spojení, řízení spojení a vyjednávání).
o Spojení SSH: volba verze a metody šifrování, nastavení autentifikace).
o Změna konfigurace za chodu programu a příkazy ovlivňující jeho okamžitou činnost.
Textový klient MS telnet XP
Po vyvolání klienta telnetu z příkazového řádku bez udání vzdáleného počítače přejde program do příkazového režimu. Pomocí příkazu "help" zobrazíme přehled dostupných příkazů. Syntaxe je podrobně popsána v Centru pro nápovědu a odbornou pomoc.
Vítá vás program Microsoft Telnet Client.
Řídicí znak je CTRL+)
Microsoft Telnet> help
Příkazy mohou být zadány ve formě zkratek. Podporované příkazy:
c - close Uzavře aktuální připojení.
d - display Zobrazí pracovní parametry.
o - open hostitel [port] Otevře připojení k hostiteli (výchozí port 23).
q - quit Ukončí program telnet.
set - set Nastaví možnosti (pro seznam možností zadejte 'set ?' ).
sen - send Odešle řetězce serveru.
st - status Vytiskne stavové informace.
u - unset Zruší nastavení možností.
(pro seznam možností zadejte 'unset ?')
?/h - help Zobrazí nápovědu.
Microsoft Telnet>
Nastavení parametrů konfigurace telnetu zabezpečuje příkaz "set", zrušení hodnot parametrů provádí příkaz "unset". Nabídka možností příkazu set:
Microsoft Telnet> set ?
bsasdel Klávesa Backspace bude odeslána jako delete
crlf Režim New line - Klávesa Enter odešle CR a LF
delasbs Klávesa Delete bude odeslána jako backspace
escape x x je znak, použitý k vyvolání příkazové ř. klienta programu Telnet
localecho Zapne místní odezvu.
logfile x x je aktuální soubor protokolování
logging Zapnout protokolování
mode x x je konzola nebo proud
ntlm Zapnout ověřování NTLM.
term x x je ansi, vt100, vt52, nebo vtnt
Ukážeme,jak navázanou relaci opustit, otevřít protokolovací soubor, zahájit protokolování, vrátit se k relaci, přejít do klientského programu, protokolování ukončit a vrátit se k relaci.
CTRL+)
set logfile h:\mstelnet
set logging
<ENTER>
CTRL+)
unset logging <ENTER>
Grafický klient Putty
Putty je mocný
nástroj vzdáleného přístupu k počítačům v sítích TCP/IP. Umožňuje otevřenou i
šifrovanou komunikaci. Je bohatě konfigurovatelný. Kromě spojení na portech
Využívání vzdáleného přihlášení
Přehled:
o osobní výpočty a zpracování dat na vzdáleném počítači,
o knihovní katalogy,
o jiné aplikace (např. zprávy o počasí).
Zpracování dat na vzdáleném počítači
Prostřednictvím protokolu telnet lze zpracovávat data na vzdáleném počítači, jímž bývá unixový počítač. Ukázka obsahuje výpis procesů na počítači beta. Jedním z čekajících procesů je také také proces telnet serveru - in.telnetd.
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2005.10.20 16:10:59 =~=~=~=~=~=~=~=~=~=
Red Hat Linux release 5.0 (Hurricane)
Kernel 2.0.36 on an i586
beta.vse.cz login: pinkas
Password:
[pinkas@beta pinkas]$ ps -ax
PID TTY STAT TIME COMMAND
1 ? S 0:02 init [3]
3 ? SW< 0:00 [kswapd]
4 ? SW 0:00 [md_thread]
5 ? SW 0:00 [md_thread]
23 ? S 0:00 /sbin/kerneld
166 ? S 0:00 /usr/sbin/atd
177 ? S 0:00 crond
232 ? S 0:00 gpm -t ms
243 ? S 0:00 httpd
260 ? S 0:00 smbd -D
269 ? S 0:26 nmbd -D
272 1 S 0:00 /sbin/mingetty tty1
. . .
277 6 S 0:00 /sbin/mingetty tty6
279 ? S 0:00 update (bdflush)
2090 ? S 0:00 in.telnetd
1704 ? S 0:00 httpd
1761 ? S 0:00 httpd
. . .
2112 p0 R 0:00 ps -ax
[pinkas@beta pinkas]$ exit
Využívání knihovních katalogů
Po připojení k vzdálenému hostiteli je uživatel většinou vyzván k zadání přihlašovacího jména a hesla, ale jsou i případy, kdy tyto údaje poskytovat nemusí a systém ho chápe jako hosta.
Většina aplikací nabízí uživateli globální a lokální nápovědu. Globální obsahuje obecné informace o fondu, o dotazovacím jazyku, o bázích dat a jejich struktuře, o výstupních formátech zobrazení dat, ale i době provozu, aj. Lokální nápověda přináší informace většinou o jednotlivých příkazech.
Současné aplikace jsou velmi rozvinuté a poskytují uživateli mnoho funkcí. Mezi ně patří zasílání vyhledaných záznamů elektronickou poštou, poskytnutí pracovního prostoru na hostitelském počítači, statistika využívání času, možnost nastavení uživatelských parametrů i pro anonymního uživatele, prohlížení rejstříků polí a vyhledávání podle zvolených kritérií. Obsahová charakteristika dokumentů se vyjadřuje pomocí selekčních jazyků: klíčová slova, předmětová hesla, tezaurus, klasifikace (MDT, DDC), jiné.
Přístupy ke knihovním katalogům jsou různého druhu:
o telnet,
o www,
o specializovaný klient:
o firemní – např. Tinlib (dostupný jen v lokální síti),
o veřejný – např. klient Z39.50 se jménem ICONE (Inter-Cross OPAC Network Europe)
Vybrané knihovny dostupné v protokolu telnet
ČVUT Praha
o telnet anezka.vc.cvut.cz nebo 147.32.240.22
o login: anonym nebo library
o Zadejte typ terminálu: 2
o Ukončeni relace: 9
Katalog "anezka" patří k nejstarším online katalogům v ČR. Nabízí možnost výběru vhodného kódování češtiny pomocí testovacích řetězců.
Zahraničí
o Oxford University: telnet library.ox.ac.uk
Vzdálená plocha a vzdálené přihlášení
Existují protokoly, které umožňují přenos požadavků a odpovědí mezi klientem a serverem nejen v textové, ale i v grafické podobě. Lze přenášet grafický obsah vzdálené obrazky na místní obrazovku a spouštět z obrazu na místní obrazovce vzdálené programy. Podobně jako v telnetu je třeba zadat přihlašovací jméno a heslo.
Volně šiřitelným produktem (klient/server) je aplikace VNC (Virtual Network Computing). Uživatel komunikuje se serverem pomocí speciálního prohlížeče, který je součástí distribuce VNC. Existuje další možnost komunikace se serverem VNC pomocí webového prohlížeče. Server VNC obsahuje malý HTTP server, který uživateli zašle aplet. Aplet pracuje v prostředí www prohlížeče a komunikuje se serverem VNC na portu 5800, 5801, atd. v závislosti na počtu otevřených obrazovek.
V prostředí Windows zabezpečuje přístup ke vzdálené ploše počítače v síti serverová aplikace "vzdálená plocha" a klientský program "připojení ke vzdálené ploše". Tyto produkty společnosti Microsoft realizují protokol RDP (remote desktop protocol).
Literatura
1. Dostálek, L. - Kabelová, A. Aplikační protokoly.
2. Sinclair, I. - Communications with the Amstrad PC. Oxford, BSP Professional Books 1988. 138 s.
3. Williams, P. - URL: Video Display Terminal Information - VT100.net.
4. VT100.net: Digital VT100 User Guide.
5. Real VNC
Elektronická pošta a elektronické konference
Obsah
o Textová povaha poštovních zpráv
o (E)SMTP server, poštovní klient a jejich komunikace
o Typy adres příjemce: úplné a zkrácené jméno hostitele
o Protokoly POP3, IMAP, NN a elektronické konference
o Zabezpečení poštovní komunikace
Textová povaha poštovních zpráv
Hlavní poštovní protokoly SMTP, IMAP a POP3, a obdobně jejich zabezpečené verze, jsou textově orientované a k přenosu využívají protokol TCP. Tato skutečnost není patrná, když se používají poštovní klienti s grafickým rozhraním. I volně přístupné webové poštovní systémy mívají prostředky pro zobrazení dopisu v textové formě. Jejich ikony nebývají zvýrazněné, návody je nezdůrazňují a někdy jsou vázané na vyskakovací okna.
Protokol SMTP pro odesílání pošty neobsahuje přísná pravidla chránící poštovní zprávy před zneužitím a falšováním, takže může docházet k nepravostem. Dopis obsahuje hlavičky "received", které dovolují i běžnému uživateli vystopovat cestu dopisu, poznat IP a název předávajících serverů, atp. Je zřejmé, že tento tvar dopisu je užitečný hlavně v problémových situacích.
Tvar dopisu
Zkrácená ukázka představuje textový tvar dopisu odeslaného z webového rozhraní www.quick.cz na poštovní server veverka.vse.cz. Hlavičky "received" čtené zdola nahoru ukazují cestu dopisu od počátku do cíle. Návratová cesta "Return-Path:" je nastavena na účet z domény quick.cz. Jediná řádka zprávy v češtině je pro přenos kódována.
Return-Path: <opinkas@quick.cz>
Received: from vse.vse.cz ([146.102.16.2] verified)
by vse.cz (CommuniGate Pro SMTP 4.1.8)
with ESMTP id 21914077 for ypinkas@veverka.vse.cz; Sat, 27 May 2006 11:46:18
+0200
...
...
Received: from iol.cz (ims-2.iol.cz [194.228.2.89])
by smtp-out2.iol.cz (Internet on Line ESMTP server) with ESMTP id A3A5733E67;
Sat, 27 May 2006 11:46:17 +0200 (CEST)
Received: from [192.168.30.65] (Forwarded-For: [146.102.64.219]) by
ims-2.iol.cz (mshttpd); Sat, 27 May 2006 11:46:17 +0200
From: <opinkas@quick.cz>
To: ypinkas@vse.cz
Message-ID: <b10da3fb110a21.b110a21b10da3f@iol.cz>
Date: Sat, 27 May 2006 11:46:17 +0200
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.21 (built Sep 8 2003)
MIME-Version: 1.0
Content-Language: cs
Subject: =?iso-8859-2?Q?p=F8=EDm=E9_spojen=ED?=
Priority: normal
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Test p=F8=EDm=E9ho spojen=ED=3A webmail quick a veverka resp=2E kotelna=2E
(E)SMTP server, poštovní klient a jejich komunikace
Přenos zprávy z klientského SMTP na serverový SMTP
SMTP protokol zahrnuje různé procedury: zahájení a ukončení relace, poštovní transakci, aj. My budeme ručně realizovat zahájení relace, poštovní transakci a ukončení relace. Poštovní transakce má tři kroky: příkaz MAIL, jeden nebo více příkazů RCPT a příkaz DATA. Ukončení relace zajišťuje příkaz QUIT.
Režim "raw" pro ruční realizaci textových protokolů v programu PuTTY
Pomocí programu MS telnet nebo PuTTY lze studovat práci klienta a serveru SMTP. Příkazy protokolu SMTP lze zapisovat ručně. Je nutné pracovat v režimu "raw", který znamená, že jsou na vzdálený systém zasílány všechny znaky vložené na klávesnici, a to i znaky editační, jako např. výmaz znaku. Lze též říci, že tato volba neoznačuje žádný protokol, protože jde o holé TCP. Celou relaci lze protokolovat a tak získat doklad o komunikaci, včetně chybně zapsaných znaků a oprav. Existenci vytvořené relace lze ověřit příkazem netstat -p tcp.
Osvědčuje se, když si v textovém souboru (se správným kódováním) připravíme příkazy, které budeme do interaktivního spojení vkládat. Zvolený text nejdříve přeneseme ze souboru do schránky a potom ze schránky do interaktivní relace stisknutím pravého tlačítka myši.
Podmínkou úspěšnosti je dobrá znalost protokolu SMTP, jeho příkazů a odpovědí. Protokol SMTP je vysoce interaktivní, přináší dobrou diagnostiku chyb a umožňuje nové zadání příkazů, aniž by bylo nutné již navázané spojení uzavřít. Když uděláme chybu během transakce, stačí zadat příkaz RSET, kterým se vynulují dosavadní hodnoty proměnných na straně serveru, a můžeme začít novou transakci MAIL FROM:. Založené TCP spojení nebylo zrušeno a dále trvá.
Pomocí poštovního klienta se přesvědčíme, zda byl dopis odeslán a doručen do schránky příjemce. Provedeme rozbor přijatého dopisu.
Postup při ručním odesílání dopisu na server SMTP
1. Provedeme konfiguraci relace v programu PuTTY, tj. zadáme doménové jméno SMTP serveru, číslo portu 25, otevřeme soubor protokolu pro záznam relace a otevřeme spojení.
2. Když se server představí a ohlásí svou připravenost, můžeme vložit příkaz HELO nebo EHLO s doménovým jménem klienta SMTP (doménové jméno stanice).
3. Zahájíme poštovní transakci.
4. Po ukončení jedné transakce lze zahájit novou nebo ukončit spojení příkazem QUIT.
Přímá a nepřímá komunikace mezi klientem a serverem SMTP
Ze stanice lokální sítě proběhla ručně komunikace s hlavním poštovním serverem vse.vse.cz. Ten zprávu převzal, uložil ji do fronty pod číslem A713... a relaci ukončil. Místem určení dopisu byl server veverka.vse.cz. Hlavní server vytvořil novou SMTP relaci a zaslal dopis, který "veverka" uložila do poštovní schránky uživatele.
Celou komunikaci lze vyjádřit schematem: A -> B a B -> C. Uprostřed řetězce se nachází B, tj. server vse.vse.cz. Tento server měl roli prostředníka (zprostředkovatele) mezi A a B. Mezi A a C se jedná o nepřímou komunikaci, zprostředkovanou B.
220 eso.vse.cz ESMTP Postfix
HELO localhost
250 eso.vse.cz
MAIL FROM: ivo@vse.cz
250 Ok
RCPT tO: ivo@veverka.vse.cz
250 Ok
RCPT tO: ivo@veverka.vse.cz
DATA
354 End data with <CR><LF>.<CR><LF>
Subject" : test pro veverku
To: ivo@veverka.vse.cz
Test pro veverku
.
250 Ok: queued as A7134C7DE1
QUIT
221 Bye
V dialogu klienta a serveru se střídají řádek po řádku příkazy klienta a odpovědi serveru. Odpovědi začínají číselným kódem a pokračují vysvětlujícím řetězcem. Kódu 250 odpovídá několik slovních řetězců v závislosti na kontextu.
Podle protokolu SMTP měl mít příkaz HELO jako parametr plně kvalifikované doménové jméno klienta SMTP. V parametru FROM příkazu MAIL je uvedeno jméno schránky, na kterou se posílají chybové zprávy (označuje se jako <return-path>), tj. jde vlastně o zadání cíle zpáteční cesty.
Příkazy protokolu SMTP tvoří obálku poštovní zprávy, kterou uživatel nevidí. Část zprávy za příkazem DATA tvoří vlastní obsah zprávy. Skládá se ze záhlaví, které je odděleno od textu zprávy prázdnou řádkou, a textu. V ukázce chybí důležité položky záhlaví "From:", "To:", "Date:".
Dopis byl na "veverku" skutečně zaslán a uložen do schránky. V hlavičce "received" je uvedeno doménové jméno a IP adresa počítače, který byl použit jako klient SMTP a představil se jako se svou IP adresou. Pokud by v odeslané zprávě chyběla položka "To:“, pak by do hlavičky dopisu byla dosazena hodnota "undisclosed-recipients: ;"
Return-Path: <ivo@vse.cz>
Received: from vse.vse.cz ([146.102.16.2] verified)
by vse.cz (CommuniGate Pro SMTP 4.1.8)
with ESMTP id 25941616 for ivo@veverka.vse.cz; Tue, 03 Apr 2007 16:45:10 +0200
Received: from localhost (localhost [127.0.0.1])
by vse.vse.cz (Postfix) with ESMTP id F23D913450
for <ivo@veverka.vse.cz>; Tue, 3 Apr 2007 16:45:09 +0200 (CEST)
X-Virus-Scanned: amavisd-new at vse.cz
Received: from vse.vse.cz ([127.0.0.1])
by localhost (vse.vse.cz [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id YYuWQjRv29aY for <ivo@veverka.vse.cz>;
Tue, 3 Apr 2007 16:45:04 +0200 (CEST)
Received: from eso.vse.cz (eso.vse.cz [146.102.167.11])
by vse.vse.cz (Postfix) with ESMTP id 65CF513446
for <ivo@veverka.vse.cz>; Tue, 3 Apr 2007 16:45:04 +0200 (CEST)
Received: from localhost (jm375h05.znet.vse.cz [146.102.173.19])
by eso.vse.cz (Postfix) with SMTP id A7134C7DE1
for <ivo@veverka.vse.cz>; Tue, 3 Apr 2007 16:42:10 +0200 (CEST)
Subject: test pro veverku
To: ivo@vse.cz
Message-Id: <20070403144230.A7134C7DE1@eso.vse.cz>
Date: Tue, 3 Apr 2007 16:42:10 +0200 (CEST)
From: ivo@vse.cz
Test pro veverku
Přímá místní komunikace mezi klientem a serverem ESMTP
Rozšíření jednoduchého poštovního protokolu dává nové možnosti komunikace, aniž by byly narušeny ty základní, definované v SMTP. Jednou z nich je ověřování totožnosti odesilatele (autentifikace).
220 vse.cz ESMTP CommuniGate Pro 4.1.3
EHLO n412h02.vse.cz
250-vse.cz is pleased to meet you
250-HELP
250-PIPELINING
250-SIZE 3145728
250-STARTTLS
250-AUTH=LOGIN
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-8BITMIME
250 EHLO
MAIL FROM: ......
...
...
QUIT
Všimněme si příkazu SIZE, kterým server oznamuje maximální velikost dopisu (v bytech), který je ochoten přijmout. Je zřejmé, že překročení zadané hodnoty při odesílání dopisu nevede k doručení dopisu
Typy adres příjemce: úplné a zkrácené jméno hostitele
V příkladech jsme uváděli adresu příjemce ve tvaru uživatel@vse.cz. Řetězec "vse.cz" není označení stroje (ověříme příkazem ping), ale domény. Dotazem na DNS na doménu vse.cz zjistíme jméno stroje (strojů), který slouží k přijímání nebo odesílání SMTP pošty. V záznamu typu MX (slovně mail exchange) najdeme jméno a IP adresu. Obdobně můžeme získat potřebné údaje o poštovním serveru veverka.vse.cz.
set type=mx
> veverka.vse.cz
Server: ipv6jm.net.vse.cz
Address: 146.102.162.162
veverka.vse.cz MX preference = 100, mail exchanger = mx1.vse.cz
veverka.vse.cz MX preference = 50, mail exchanger = vse.vse.cz
vse.cz nameserver = vse.vse.cz
vse.cz nameserver = vse470.vse.cz
vse.cz nameserver = ns.ces.net
vse.cz nameserver = mx1.vse.cz
vse.vse.cz internet address = 146.102.16.2
vse.vse.cz AAAA IPv6 address = 2001:718:1e02::2
mx1.vse.cz internet address = 193.179.39.12
ns.ces.net internet address = 195.113.144.233
ns.ces.net AAAA IPv6 address = 2001:718:1:101::3
vse470.vse.cz internet address = 146.102.16.1
>
MIME: rozšiřující hlavičky
Specifikace MIME zavedla doplňkové hlavičky poštovních zpráv: MIME-Version, content-type, content-transfer-encoding, content-disposition. Nové hlavičky spolu s určením kódovacích pravidel obsahu dopisu umožnily další rozvoj elektronické pošty. Možnosti jsou opravdu velké: lze vytvářet jednoduché nebo strukturované dopisy různých typů: multipart/alternative, multipart/mixed, message/xxx, atp. Zde uvedeme zkrácené ukázky strukturovaných dopisů a jejich kodování.
Kódování dopisů
Problém 7bitové kompatibility řeší kódovací schémata. Ta převádějí 8bitové kódování na sedmibitové. Jestliže mezi odesilatelem a příjemcem nehrozí zásah SMTP serveru nepodporujícího MIME, lze dopis poslat v osmibitovém kódování bez převodu.
Níže uvedený dopis vyhovuje rozšíření MIME. Text dopisu je zapsán ve znakové sadě ISO a pro potřeby bezpečného přenosu bylo tělo dopisu zakódováno metodou "quoted-printable". Stejné kódování bylo použito i v hlavičce "subject".
Kódování metodou "quoted-printable"
. . .
Subject: =?iso-8859-2?Q?Dom=E1c=ED_=FAkol_z_IZI216/2?=
Date: Sun, 20 May 2001 22:09:55 +0200
MIME-Version: 1.0
boundary="----=_NextPart_000_0021_01C0E179.9A067220"
. . .
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable
Dobr=FD den.
Pos=EDl=E1m V=E1m odkaz na HTML str=E1nku (dom=E1c=ED =FAkol), kter=E1 =
umo=BE=F2uje p=F8=EDstup na jinou str=E1nku p=F8es protokoly FTP a HTTP. =
. . .
nen=ED implementov=E1no p=F8=EDmo do str=E1nek, jak tomu = b=FDv=E1. D=ECkuji
za pochopen=ED.
. . .
Kromě metody "quoted-printable" se užívá metoda "base64". Před standardizací se dopisy kódovaly metodou "uuencode" a "uudecode". U nás se obsah dopisu kóduje většinou podle normy ISO-8859-2, pro přenos se využívá quoted-printable nebo base64. Někdy se texty dopisů pro přenos vůbec nekódují.
Kódování metodou "base64"
Kódování base64 nenahrazuje jedno zdrojové písmeno jiným cílovým písmenem. Zdrojový text se rozdělí na šestibitové skupiny a ty se nahrazují písmeny z cílové abecedy, která obsahuje právě 64 znaků. Znaky cílové abecedy leží v první polovině ASCII tabulky. Tři písmena na vstupu (čtyři šestice bitů) jsou zakódována čtyřmi písmeny na výstupu. Krátký příklad ukazuje MIME hlavičky a zakódovaný text (ypinkas).
MIME-Version: 1.0
Content-Type: application/octet-stream; name="ypinkas.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ypinkas.txt"
eXBpbmthcw==
Pomocí Total Commanderu můžeme kódovat/dekódovat dopisy v MIME zpracované pomocí base64. Viz nabídku Soubory/Zakódovat soubor(MIME,UUE,XXE)...
Protokoly POP3, IMAP, NN a elektronické konference
Protokol POP3
Protokol POP3 umožňuje klientskému programu počítače, který není trvale připojen do Internetu, stahovat nevyzvednutou poštu z POP3 serveru, který má přístup k poštovní schránce majitele účtu. Většinou se přenášejí všechny nepřečtené dopisy, takže se schránka vyprázdní. Používá se port TCP/110 pro nešifrovanou komunikaci a port TCP/995 pro šifrovanou komunikaci.
Protokol IMAP
Tento protokol byl navržen pro práci se vzdálenou poštovní schránkou. Umožňuje zakládat a rušit složky, manipulovat s jednotlivými dopisy a přenášet dopisy podle výběru na místní počítač. Používá se port TCP/143 pro nešifrovanou komunikaci a port TCP/993 pro šifrovanou komunikaci.
Služba síťových zpráv - NN (network news)
Tato služba umožňuje vytvářet problémově zaměřené skupiny uživatelů, kteří zasílají příspěvky na NN server nebo z něho příspěvky čtou. Server typu NN pracuje na portu 119 při nešifrované komunikaci a portu 563 při šifrované komunikaci. Na rozdíl od listserverů se nové příspěvky automaticky nezasílají všem členům skupiny. Uživatel sám rozhoduje, zda, kdy a s kterým příspěvkem bude pracovat.
Uživatel se musí na NN serveru nejdříve registrovat (subscribe). Registruje se pro jednu nebo více skupin. V případě potřeby může registraci zrušit (unsubscribe). Čtení a vytváření zpráv je s použitím grafického klienta velice snadné. Víceúčelový klient Mozilla Suite obsahuje komponentu pro práci s diskusními skupinami. Viz blíže Okno/Pošta & Diskusní skupiny.
Elektronické konference
Elektronické konference jsou založeny na jednoduchém schematu. Správce počítače vytvoří speciálního uživatele, který bude přijímat přihlášení/odhlášení k určité konferenci. Zájemce použije klienta elektronické pošty a do určité konference se přihlásí. Konferenční server (listserver) přijme zprávu účastníka konference a automaticky ji rozešle všem účastníkům konference. Kromě této základní funkce mívá listserver další pomocné funkce: nápověda, vytváření archivů, jejich indexování, atp. S rozmachem WWW byly vytvořeny WWW brány k přístupu k archivům konferencí.
Přihlášení/odhlášení (diskusní skupina)- adresát: správce
To: listserv@xxx.cz
From: novakp@xxx.cz
subscribe test-l Petr Novak
Odhlášení - obdobně
. . .
unsubscribe test-l Petr Novak
Příspěvek do diskusní skupiny - adresát test-l
To: test-lxxx.cz
From: novakp@xxx.cz
Zabezpečení poštovní komunikace
Ověřování totožnosti v protokolu ESMTP - metody AUTH
Existují prostředky pro zabezpečení poštovní komunikace na portu 25 (mechanismus SASL) nebo šifrované spojení pomocí SSL/TLS. Nejjednodušší metody AUTH LOGIN resp. PLAIN jsou založeny na překódování uživatelského jména a hesla do base64. Metoda LOGIN je popsána v RFC 2554. Metoda AUTH PLAIN používá jen jeden příkaz obsahující řetězec "authid\0userid\0passwd", kde \0 je hexadecimální nula. Celý řetězec se potom zakóduje pomocí base64.
Spolupráci klienta SMTP a serveru SMTP v sérii výzev a odpovědí ukazuje výsek z protokolu. Server v kódování base64 nejdříve vyzval k zadání hodnoty pro Username:, klient v base64 zaslal přihlašovací jméno, server poslal kódovaně Password: a klient poslal zakódované heslo. Pokus o ověření totožnosti nebyl úspěšný.
. . .
250-AUTH=LOGIN
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-8BITMIME
250 EHLO
AUTH LOGIN
334 VXNlcm5hbWU6
eXBpbmthcw==
334 UGFzc3dvcmQ6
***************
535 authentication failed: incorrect password or account name
. . .
Zabezpečení zpráv pomocí SSL/TLS
Viděli jsme, že přístup k poště můžeme rozdělit na dvě části: odesílání a příjem zpráv. Těmto částem odpovídají různé protokoly. Rozvoj WWW vedl k zavedení webového rozhraní k poště (WebMail). Toto rozhraní využívá kombinace protokolů: HTTP (HTTPS) a (E)SMTP.
Prakticky všechny protokoly musí řešit otázku ověřitelnosti totožnosti serveru a klienta, zabezpečení přenosu dat proti odposlechu šifrováním, a problém integrity (neporušenosti a totožnosti zpráv) - kontrolní součty resp. otisky.
V praxi se dnes
využívají kromě nezabezpečených verzí protokolu POP3 a IMAP jejich zabezpečené
(šifrované) varianty. Místo portu 110 se využívá port
Jiří Kosek ml.
Služba World-Wide Web je postavena na třech základních technologiích -- HTML, URL a HTTP. HTML je značkovací jazyk, který slouží k standardnímu popisu obsahu a struktury webovských stránek. URL je speciální druh adres používaných na Webu -- každá webovská stránka má svoji jednoznačnou adresu právě v podobě URL. HTTP -- Hypertext Transfer Protocol -- je protokol používaný při komunikaci mezi prohlížeči a webovskými servery. Pomocí tohoto protokolu se k serveru přenáší URL stránky, kterou uživatel (přes svůj prohlížeč) požaduje, a naopak server pomocí protokolu HTTP odesílá uživateli zpět stránku zapsanou v HTML.
Protokol HTTP
vychází z architektury klient/server. Klient -- v našem případě prohlížeč -- se
spojí se serverem a pošle mu požadavek. Server jako reakci na klientův požadavek zasílá odpověď. Přesný formát požadavku a odpovědi je
definován ve specifikaci protokolu HTTP. Celou situaci mírně komplikuje to, že
dnes existují tři verze protokolu -- 0.9,
Obr. 1: Průběh komunikace mezi klientem a serverem |
|
V
HTTP/0.9 je formát požadavku velice jednoduchý. Jde o jeden řádek, kde je za
klíčovým slovem GET
uvedena cesta k
požadovanému dokumentu. Pokud chceme pomocí HTTP/0.9 získat například dokument http://www.server.cz/~krystof/linky.html
, musíme se připojit k počítači
www.server.cz
na port 80 (standardní
port služby WWW) a zaslat požadavek:
GET /~krystof/linky.html
Jako
odpověď nám přijde obsah souboru linky.html
. Vše si můžeme sami vyzkoušet a zahrát si na prohlížeč.
Stačí spustit telnet a přihlásit se k nějakému serveru na port 80. Pak napíšeme
HTTP požadavek a necháme se překvapit, co nám server odešle zpět (viz obr. 2).
Obr. 2: Komunikace s WWW serverem pomocí telnetu |
|
Na tomto místě
musíme připomenout, že cesta za slovem GET
nemůže být prázdná a musí vždy obsahovat alespoň lomítko:
GET /
Možná
vás napadlo, jaký dokument odešle server jako odpověď, pokud v požadavku není
určen přímo soubor, ale pouze adresář (nebo dokonce jen kořenový adresář jako v
našem příkladě). V tomto případě WWW-server hledá v adresáři soubor, který se
jmenuje index.html
, default.html
či welcome.html
-- záleží na
konfiguraci. Pokud jej nalezne, odešle jej jako odpověď. Pokud takový soubor
neexistuje, odešle výpis obsahu adresáře (pokud to není v konfiguraci serveru
zakázáno).
Jména souborů,
které se hledají v případě požadavku, který obsahuje pouze jméno adresáře, lze
pro server Apache nastavit v konfiguračním souboru srm.conf
pomocí direktivy DirectoryIndex
. Díky této vlastnosti
můžeme používat URL adresy tvaru http://www.server.cz/
.
V této verzi protokolu HTTP je syntaxe požadavku již o něco složitější:
metoda cesta_k_dokumentu HTTP/1.0
hlavičky
prázdná_řádka
Nejpoužívanější metodou je GET -- ta slouží k získání daného dokumentu ze serveru. Další dvě metody, které můžeme použít, jsou HEAD a POST. První z nich zašle pouze hlavičky, které obsahují různé metainformace o dokumentu -- např. datum poslední modifikace apod. Metoda POST slouží k odeslání dat z formuláře na server. V tomto případě za prázdnou řádkou obsahuje požadavek ještě hodnoty jednotlivých polí formuláře.
Hlavičky slouží
pro přenos různých doplňujících informací. Každá hlavička je na samostatné
řádce a má tvar jméno_hlavičky:
hodnota. Význam jednotlivých
hlaviček popíšeme později. Jejich použití je nepovinné a proto nejjednodušší
požadavek v HTTP/1.0 vypadá takto:
GET /~krystof/linky.html HTTP/1.0
prázdná_řádka
Odpověď má v HTTP/1.0 také odlišný formát. Nesestává pouze ze samotného obsahu zasílané stránky, ale obsahuje i mnoho důležitých a užitečných informací.
HTTP/1.0 stavový_kód stavové_hlášení
hlavičky
prázdná_řádka
obsah_odpovědi
Stavový kód je třímístné číslo, které indikuje, jak se povedlo uspokojit požadavek. Přehled stavových kódů je uveden v tabulce 1.
Stavové hlášení je slovní popis stavového kódu, který je pro člověka přeci jen srozumitelnější. Pokud vše proběhlo v pořádku, měla by první řádka odpovědi vypadat následovně
HTTP/1.0 200 OK
.
Tab. 1: Stavové kódy a hlášení HTTP/1.0 |
|
Kód |
Popis |
|
|
1xx -- Informační kódy (nepoužívá se) |
|
|
|
2xx -- Úspěšné vyřízení požadavku |
|
200 OK |
Požadavek byl úspěšně zpracován |
201 Created |
Výsledkem požadavku je nově vytvořený objekt |
200 Accepted |
Požadavek byl přijat, ale dosud není zpracován |
200 No content |
Požadavek byl úspěšně zpracován, ale jeho výsledkem nejsou žádná data pro klienta |
|
|
3xx -- Přesměrování |
|
301 Moved Permanently |
Požadovaný objekt byl trvale přemístěn na jinou adresu |
302 Moved Temporarily |
Požadovaný objekt byl dočasně přemístěn na jinou adresu |
304 Not Modified |
Objekt
nebyl změněn (odpověď při podmíněném požadavku pomocí hlavičky |
|
|
4xx -- Chyba klienta |
|
400 Bad Request |
Špatná syntaxe dotazu |
401 Unauthorized |
Objekt je dostupný pouze po autorizaci |
403 Forbidden |
Požadavek je v pořádku, ale server nemá povoleno jej vykonat |
404 Not Found |
Požadovaný objekt nebyl na serveru nalezen |
|
|
5xx -- Chyba na straně serveru |
|
500 Internal Server Error |
Serveru se něco stalo a nemůže vyplnit požadavek |
501 Not Implemented |
Server nepodporuje metodu uvedenou v požadavku |
502 Bad Gateway |
Server, pracující jako gateway, dostal špatnou odpověď od dalšího serveru |
503 Service Unavailable |
Služba je nedostupná (přetížení, údržba serveru) |
Struktura požadavku i odpovědi zůstává u nejnovější verze HTTP stejná jako u verze 1.0. Přidány jsou však nové hlavičky a některé z nich jsou nyní i povinné.
Předchozí verze
protokolu HTTP vytvářely pro každý objekt nové spojení a poté jej pomocí HTTP
přenesly. Pokud tedy např. HTML stránka obsahovala čtyři obrázky, pro její
stažení bylo potřeba navázat 5 spojení (1 stránka + 4 obrázky). Navázání
spojení je však náročné jak na čas, tak na přenosovou kapacitu sítě. HTTP/1.1
proto spojení mezi klientem a serverem po vyřízení požadavku neuzavírá, ale
umožňuje jej použít pro přenos více objektů. Tím dochází k ušetření času
potřebného k přenosu webovských stránek. Spojení může ukončit klient nebo
server tím, že do požadavku/odpovědi zařadí hlavičku Connection: close
.
V každém
požadavku, který vyhovuje standardu HTTP/1.1, musíme použít hlavičku Host
. Jako hodnota se uvádí doménové jméno
serveru, ze kterého požadujeme stránku. Nejjednodušší požadavek pak vypadá
takto
GET /~krystof/linky.html HTTP/1.1
Host: www.server.cz
prázdná_řádka
Použití
této hlavičky je povinné kvůli virtuálním serverům. Dnes je na Internetu běžné, že poskytovatelé
připojení umožňují na svých serverech vystavovat stránky svým zákazníkům. Jako
službu nabízejí i umístění stránek na adrese typu http://www.firma.cz
místo obvyklého http://www.poskytovatel.cz/firma
. Samozřejmě, že
poskytovatel na jednom serveru (počítači) vystavuje stránky několika firem.
Problém je však v tom, že server má obvykle jen jednu IP-adresu, ke které se
připojují klienti. Prohlížeč se tedy připojí k serveru na port
Toto ne příliš elegantní řešení zbytečně plýtvalo IP-adresami a kladlo zvýšené požadavky na konfiguraci serveru při přidání nového virtuálního serveru. Tím, že požadavky HTTP/1.1 obsahují jméno serveru, odpadá potřeba zřizování nové IP-adresy pro každý virtuální server. Na jedné IP-adrese nyní může být přístupný neomezený počet virtuálních serverů. Jediným háčkem jistě elegantního řešení problému je fakt, že starší prohlížeče nepodporují HTTP/1.1.
HTTP/1.1 přidává i několik nových metod požadavků. Pro potřeby pohodlného publikování na Webu jsou to především metody PUT a DELETE. První z nich slouží k uložení zaslaného objektu (nejčastěji HTML stránky) na dané URL. HTML-editor tak může přímo na WWW-server uložit nově vytvořenou nebo modifikovanou stránku, aniž by se o to musel snažit uživatel sám například pomocí FTP. Metoda DELETE slouží k odstranění stránky ze serveru. Další metody TRACE, CONNECT a OPTIONS slouží k zjišťování, analyzování a nastavení způsobu spojení.
Verze protokolu HTTP 1.0 definovala 17 hlaviček. HTTP/1.1 tento počet ještě zvětšilo. My si stručně objasníme význam nejdůležitějších hlaviček.
Tato
hlavička udává typ přenášených dat. Typ dat se zapisuje pomocí MIME konvence.
Pro HTML stránky máme typ text/html
, pro obyčejný text text/plain
, obrázky mají podle použitého formátu jeden z
typů image/gif
, image/jpeg
nebo image/png
. Podle typu dat
prohlížeč pozná, jak příchozí data interpretovat. HTML stránka zasílaná
prohlížeči jako odpověď, proto mezi hlavičkami obsahuje následující řádku
Content-Type: text/html
Tato
hlavička obsahuje adresu dokumentu, který byl přesunut. Tuto hlavičku server
posílá v případech, kdy stavový kód požadované operace začíná na 3. Prohlížeč
většinou automaticky nahraje stránku, na kterou Location
ukazuje. Jako adresu je
potřeba uvést úplné absolutní URL. Např.
Location: http://manes.vse.cz/~xkosj06/index.html
Pokud v požadavku použijeme tuto hlavičku společně s nějakým datem, server nám požadovaný objekt vrátí pouze, pokud byl od zadaného data změněn. Př. Chceme získat dokument pouze, pokud se od 30. března 1998 změnil:
If-Modified-Since: Mon, 30 Mar 1998 12:00:00 GMT
V
hlavičce User-Agent
posílá prohlížeč svoji
identifikaci -- obvykle své jméno, číslo verze a platformu, na které je
spuštěn. Server
naopak obsahuje
identifikaci serveru, který vyřídil požadavek. Př.:
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)
Server: Apache/1.3b3
© Jiří Kosek 1999