Základy TCP/IP Libor Forst • • • • •
Motivace, historie, model Principy adresování, DNS Tok dat, topologie, routing Základní protokoly, aplikace E-mail, FTP, BSD příkazy
SISAL Základy TCP/IP
1
Literatura • D. E. Comer, D. L. Stevens: Internetworking With TCP/IP; Prentice Hall International 1991 • C. Hunt: TCP/IP Network Administration; O'Reilly & Associates 1992 • P. Šmrha, V. Rudolf: Internetworking pomocí TCP/IP; Kopp 1994 • P. Satrapa, J. A. Randus: LINUX - Internet server; Neokortex 1996; ISBN 80-902230-0-1 • L. Dostálek, A. Kabelová: Velký průvodce protokoly TCP/IP a systémem DNS; Computer Press 2002 • Request For Comment (RFC)
SISAL Základy TCP/IP
2
Vznik počítačových sítí
izolované výpočetní systémy
terminály
lokální síť
point-to-point propojení
rozlehlá síť
robustní kompaktní aplikace
emulace terminálu + klient-server aplikace
SISAL Základy TCP/IP
3
Počítačové sítě • Lokální sítě (Local Area Network) – zvyšování produktivity díky sdílení prostředků – menší vzdálenost, vyšší rychlost – příklady: Novell, napojení bezdiskových stanic, databázové n. tiskové servery
• Rozlehlé sítě (Wide Area Network) – konektivita, komunikace – velké vzdálenosti, nižší výkon – příklady: Internet, Bitnet
SISAL Základy TCP/IP
4
Historie Internetu • 1969 - Defense Advanced Research Project Agency zřizuje projekt "packet switching network" • pol. 70. let - ARPANET, point-to-point, pevné linky • 1980 - Internet, propojení sítí, ARPANET páteří • 1983 - zavedení TCP/IP v ARPANETu • pol. 80. - TCP/IP součástí BSD UNIXu • současnost - boom Internetu
SISAL Základy TCP/IP
5
Vývoj Internetu v číslech 5 000 000 000 500 000 000
Počet obyvatel Země
50 000 000 5 000 000
Počet uživatelů Internetu
Počet počítačů v Internetu
500 000 50 000 5 000 Zdroj: MIDS, Austin TX, based on historical data
500 82 84 86 88 90 92 94 96 98
2001
SISAL Základy TCP/IP
6
Typy síťových propojení Sběrnice (např. 10base2)
Hvězda (např. 10baseT, ATM)
Point-to-point přímé
Point-to-point přes modemy
Kruh (např. FDDI, Token-ring)
Základy TCP/IP
Point-to-point bezdrátové (např. laser, radioreléové, WiFi)
SISAL 7
Typy síťových rozhraní Loopback - „tento počítač“, žádné fyzické zařízení PPP - sériové propojení point-to-point Ethernet - společná sběrnice: současný přístup, řešení kolizí (CSMA/CD) Token ring - předávání volného-obsazeného tokenu po kruhu FDDI - jednoduchý nebo dvojitý kruh (překlene přerušení vlákna) ATM - systém přepínačů a virtuálních cest pro tok dat, hlasu,... Výpis nakonfigurovaných rozhraní: netstat -i SISAL Základy TCP/IP
8
OSI model
Pořadí Vrstva 7 6 5 4 3 2 1 protokol
aplikační prezentační relační transportní síťová linková fyzická
Úkol komunikace mezi programy datové konverze navázání relace mezi počítači korektnost přenosu informace dosažení cílového počítače přenos dat po navázaném spojení interpretace elektrického signálu
rozhraní SISAL
Základy TCP/IP
9
TCP/IP model OSI
Vrstva
Protokoly v TCP/IP (příklady)
7
NFS
6
aplikační
FTP
5
XDR RPC
4
transportní
TCP
UDP
3
internet
2
network interface
Ethernet, FDDI, ATM, SLIP, X.25
1
hardware
-
ICMP
IP
ARP
SISAL Základy TCP/IP
10
Spojované/nespojované služby • spojované (connection-oriented) služby – – – –
obdoba telefonního spojení zaručeno doručení datagramů ve správném pořadí (stream) aplikace je jednodušší, ale nemůže řídit komunikaci TCP je komplikované
• nespojované (connectionless) služby – – – – –
obdoba poštovního spojení není zaručeno pořadí ani doručení datagramů kontrolu musí provádět aplikace aplikace může lépe řídit komunikaci UDP je jednodušší
SISAL Základy TCP/IP
11
TCP okna 00
10
20
30
40
00
50
00
00
10
00
10
10 20
20 ACK 10
10
20
30
10
20
30
30 40
40 SISAL
Základy TCP/IP
12
Zahájení a ukončení spojení • Navázání TCP spojení SYN
Seq# c SYN, ACK
ACK
Ack# 0 Seq# s
Seq# c+1
Ack# c+1
Ack# s+1
• Jednostranné uzavření spojení FIN, ACK
Seq# x
ACK
Ack# y Seq# y
Ack# x+1 SISAL
Základy TCP/IP
13
Typy adresování • HW (linková vrstva)
• MAC (ethernetová) adresa (např.: 8:0:20:ae:6:1f) – dána výrobcem – nerespektuje topologii
• SW (síťová vrstva)
• IP adresa (např.: 194.50.16.71) – přidělována podle topologie – určuje jednoznačně síť a v jejím rámci počítač
• Lidé (aplikační vrstva)
• Doménová adresa (např.: whois.cuni.cz) – přidělována podle organizační struktury – snazší zapamatování SISAL
Základy TCP/IP
14
Konverze adres • doménové adresy
• IP adresy
• name resolver – řízení statické (/etc/hosts) nebo dynamické (DNS, NIS) – konfigurační soubor /etc/resolv.conf
• ARP/RARP – ARP tabulka (cache) – broadcastová výzva/odpověď
• MAC adresy
SISAL Základy TCP/IP
15
Třídy IP adres
Třída A B C D E
Tvar adresy
Začátek 1.byte 2.byte 3.byte 4.byte adresy 0 net 10 110 1110 1111
host net
1-126
host net
host net
128-191 192-223 224-239 240-255
Počet sítí
strojů
126 ~16 k ~2 M
~16 M ~64 k 254
multicast experimental
SISAL Základy TCP/IP
16
Speciální adresy • loopback – 127.0.0.1 – adresa loopback rozhraní • privátní adresy – 10.0.0.0, 172.16.0.0-31, 192.168.*.0 – nepřidělované, k použití pro lokální sítě – nesmí opustit síť • network broadcast –
.<samé jedničky> – „všem v dané síti“ – normálně se doručí do cílové sítě • limited broadcast – 255.255.255.255 – „všem v této síti“ – nesmí opustit síť SISAL Základy TCP/IP
17
Subnetting • Subnetting dovoluje rozšířit síťovou část adresy: net
subnet
host
pomocí specifikace tzv síťové masky (netmask), v tomto případě 255.255.255.192: 11111111
11111111
11111111 11 000000
• Nedoporučuje se používat subnet "all-zeros" a "all-ones", takže v tomto případě máme pouze 1022 x 62 adres. • V definici je přípustná nespojitá maska, ale většinou se neimplementuje. • V současnosti se často ignorují třídy (classless) a místo masky uvádí jen počet bitů (např. 193.84.56.71/26). SISAL Základy TCP/IP
18
Supernetting
• router agreguje směrovací informace (192.168.4.0/23) • single homed server – veškerý provoz ze sítě ...4.0 jde přes router
• dual homed neroutující server – je zapotřebí různé DNS pro sítě ...4.0 a ...5.0 192.168.4
192.168.5 SISAL
Základy TCP/IP
19
IPv6 • IPv6 adresy jsou dlouhé 128 bitů (16 bytů). Zápis: fec0::1:800:5a12:3456 • Rozeznáváme adresy – unicastové - slouží k adresaci jediného rozhraní, kromě globálních adres existují ještě site-local adresy (jsou platné pouze v rámci organizace) a link-local adresy (platné v rámci lokálního propojení – sítě) – multicastové - slouží k adresaci skupiny rozhraní (IPv6 převzal a mírně modifikoval IGMP) – anycastové - formálně se jedná o unicastové adresy, které jsou přiděleny více rozhraním (strojům) • Další vlastnosti: – autokonfigurace, Duplicate Address Detection, Router Discovery, Neighbor Discovery Protocol (místo ARP), Path MTU Discovery, tunelování IPv4 SISAL Základy TCP/IP
20
Doménový systém
edu
server pro domény cuni.cz a ruk.cuni.cz cesnet ns
vutbr
nordu nic
net
whois
cz cuni ruk
dec59
server pro doménu cz server pro root doménu
sk
mff
fzi fixlink
de
SISAL Základy TCP/IP
21
Vyřizování DNS dotazu a.root-servers.net a.root-servers.net .. ns.cesnet.cz ns.cesnet.cz cz cz
cz: NS=192... nerekurzivní
www.mff.cuni.cz
www.mff.cuni.cz
cuni.cz: NS=195...
ns.fzi.de ns.fzi.de fzi.de fzi.de rekurzivní www.mff.cuni.cz
Základy TCP/IP
www.mff.cuni.cz IP=193...
ns.cuni.cz ns.cuni.cz cuni.cz, cuni.cz, mff.cuni.cz mff.cuni.cz
IP=193...
fixlink.fzi.de SISAL 22
Tok dat v TCP/IP
Aplikace
Transport
IP
Interface
Data
TCP/UDP header
IP header
Data
...
packet
Interface header
datagram CRC
stream message packet
datagram
frame SISAL
Základy TCP/IP
23
Multiplexing, demultiplexing Aplikace
Aplikace
UDP
TCP
rozhodování podle čísla portu
ICMP rozhodování podle IP protokolu
ARP rozhodování podle typu (délky) Ethernet rámce
IP
IPX
Ethernet SISAL
Základy TCP/IP
24
Socket, port • Port ... 16bitové číslo identifikující jeden konec spojení aplikaci, proces, který má zpracovávat příchozí pakety – destination-port musí být znám, typicky je to některý z tzv. well-known services (viz /etc/services) – source-port navazovatele (>1024) spojení přiděluje lokální systém
• Socket ... jeden konec komunikačního kanálu mezi klientem a servrem … označení (adresa) jednoho konce kanálu – Výpis otevřených socketů: netstat [-an] SISAL Základy TCP/IP
25
Aplikační protokoly TCP/IP •
21/TCP: FTP - File Transfer Protocol (přenos souborů)
•
22/TCP: SSH - Secure Shell (přenos souborů)
•
23/TCP: telnet - Telecommunication network (interaktivní přístup ke vzdáleným počítačům)
•
25/TCP: SMTP - Simple Mail Transfer Protocol (přenos elektronické pošty)
• 53/TCP,UDP: DNS – Domain Name System (překlad jmen na IP adresy a naopak)
•
67,68/UDP: DHCP - Dynamic Host Configuration Protocol (vzdálená konfigurace)
•
80,443/TCP: HTTP - HyperText Transfer Protocol (přenos stránek informačního systému W W W)
•
119/TCP: NNTP - Network News Transfer Protocol (přenos zpráv v systému UseNet, NetNews) SISAL
Základy TCP/IP
26
Struktura ethernetového rámce Ethernet v2: Destination MAC address
Source MAC address
Type
Data
IP ARP RARP IPX
CRC
0x0800 0x0806 0x8035 0x8137
IEEE 802.3 Destination MAC address
Source MAC address
Len
Data
CRC
<= 1500 SISAL Základy TCP/IP
27
Struktura IP datagramu Version
Header Service Type Length (priorita) Identification (pořadové číslo)
Time-to-live
Total Length Flags
Protocol (/etc/protocols)
Fragment Offset Header Checksum
Source IP Address Destination IP Address Options Padding Data SISAL Základy TCP/IP
28
Struktura TCP paketu Destination Port
Source Port
Sequence Number Acknowledgement Number Data Offset
(rsvd)
Flags (SYN,URG,ACK,...)
Checksum
Window Urgent Pointer
Options Padding Data
SISAL Základy TCP/IP
29
Spojování segmentů sítě
Vrstva
Síťové zařízení
Vrstva
aplikační
gateway (brána)
aplikační
transportní
transportní
síťová
router (směrovač)
síťová
linková
bridge, switch
linková
fyzická
repeater, HUB
fyzická
SISAL Základy TCP/IP
30
Porovnání HUB vs. switch S • HUB Σ 10 Mbit/s S • Switch Σ 10 Mbit/s S S S • Switch, více serverů Σ > 10 Mbit/s S • Switch s uplinkem Σ up to 100 Mbit/s SISAL Základy TCP/IP
31
Příklad topologie sítě Lokální síť Klient 1
Klient 2
Klient 3 Ethernet segment
Repeater Klient 4
Klient 5
Server 1 Provoz
Bridge Klient 6
Klient 7
Server 2 Router
Lokální síť Klient 8
WAN
Klient 9 SISAL
Základy TCP/IP
32
Principy firewallu IP filtr
NAT
vnější adresy
vnitřní adresy
Proxy-server
klient - server
klient - server
SISAL Základy TCP/IP
33
Address Resolution Protocol • konverze MAC (Ethernetových) a síťových (IP) adres • ARP tabulka (cache) je v paměti na každé stanici • neznámé adresy se zjišťují broadcastovou výzvou: Ethernet=1
IP=0x0800
ARPreq=1
Sender MAC
Sender IP
FF:FF:FF:FF:FF:FF
Target IP
• unicastová odpověď (odpovídající si nejprve musí sám upravit svoji ARP tabulku) • výpis ARP tabulky: arp -a • ARP je omezeno na lokální síť, mezi sítěmi je v činnosti OSI 3 SISAL Základy TCP/IP
34
Proxy ARP klient posílá ARP request s IP adresou host router pozná, že ARP nebude zodpovězen, proto posílá ARP reply s MAC adresou routeru
MAC routeru přiřazena k IP hosta v ARP na klientovi klient posílá data na hosta s MAC adresou routeru klient proxy ARP router
host SISAL
Základy TCP/IP
35
Protokol ICMP • Internet Control Message Protocol, slouží pro řídící informace nad IP protokolem – Echo Request, Reply ... testování dosažitelnosti počítače příkazem ping – Source Quench ... žádost o snížení rychlosti toku datagramů – Destination Unreachable ... počítač (služba) nedostupný – Redirect ... výzva ke změně cesty – Time Exceeded ... vypršel Time-to-live (chyba v routování) – Parameter Problem ... chyba v záhlaví datagramu – Timestamp Request, Reply ... odhad doby přenosu – Information Request, Reply ... žádost o adresu sítě – Address Mask Request, Reply ... žádost o síťovou masku SISAL Základy TCP/IP
36
Směrování OSI 7-4 výchozí poč. IP: n1.h1 router 1 IP: n1.h2
n2.h2
OSI 3
n2.h2 n2.h2
OSI 2
OSI 1
MAC12 n2.h2 n2.h2 MAC12 n2.h2 n2.h2
n2.h2 MAC21 n2.h2 n2.h2 MAC21 n2.h2 n2.h2
router 2 IP: n2.h1
n2.h2
cílový poč. IP: n2.h2
n2.h2
MAC22 n2.h2 n2.h2 MAC22 n2.h2
SISAL Základy TCP/IP
37
Směrovací algoritmus zvol nejspeciálnější záznam (host, net, default)
existuje?
ne
můj stroj?
ano
moje síť?
ano
ne
není cesta
No route to host
ponechat
poslat (podle ARP)
direct route
poslat směrovači
indirect nebo default route SISAL
Základy TCP/IP
38
Příklad směrovací tabulky Destination 193.84.48.50 194.50.16.64 194.50.17.0 default
Gateway 193.84.48.49 194.50.16.71 194.50.16.77 193.84.48.50
194.50.17.0
194.50.16.64 77
Mask 255.255.255.255 255.255.255.224 255.255.255.0 0.0.0.0
direct, host direct, subnet indirect, net default
193.84.48.48
49
50
71 SISAL
Základy TCP/IP
39
Principy směrování • směrování by měla umět každá stanice, v UNIXu je přímo součástí jádra • směrovací tabulky obsahují záznamy: cíl, maska, gateway (dřívější členění cílů: host, net, default) • cíle jsou řazeny od speciálních k obecnějším • typy záznamů: – direct (přímo připojená síť, “gateway” je vlastní adresa) – indirect, default
• vznik záznamu: – implicitní (automaticky po zadání příkazu ifconfig) – explicitní (zadán příkazem route) – dynamický (v průběhu práce od partnerů v síti) SISAL Základy TCP/IP
40
Statické řízení směrovacích tabulek Cesty se nastavují při startu pomocí příkazů route - nesnadné zálohování spojení (cykly) - problémy se subnettingem - nutná inicializace, nepružné při změnách + méně citlivé na problémy v síti + dostupné i ve zcela heterogenním prostředí vhodné pro jednodušší, stabilní sítě
route
add delete flush | -f
{
}{ {
[gw]
[[-]host] host [[-]net] net [[-netmask] mask] default | 0 router [metric] interface [-interface]
}
}
SISAL Základy TCP/IP
41
Redirekce původní obsah tabulky:
nový obsah tabulky:
default default 5.0.0.8 5.0.0.8 UG UG
default default 6.0.0.0 6.0.0.0
1. první datagram pro 6.0.0.1 síť 5.0.0.0
5.0.0.8 5.0.0.8 5.0.0.6 5.0.0.6
UG UG UGD UGD
4. další datagramy pro 6.0.0.1
3. ICMP redirect 6
8 síť 8.0.0.0
2. redirekce datagramu
síť 6.0.0.0
SISAL Základy TCP/IP
42
Dynamické řízení směrovacích tabulek Uzly sítě si navzájem vyměňují informace směrovacími protokoly + jednoduché změny konfigurace + směrovací tabulky se udržují automaticky - na jednoduchých sítích občas zdrojem zbytečných problémů • starší varianta: – daemon routed {-g | -q } – používá protokol RIP
• modernější řešení: – daemon gated, konfigurační soubor /etc/gated.conf – používá protokol RIP nebo OSPF
• pro externí routery (propojují autonomní systémy) se užívají protokoly EGP a BGP SISAL Základy TCP/IP
43
Diagnostika směrování • Výpis směrovacích tabulek: netstat -r[n] Destination 194.50.16.0 127.0.0.1 default 193.84.57.0
Gateway Flags Ipkts ... Colls Interface this U 15943 ... 0 tu0 loopback UH lo0 gw UG tu0 gate UGD tu0
• Kontrola cesty: traceroute 1 gw.thisdomain (194.50.16.222) 2 ms 1 ms 1 ms 2 gw.otherdomain (193.84.48.49) 12 ms 15 ms 15 ms SISAL Základy TCP/IP
44
Konfigurace TCP/IP
UNIX – IP adresa: ifconfig interface IP_adr [ netmask maska ] – defaultní router: route add default router – doména a nameserver: /etc/resolv.conf
domain jméno_domény nameserver IP_adresa_nameserveru Windows 95 – start dialogu: Control Panel Network TCP/IP
SISAL Základy TCP/IP
45
Protokol BOOTP/DHCP FF.FF...
MAC
BOOTPS request
255...
0.0.0.0
BOOTPS
MAC
• BOOTP server přiděluje IP podle MAC adresy v tabulce (/etc/bootptab) a odpovídá broadcastem nebo unicastem (musí si doplnit arp tabulku) • podle RFC 1084 odpověď obsahuje IP adresu, síťovou masku, jméno, gateway, nameserver... • routery standardně BOOTP nepropouštějí (limited broadcast), spojení se servrem zajišťuje BOOTP forwardování • postupné rozšiřování vedlo ke vzniku nového protokolu DHCP: dynamické přidělování adres (šetří IP, ale je méně bezpečné), časové omezení pronájmu, interakce mezi klientem a servery,... SISAL Základy TCP/IP
46
Automatická konfigurace BOOTPS request: Ethernetová adresa klienta limited broadcast unicast
klient router s BOOTP forwardingem
server
BOOTPC reply: IP adresa, maska, router...
broadcast, unicast SISAL Základy TCP/IP
47
Model TCP aplikace Klient
Server
socket socket
socket socket
bind bind
bind bind listen listen
connect connect
accept accept
write write
read read
read read
write write
close close
close close SISAL
Základy TCP/IP
48
Model UDP aplikace Klient
Server
socket socket
socket socket
bind bind
bind bind
connect connect
connect connect
write write sendto sendto sendmsg sendmsg
read read readfrom readfrom readmsg readmsg
read read readfrom readfrom readmsg readmsg
write write sendto sendto sendmsg sendmsg
close close
close close SISAL
Základy TCP/IP
49
Start síťových daemonů • přímý start – ve startovacích scriptech – intenzivně využívané, speciální služby, se složitou inicializací
• nepřímý start (on demand) – provádí daemon inetd – konfigurace v /etc/inetd.conf: bootps dgram udp wait root /etc/bootpd bootpd tftp dgram udp wait nobody /etc/tftpd tftpd /tftpboot whois stream tcp nowait nobody /etc/whoisd whoisd – překonfigurování: kill -HUP PID – server komunikuje přes filedeskriptory 0/1 SISAL Základy TCP/IP
50
Systém DNS • Klient-sever aplikace, binární protokol nad UDP i TCP • Typy serverů: – primární: udržuje data o doméně – sekundární: udržuje kopii dat – caching-only: udržuje pouze vyřešené odkazy
• Reverzní dotazy (IP adresa jméno) se řeší pomocí reverzních domén: IP adrese 194.50.16.71 odpovídá záznam 71 v doméně 16.50.194.in-addr.arpa • Diagnostika DNS: nslookup podpříkazy: set type, server, name, IPadr, ls, exit dig [@server] jméno [typ_dotazu] SISAL Základy TCP/IP
51
DNS dotaz a odpověď • Dotaz: – QUERY:
alias.tns.cz IN CNAME
• Odpověď: – – – – –
FLAGS: QUERY: ANSWER: AUTHORITY: ADDITIONAL:
Authoritative, Recursive alias.tns.cz IN CNAME alias.tns.cz IN CNAME ns tns.cz IN NS ns.tns.cz ns.tns.cz IN A 1.1.1.1
• Problém: Příznak Authoritative se nevztahuje na sekci ADDITIONAL, legální server pro nějakou doménu tam může legálně umístit falešné údaje. SISAL Základy TCP/IP
52
Uživatelské příkazy TCP/IP ARPA (Internet)
BSD (UNIX)
kopírování souborů vzdálené logování vzdálené provádění příkazů
ftp telnet rexec
rcp rlogin rsh
informace o uživatelích on-line komunikace
finger talk
rwho rwall
SISAL Základy TCP/IP
53
Příkaz ftp • File Transfer Protocol – řídící relace: port 21 – datový přenos (aktivní FTP): obrácený směr, port 20
• Interaktivní příkaz: – vlastní prompt – visuální interface
• Logování na vlastní účet nebo anonymně: login: anonymous password: elektronická_adresa • Seznam uživatelů se zakázaným FTP: /etc/ftpusers • Uživatel FTP musí mít platný login shell (/etc/shells) SISAL Základy TCP/IP
54
Podpříkazy ftp
• • • • • • • •
navazování relace: ukončování relace: lokální příkazy: vzdálené příkazy: přenos souborů: typ přenosu souborů: práce se soubory: pomocné příkazy:
open, user close, quit, bye lcd, !command cd, pwd, ls, dir get, put, mget, mput ascii, binary delete, rename, mkdir, rmdir prompt, hash, status, help, verbose, ...
SISAL Základy TCP/IP
55
Aktivní/pasivní datové spojení • Aktivní spojení 1.1.1.1:1234
PORT 1,1,1,1,8,0 200 PORT command OK. LIST
1.1.1.1:2048
2.2.2.2:21
2.2.2.2:20
• Pasivní spojení 1.1.1.1:1234
1.1.1.1:1235
PASV 227 OK (2,2,2,2,8,1) LIST
2.2.2.2:21
2.2.2.2:2049
SISAL Základy TCP/IP
56
Inicializační soubor ~/.netrc machine host login name password passwd macdef macro příkazy... macdef init inicializační příkazy... • • • •
parametry makra: $1..., volání makra: $jméno hesla jen pro anonymní a speciální uživatele! mód souboru s hesly musí být rw------vyvolání ftp bez inicializace: ftp -n SISAL
Základy TCP/IP
57
BSD příkazy • rcp -pr [[user@]host:]file ... sémantika stejná jako u příkazu cp: kopíruje soubory (adresáře) pod cílovým jménem (do cílového adresáře) ke stroji host přistupuje jako uživatel user
• rsh host [-l user ] cmd provedení příkazu cmd na stroji host pod uživatelem user
• rlogin host [-l user ] přihlášení uživatele user na stroji host SISAL Základy TCP/IP
58
Autorizace BSD příkazů /etc/hosts.equiv stejný uživatel?
ano
ne
uživatel root? ano
ne
client [user] ne
ok?
ano
~/.rhosts client [user] ne
příkaz rlogin?
ne
ok?
ano
ano
fail
kontrola hesla
OK SISAL
Základy TCP/IP
59
OTP, Secure shell Konvenční příkazy posílají uživatelská hesla otevřeně po síti. Řešení: • Systém OneTimePassword server vyšle jedinečný náhodný kód, uživatel na klientovi zadá do speciální kalkulačky kód a svoje heslo a dostane odpověď, kterou klient pošle servru
• Systém SecureShell programový balík nahrazující BSD příkazy
• šifruje veškerou komunikaci • umožňuje zadávat heslo i u příkazu scp SISAL Základy TCP/IP
60
Elektronická pošta – – – –
off-line předávání zpráv příp. souborů off-line použití informačních služeb diskusní kluby (mailing-listy, konference) komunikace mimo Internet
E-mailová adresa (typicky): alias@doména nebo login@počítač např.: [email protected] nebo [email protected]
SISAL Základy TCP/IP
61
Elektronický dopis Received: from alfik.ms.mff.cuni.cz by betynka.ms.mff.cuni.cz... Date: Thu, 16 Nov 1995 00:54:31 +0100 To: [email protected] From: Libor Forst Subject: Test posty Cc: [email protected] MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_XXX" --=_XXX Content-Type: text/plain; charset=Windows-1250 Content-Transfer-Encoding: 8bit Ahoj Petře! SISAL Základy TCP/IP
62
Ukázka SMTP protokolu 220 alfik.ms.mff.cuni.cz ESMTP Sendmail ... HELO betynka 250 alfik Hello betynka, pleased to meet you MAIL FROM: 250 2.1.0 ... Sender ok RCPT TO: 250 2.1.5 ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself dopis... . 250 2.0.0 h98G9FxT Message accepted for delivery QUIT 221 2.0.0 alfik closing connection SISAL Základy TCP/IP
63
Přístup k poště z pohledu uživatele
a) přímé připojení na SMTP server
Mail User Agent
Mail Transfer Agent
SMTP server
WAN
POP server b) připojení přes POP nebo IMAP server SISAL Základy TCP/IP
64
Příjem a odeslání pošty v SMTP mail-relay
a) přímé doručení 2 b) doručení přes forwarder
WAN
3 1
mail-forwarder
mbox IN MX 0 mbox IN MX 20 relay SISAL Základy TCP/IP
65
Příjem pošty na UNIXu • Příjem pošty – daemon sendmail, konfigurace sendmail.cf – aliasy (/etc/aliases): alias: adresa, adresa... aktivace: příkaz newaliases
• Čtení pošty: mail – není user-friendly – osobní autoforward: ~/.forward – adresa může mít tvar: "|cmd" – pozor na cykly
SISAL Základy TCP/IP
66
Odesílání pošty na UNIXu • Psaní pošty: mail [-v] [-s subject ] adresa ... – vhodné pro dávkové zpracování – příkazy ~v, ~s subj, ~q
• Vlastní nastavení: $HOME/.mailrc – možnost potlačení některých dotazů při odesílání – možnost potlačení výpisu některých informací při čtení – vlastní aliasy pro odesílání pošty, např.: alias project petr pavel [email protected]
SISAL Základy TCP/IP
67
Diskusní listy • adresa: mail_list@mailserver • (list)server: mail_list-request@mailserver listserv@mailserver – udržuje seznam abonentů – rozesílá dopisy nebo oznámení – udržuje archiv
• listy: – otevřené vs. uzavřené – moderované n. nemoderované
• příkazy: help, information, lists, review, [un]subscribe, index, search SISAL Základy TCP/IP
68
Etika poštovního styku • jazyk, výrazové prostředky • používání subjectu • míra zachování původního textu v odpovědi • účelné posílání souborů, češtiny • obtěžování uživatelů a sítě, řetězové dopisy
SISAL Základy TCP/IP
69
Bezpečnost pošty • Dopis je vždy otevřená listovní zásilka (z různých příčin se může dostat do ruky mnoha lidem) Řešení: kryptovat obsah dopisu (crypt, PGP - Pretty Good Privacy) • Nikdy není jistý odesilatel (málokterý server kontroluje správnost odesilatele) Řešení: elektronické podpisy, systém výzva/odpověď
SISAL Základy TCP/IP
70
Šifrování • Symetrické šifrování – pro šifrování a dešifrování se používá stejný klíč – výhoda: rychlé – nevýhoda: partneři si musí klíč předat bezpečnou cestou
• Asymetrické šifrování – pro šifrování a dešifrování se používá dvojice klíčů – nevýhoda: pomalé – výhoda: jeden klíč je veřejný, druhý tajný
• Hash – vytvoření „kódu“ z daného textu – změny textu a hashe jsou navzájem neodvoditelné SISAL Základy TCP/IP
71
Šifrování dopisu volný text náhodný symetrický klíč veřejný klíč příjemce symetricky zašifrovaný text asymetricky zašifrovaný klíč
symetricky zašifrovaný text asymetricky zašifrovaný klíč tajný klíč příjemce náhodný symetrický klíč volný text SISAL Základy TCP/IP
72
Elektronický podpis hash textu tajný klíč odesilatele volný text
zašifrovaný hash
volný text
zašifrovaný hash veřejný klíč odesilatele hash textu =? hash textu SISAL
Základy TCP/IP
73
Uniform Resource Identifier • • • •
jednotný systém odkazů jediný klient pro více služeb nepostradatelná pro WWW historické členění: URL, URN, ... protokol:// [jméno[:heslo]@]adresa[:port][ cesta] protokol adresa cesta
př.: ftp://sunsite.mff.cuni.cz/OS/FreeBSD http://www.cesnet.cz:8080 mailto: [email protected] SISAL Základy TCP/IP
74
Princip ditribuované databáze Gopher at Charles University gopher.cuni.cz 1. About this Gopher ... 4. Czech Educational and Scientific Network ... 9. User Directory Service for Czech Republic ...
Czech Root Gopher Server
gopher.cesnet.cz
1. About this Gopher ... 5. User Directory Service for Czech Republic ...
User Directory Service whois.cuni.cz
Enter search key
_ SISAL
Základy TCP/IP
75
Hypertext • Původní význam: text doplněný vazbami (podobně jako např. v Helpu ve Windows). Zvolením vyznačených slov lze získat podrobnější informaci nebo přejít na příbuzné téma. • Dnešní chápání: blíže pojmu hypermediální text, neboli text doplněný nejen odkazy, ale i netextovými prvky (obrázky, zvuk, video...)
SISAL Základy TCP/IP
76
World Wide Web • WWW je distribuovaná hypertextová databáze • Základní jednotkou je stránka (dokument) • Dokumenty jsou psány v textovém jazyce HTML – popisuje obsah i formu (styly - CSS) – existují staticky nebo se vytvářejí dynamicky
• Odkazy: – mohou vést na příbuzné dokumenty nebo programy – jsou zapisovány ve tvaru URL – jsou součástí textu příp. i obrázků
SISAL Základy TCP/IP
77
Protokol HTTP URL: http://www.../index.html GET /index.html server
klient HTTP/1.0 200 OK Content-type: text/html <TITLE>Stranka ... Nadpis stránky
...
HTML stránka
SISAL Základy TCP/IP
78
Příkazy HTTP
Metoda
Požadavek
Odpověď
GET
---
požadovaná stránka
HEAD
---
---
POST
parametry stránky
požadovaná stránka
PUT
soubor
---
CONNECT
..................... tunel .....................
SISAL Základy TCP/IP
79
Dynamické stránky • Dynamika řízená na serveru: – Formuláře + cgi-skripty, server-side include – HTML preprocesor (PHP)
• Přenesení výpočetního výkonu na klienta: – Java - jazyk myšlenkově vycházející z C++, s vyššími nároky na bezpečnost, s knihovnami pro jednoduchou tvorbu uživatelského rozhraní Java programy (applety), se na klienta přenášejí jako přeložený kód a on ho interpretuje a provádí (víceméně) nezávisle na platformě za pomoci lokálních knihoven – Javascript - analogický princip, na klienta se ale přenáší zdrojový kód a on ho interpretuje
SISAL Základy TCP/IP
80
Bezpečnost na WWW • Bezpečnost uživatele – komunikace mezi klientem a serverem probíhá otevřeně – přenos citlivých informací (hesla, údaje ve formulářích) představuje riziko – zabezpečená forma komunikace přes Transport Layer Security (TLS), dříve Secure Sockets Layer (SSL) – dnes podporují všichni běžní klienti/servry
• Bezpečnost serveru – přes WWW server vede většina útoků – pečlivě udržovaný systém – minimální práva
SISAL Základy TCP/IP
81
The End
SISAL Základy TCP/IP
82