SISALZáklady TCP/IP 1
Základy TCP/IP
• Motivace, historie, model
• Principy adresování, DNS
• Tok dat, topologie, routing
• Základní protokoly, aplikace
• E-mail, FTP, BSD příkazy
Libor ForstLibor Forst
SISALZáklady TCP/IP 2
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)
SISALZáklady TCP/IP 3
Vznik počítačových sítí
terminály point-to-point propojení
emulace terminálu+
klient-server aplikacerozlehlá síťlokální síť
izolované výpočetní systémy
robustní kompaktní aplikace
SISALZáklady TCP/IP 4
Počítačové sítě
• Lokální sítě (Local Area Network)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)Rozlehlé sítě (Wide Area Network)– konektivita, komunikace
– velké vzdálenosti, nižší výkon
– příklady: Internet, Bitnet
SISALZáklady TCP/IP 5
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
SISALZáklady TCP/IP 6
Vývoj Internetu v číslech
20012001
Zdroj: MIDS, Austin TX, based on historical data
Počet Počet obyvatel obyvatel ZeměZemě
Počet Počet uživatelů uživatelů InternetuInternetu
Počet Počet počítačůpočítačův Internetuv Internetu
82 84 86 88 90 92 94 96 98
5 000 000 000
500 000 000
50 000 000
5 000 000
500 000
50 000
5 000
500
SISALZáklady TCP/IP 7
Typy síťových propojení
Sběrnice (např. 10base2)
Hvězda (např. 10baseT, ATM)
Kruh (např. FDDI, Token-ring)
Point-to-point přímé
Point-to-point přes modemy
Point-to-point bezdrátové (např. laser, radioreléové, WiFi)
SISALZáklady TCP/IP 8
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
SISALZáklady TCP/IP 9
OSI model
Pořadí Vrstva Úkol
7 aplikační komunikace mezi programy
6 prezentační datové konverze
5 relační navázání relace mezi počítači
4 transportní korektnost přenosu informace
3 síťová dosažení cílového počítače
2 linková přenos dat po navázaném spojení
1 fyzická interpretace elektrického signálu
protokol rozhraní
SISALZáklady TCP/IP 10
-
ARP
TCP
hardware
network interface
internet
transportní
aplikační6
5
4
3
2
1
TCP/IP model
7
OSI Vrstva Protokoly v TCP/IP (příklady)
UDP
Ethernet, FDDI, ATM, SLIP, X.25
IPICMP
FTP
RPC
XDR
NFS
SISALZáklady TCP/IP 11
Spojované/nespojované služby
• spojované (connection-oriented) službyspojované (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žbynespojované (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šší
SISALZáklady TCP/IP 12
TCP okna
00
00
00
00
10
10
10
10
10
20
20
20
20
30
30
30
40
40
50
00
10
20
30
40
ACK 10
SISALZáklady TCP/IP 13
Zahájení a ukončení spojení
•Navázání TCP spojení
•Jednostranné uzavření spojení
SYN Seq# c Ack# 0
SYN, ACK Seq# s Ack# c+1
ACK Seq# c+1 Ack# s+1
FIN, ACK Seq# x Ack# y
ACK Seq# y Ack# x+1
SISALZáklady TCP/IP 14
Typy adresování
• HW (linková vrstva)
• SW(síťová vrstva)
• Lidé (aplikační vrstva)
• MAC (ethernetová) adresa (např.: 8:0:20:ae:6:1f)
– dána výrobcem
– nerespektuje topologii
• 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č
• Doménová adresa (např.: whois.cuni.cz)
– přidělována podle organizační struktury
– snazší zapamatování
SISALZáklady TCP/IP 15
Konverze adres
• 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ěď
• doménové adresy
• IP adresy
• MAC adresy
SISALZáklady TCP/IP 16
Třídy IP adres
A
B
C
D
E
126~16 k~2 M
~16 M~64 k
254
10
110
1110
1111
net
net
net
net
host
host
host
TřídaTvar adresy
1.bytePočet
sítí strojů
multicast
experimental
1-126
128-191
192-223
224-239
240-255
Začátek
adresy
0
2.byte 3.byte 4.byte
SISALZáklady TCP/IP 17
Speciální adresy
• loopbackloopback– 127.0.0.1– adresa loopback rozhraní
• privátní adresyprivá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 broadcastnetwork broadcast– <adresa sítě>.<samé jedničky>– „všem v dané síti“– normálně se doručí do cílové sítě
• limited broadcastlimited broadcast– 255.255.255.255– „všem v této síti“– nesmí opustit síť
SISALZáklady TCP/IP 18
• Subnetting dovoluje rozšířit síťovou část adresy:
pomocí specifikace tzv síťové masky (netmask),v tomto případě 255.255.255.192:
• 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).
Subnetting
net hostsubnet
11111111 1111111111111111 00000011
SISALZáklady TCP/IP 19
Supernetting
192.168.4 192.168.5
• router agreguje směrovací informace (192.168.4.0/23)
• dual homed neroutující server– je zapotřebí různé DNS pro
sítě ...4.0 a ...5.0
• single homed server– veškerý provoz ze
sítě ...4.0 jde přes router
SISALZáklady TCP/IP 20
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
SISALZáklady TCP/IP 21
Doménový systém
cz
server pro root doménu
ns cesnet
server pro doménu cz
vutbr
cuni
mff
dec59
ruk
server pro domény cuni.cz a ruk.cuni.cz
skedu
nic netnordu
fixlink
defzi
whois
SISALZáklady TCP/IP 22
Vyřizování DNS dotazu
ns.cesnet.czcz
ns.cesnet.czcz
fixlink.fzi.de
IP=193...www.mff.cuni.cz
www.mff.cuni.cz
cz: NS=192...
www.mff.cuni.cz
IP=193...
nerekurzivní
rekurzivní
a.root-servers.net.
a.root-servers.net.
ns.fzi.defzi.de
ns.fzi.defzi.de www.mff.cuni.cz
ns.cuni.czcuni.cz,
mff.cuni.cz
ns.cuni.czcuni.cz,
mff.cuni.cz
cuni.cz: NS=195...
SISALZáklady TCP/IP 23
datagram
Tok dat v TCP/IP
DataAplikace streammessage
TCP/UDP header DataTransport packet
IP header packetIP datagram
Interface headerInterface frameCRC
...
SISALZáklady TCP/IP 24
Multiplexing, demultiplexing
Ethernet
ARP IP IPX
rozhodování podle typu (délky)Ethernet rámce
ICMP UDP TCP
rozhodování podle IP protokolu
rozhodování podle čísla portu
Aplikace Aplikace
SISALZáklady TCP/IP 25
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
<IPadresa, port>– Výpis otevřených socketů: netstat [-an]
SISALZáklady TCP/IP 26
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)
SISALZáklady TCP/IP 27
Struktura ethernetového rámce
DestinationMAC address
SourceMAC address Type Data CRC
Ethernet v2:Ethernet v2:
DestinationMAC address
SourceMAC address Len Data CRC
IEEE 802.3IEEE 802.3
IP 0x0800ARP 0x0806RARP 0x8035IPX 0x8137
<= 1500
SISALZáklady TCP/IP 28
Identification(pořadové číslo)
Protocol(/etc/protocols)
Struktura IP datagramu
Version HeaderLength
Service Type(priorita)
Flags Fragment Offset
Header ChecksumTime-to-live
Source IP Address
Destination IP Address
Options
Data
Padding
Total Length
SISALZáklady TCP/IP 29
Source Port
Struktura TCP paketu
Options
Data
Padding
Destination Port
Urgent PointerChecksum
Sequence Number
Acknowledgement Number
DataOffset
(rsvd)Flags
(SYN,URG,ACK,...)Window
SISALZáklady TCP/IP 30
Spojování segmentů sítě
aplikační
transportní
síťová
linková
fyzická
Vrstva
aplikační
transportní
síťová
linková
fyzická
Vrstva
gateway (brána)
router (směrovač)
bridge, switch
repeater, HUB
Síťové zařízení
SISALZáklady TCP/IP 31
Porovnání HUB vs. switchS
S
S S S
• HUB 10 Mbit/s
• Switch 10 Mbit/s
S• Switch s uplinkem up to 100 Mbit/s
• Switch, více serverů > 10 Mbit/s
SISALZáklady TCP/IP 32
Příklad topologie sítě
Lokální síťLokální síť
Lokální síťLokální síťWANWAN
Klient 8
Router
Klient 9
Klient 5Klient 4
Klient 7
Klient 3Klient 2Klient 1
Klient 6
Repeater
Server 2
Server 1
Bridge ProvozProvoz
EthernetEthernet
segmentsegment
SISALZáklady TCP/IP 33
Principy firewallu
Proxy-server
IP filtr
klient - server klient - server
vnitřní adresy vnější adresy
NAT
SISALZáklady TCP/IP 34
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:
• 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
Ethernet=1 IP=0x0800 ARPreq=1
FF:FF:FF:FF:FF:FF Target IP
Sender MAC Sender IP
SISALZáklady TCP/IP 35
Proxy ARP
klient posílá ARP request s IP adresou host
klient
proxy ARP router 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
SISALZáklady TCP/IP 36
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
SISALZáklady TCP/IP 37
Směrování
výchozí poč.IP: n1.h1
router 1IP: n1.h2
router 2IP: n2.h1
cílový poč. IP: n2.h2
OSI 7-4 OSI 3 OSI 2 OSI 1
n2.h2n2.h2n2.h2
n2.h2
n2.h2
n2.h2
n2.h2n2.h2
n2.h2
MAC12
n2.h2n2.h2MAC12
n2.h2n2.h2MAC21
n2.h2n2.h2MAC21
n2.h2n2.h2MAC22
MAC22
SISALZáklady TCP/IP 38
Směrovací algoritmus
můjstroj?
mojesíť?
ponechat
poslat (podle ARP)
poslat směrovači
direct route
indirect nebo default route
No route to hostexistuje? není cestane
ano
ano
ne
zvol nejspeciálnější záznam (host, net, default)
SISALZáklady TCP/IP 39
Příklad směrovací tabulky
Destination Gateway Mask
193.84.48.50 193.84.48.49 255.255.255.255 direct, host
194.50.16.64 194.50.16.71 255.255.255.224 direct, subnet
194.50.17.0 194.50.16.77 255.255.255.0 indirect, net
default 193.84.48.50 0.0.0.0 default
194.50.16.64
194.50.17.0 193.84.48.48
49 50
7177
SISALZáklady TCP/IP 40
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)
SISALZáklady TCP/IP 41
Statické řízení směrovacích tabulekCesty 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ě
adddeleteflush | -f
[[-]host] host [[-]net] net [[-netmask] mask]default | 0 routerinterface [-interface]
{ }{ }route
{[gw] [metric]}
SISALZáklady TCP/IP 42
Redirekce
síť
6.0.0.0síť
8.0.0.0
default 5.0.0.8 UGdefault 5.0.0.8 UG
novýnový obsah tabulky:
8 6
síť5.0.0.0
původnípůvodní obsah tabulky:
1. první datagram pro6.0.0.1
default 5.0.0.8 UG
6.0.0.0 5.0.0.6 UGD
default 5.0.0.8 UG
6.0.0.0 5.0.0.6 UGD
3. ICMP redirect
4. další datagramy pro 6.0.0.1
2. redirekcedatagramu
SISALZáklady TCP/IP 43
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
SISALZáklady TCP/IP 44
Diagnostika směrování
• Výpis směrovacích tabulek: netstat -r[n]
Destination Gateway Flags Ipkts ... Colls Interface
194.50.16.0 this U 15943 ... 0 tu0
127.0.0.1 loopback UH lo0
default gw UG tu0
193.84.57.0 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
SISALZáklady TCP/IP 45
Konfigurace TCP/IP
UNIXUNIX– IP adresa: ifconfig interface IP_adr [ netmask maska ]
– defaultní router: route add default router
– doména a nameserver: /etc/resolv.conf
Windows 95Windows 95– start dialogu: Control Panel Network TCP/IP
domain jméno_domény nameserver IP_adresa_nameserveru
SISALZáklady TCP/IP 46
Protokol BOOTP/DHCP
FF.FF... MAC 255... BOOTPS
• 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,...
0.0.0.0
BOOTPS request MAC
SISALZáklady TCP/IP 47
Automatická konfigurace
BOOTPS request: Ethernetová adresa klienta
klient
router s BOOTP forwardingem
BOOTPC reply: IP adresa, maska, router...
server
limited broadcastunicast
broadcast, unicast
SISALZáklady TCP/IP 48
Model TCP aplikace
socketsocket
Server
bindbind
listenlisten
acceptaccept
readread
writewrite
closeclose
socketsocket
Klient
connectconnect
writewrite
readread
closeclose
bindbind
SISALZáklady TCP/IP 49
Model UDP aplikace
socketsocket
Server
bindbind
closeclose
socketsocket
Klient
bindbind
writesendtosendmsg
writesendtosendmsg
readreadfromreadmsg
readreadfromreadmsg
closeclose
writesendtosendmsg
writesendtosendmsg
readreadfromreadmsg
readreadfromreadmsg
connectconnect connectconnect
SISALZáklady TCP/IP 50
Start síťových daemonů
• přímý startpřímý start– ve startovacích scriptech– intenzivně využívané, speciální služby, se složitou inicializací
• nepřímý start nepřímý start (on demand)– provádí daemon inetd – konfigurace v /etc/inetd.conf:
– překonfigurování: kill -HUP PID– server komunikuje přes filedeskriptory 0/1
bootps dgram udp wait root /etc/bootpd bootpdtftp dgram udp wait nobody /etc/tftpd tftpd /tftpbootwhois stream tcp nowait nobody /etc/whoisd whoisd
SISALZáklady TCP/IP 51
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]
SISALZáklady TCP/IP 52
DNS dotaz a odpověď
• Dotaz:– QUERY: alias.tns.cz IN CNAME
• Odpověď:– FLAGS: Authoritative, Recursive– QUERY: alias.tns.cz IN CNAME– ANSWER: alias.tns.cz IN CNAME ns– AUTHORITY: tns.cz IN NS ns.tns.cz– ADDITIONAL: 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.
SISALZáklady TCP/IP 53
Uživatelské příkazy TCP/IP
ARPA BSD(Internet) (UNIX)
kopírování souborů ftp rcp
vzdálené logování telnet rlogin
vzdálené provádění příkazů rexec rsh
informace o uživatelích finger rwho
on-line komunikace talk rwall
SISALZáklady TCP/IP 54
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: anonymouspassword: elektronická_adresa
• Seznam uživatelů se zakázaným FTP: /etc/ftpusers
• Uživatel FTP musí mít platný login shell (/etc/shells)
SISALZáklady TCP/IP 55
• navazování relace: open, user
• ukončování relace: close, quit, bye
• lokální příkazy: lcd, !command
• vzdálené příkazy: cd, pwd, ls, dir
• přenos souborů: get, put, mget, mput
• typ přenosu souborů: ascii, binary
• práce se soubory: delete, rename, mkdir, rmdir
• pomocné příkazy: prompt, hash, status, help, verbose, ...
Podpříkazy ftp
SISALZáklady TCP/IP 56
Aktivní/pasivní datové spojení
•Aktivní spojení
1.1.1.1:1234 2.2.2.2:21PORT 1,1,1,1,8,0
200 PORT command OK.
LIST
1.1.1.1:2048 2.2.2.2:20
•Pasivní spojení
1.1.1.1:1234 2.2.2.2:21PASV
227 OK (2,2,2,2,8,1)
LIST
1.1.1.1:1235 2.2.2.2:2049
SISALZáklady TCP/IP 57
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
SISALZáklady TCP/IP 58
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 ] cmdprovedení příkazu cmd na stroji host pod uživatelem user
• rlogin host [-l user ]přihlášení uživatele user na stroji host
SISALZáklady TCP/IP 59
Autorizace BSD příkazů
uživatelroot?
stejnýuživatel?
kontrola hesla
ne
ano
ano
ne
ne
ano
/etc/hosts.equiv
client [user]
ok?ano
OK
ne
ano
~/.rhosts
client [user]
ok?ne
fail
příkazrlogin?
SISALZáklady TCP/IP 60
OTP, Secure shell
Konvenční příkazy posílají uživatelská hesla otevřeně po síti.
Řešení:
• Systém OneTimePasswordserver 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 SecureShellprogramový balík nahrazující BSD příkazy
• šifruje veškerou komunikaci• umožňuje zadávat heslo i u příkazu scp
SISALZáklady TCP/IP 61
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ř.:
SISALZáklady TCP/IP 62
Elektronický dopisReceived: from alfik.ms.mff.cuni.cz
by betynka.ms.mff.cuni.cz...Date: Thu, 16 Nov 1995 00:54:31 +0100To: [email protected]: Libor Forst <[email protected]>Subject: Test postyCc: [email protected]: 1.0Content-Type: multipart/mixed; boundary="=_XXX"
--=_XXXContent-Type: text/plain; charset=Windows-1250Content-Transfer-Encoding: 8bit
Ahoj Petře!
SISALZáklady TCP/IP 63
Ukázka SMTP protokolu
220 alfik.ms.mff.cuni.cz ESMTP Sendmail ...HELO betynka250 alfik Hello betynka, pleased to meet youMAIL FROM: <[email protected]>250 2.1.0 <[email protected]>... Sender okRCPT TO: <[email protected]>250 2.1.5 <[email protected]>... Recipient okDATA354 Enter mail, end with "." on a line by itselfdopis....250 2.0.0 h98G9FxT Message accepted for deliveryQUIT221 2.0.0 alfik closing connection
SISALZáklady TCP/IP 64
Mail Transfer Agent
Přístup k poště z pohledu uživatele
POP
server
a) přímé připojení na SMTP server
b) připojení přes POP nebo IMAP server
MailUserAgent
SMTP
server WANWAN
SISALZáklady TCP/IP 65
Příjem a odeslání pošty v SMTP
WANWAN
mail-forwarder
mail-relaya) přímé doručení
b) doručenípřes forwarder
mbox IN MX 0 mbox IN MX 20 relay
1
2
3
SISALZáklady TCP/IP 66
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
SISALZáklady TCP/IP 67
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]
SISALZáklady TCP/IP 68
Diskusní listy
• adresa: mail_list@mailserver
• (list)server: mail_list-request@mailserverlistserv@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
SISALZáklady TCP/IP 69
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
SISALZáklady TCP/IP 70
Bezpečnost pošty
• Dopis je vždy otevřená listovní zásilka 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ý odesilatelodesilatel(málokterý server kontroluje správnost odesilatele)
Řešení: elektronické podpisy, systém výzva/odpověď
SISALZáklady TCP/IP 71
Š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é
SISALZáklady TCP/IP 72
Šifrování dopisu
volný text
veřejný klíč příjemce
náhodný symetrický klíč
symetricky zašifrovaný text asymetricky zašifrovaný klíč
tajný klíč příjemce
náhodný symetrický klíč
volný text
symetricky zašifrovaný text asymetricky zašifrovaný klíč
SISALZáklady TCP/IP 73
Elektronický podpis
tajný klíč odesilatele
hash textu
zašifrovaný hashvolný text
veřejný klíč odesilatele
hash textu
zašifrovaný hash
hash textu=?
volný text
SISALZáklady TCP/IP 74
Uniform Resource Identifier
• jednotný systém odkazů
• jediný klient pro více služeb
• nepostradatelná pro WWW
• historické členění: URL, URN, ...
protokolprotokol:// [jméno[:heslo]@]adresaadresa[:port][cestacesta]
př.:
ftp://sunsite.mff.cuni.cz/OS/FreeBSD
http://www.cesnet.cz:8080
mailto: [email protected]
SISALZáklady TCP/IP 75
Princip ditribuované databáze
Gopher at Charles University
1. About this Gopher ... 4. Czech Educational and Scientific Network ... 9. User Directory Service for Czech Republic ...
Czech Root Gopher Server
1. About this Gopher ... 5. User Directory Service for Czech Republic ...
User Directory Service
Enter search key _
gopher.cesnet.cz
whois.cuni.cz
gopher.cuni.cz
SISALZáklady TCP/IP 76
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...)
SISALZáklady TCP/IP 77
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ů
SISALZáklady TCP/IP 78
Protokol HTTP
GET /index.html
klientserverHTTP/1.0 200 OKContent-type: text/html
<HTML><HEAD><TITLE>Stranka ...</TITLE></HEAD><BODY><H1>Nadpis stránky</H1><HR>...
URL: http://www.../index.html
HTMLstránka
SISALZáklady TCP/IP 79
Příkazy HTTP
GET požadovaná stránka
HEAD
POST požadovaná stránkaparametry stránky
PUT ---soubor
CONNECT ..................... tunel .....................
Metoda Odpověď Požadavek
---
---
---
SISALZáklady TCP/IP 80
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
SISALZáklady TCP/IP 81
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
SISALZáklady TCP/IP 82
The End