Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Unix a Internet 3. Používání TCP/IP
Obsah: síťová rozhraní ARP směrování well known ports resolver implementace serveru a klienta telnet, ssh, VNC, X protokol © Milan Keršláger 2018/4/30
2
Síťové rozhraní typicky síťová karta
ethernetová, Wi-Fi, ale i sériový port s PPP, SLIP… vždy je v systému loopback interní rozhraní ( ) síťová komunikace jen v rámci počítače přijímá a vysílá IP datagramy uvnitř typicky vyšší protokol: ICMP, UDP, TCP řízena ovladačem ovladač vysílá a přijímá připravené datagramy některé ovladače mají omezené funkce (Windows, Android)
3
Linux: síťová rozhraní
seznam zveřejňuje jádro cat /proc/net/dev chybějící síťové zařízení → není ovladač ručně: modprobe nazev seznam modulů v jádře: lsmod umístění modulů: ls /lib/modules/$(uname -r)/kernel/drivers/net/ zavedení modulu má na starost démon udevd po při startu si přečte z ovladačů tabulku známých ID objeví-li se zařízení, zavede podle ID ovladač viz: lspci; lspci -n
4
Linux: správa rozhraní
názvy zařízení: podle MAC adresy při vzniku zařízení: cat /etc/udev/rules.d/70-persistent-net.rules pomocí příkazu ifrename ifrename -i název -n novýnázev NetworkManager GUI rozhraní pro správu síťových rozhraní startovací skripty distribuce
5
Linux: konfigurace rozhraní
ifconfig výpis a nastavení síťových rozhraní ifconfig eth0 up ifconfig eth0 down ifconfig eth netmask ip nový univerzální nástroj, náhrada ifconfig iwconfig, iwlist pro bezdrátová rozhraní
6
iwconfig slouží k nastavení Wi-Fi rozhraní režim adaptéru
strukturovaná síť (s AP), Ad-Hoc, režim AP ESSID – název sítě klíče pro šifrování WEP iwconfig wlan0
7
iwlist výpis sítí, které jsou slyšet AP vysílají ESSID identifikátory
součástí výpisu jsou detailní informace název sítě (ESSID) norma a kanál, na kterém AP vysílá šifrování ano/ne WPA, WPA2 – protokol výměny klíčů (TKIP) eventuální autentizace 802.1X (jméno + heslo)
8
wpa_supplicant démon pro řízení WPA a WPA2
během komunikace se neustále mění klíče nelze zajistit přímo pomocí hardware když už máme v počítači výkonný procesor... jde o spolupráci klienta a AP plus bezpečná výměna klíčů
9
ARP Address Resolution Protocol překlad IP → MAC adresa
víme cílovou IP adresu, ale nevíme cílovou MAC počítač vyšle lokální broadcast (slyší všichni): „kdo má IP adresu “? všichni slyší a zapíší si naši MAC do ARP tabulky majitel IP adresy odpoví přímo tazateli tazatel si zapíše do ARP tabulky záznam s IP a MAC záznam v tabulce je časově omezen (minuty) tazatel pak může vytvořit rámec a odeslat ho není nijak zabezpečeno
10
ARP tabulka dynamické záznamy výpis: arp -an
vazba: MAC adresa ↔ IP adresa standardně funkce TCP/IP stacku v jádře OS omezená trvanlivost (desítky vteřin až desítky minut) statické záznamy používáno pro zvýšení bezpečnosti ARP démon externí obsluha ARP tabulky je možné kryptografické ověření autenticity
11
Ukázka ARP tabulky $ arp -an
? ( ) na 64:31:50:10:da:d1 [ether] na eth1 ? ( ) na 00:27:0d:87:70:e0 [ether] na eth2 ? ( ) na 00:04:75:fd:e8:f5 [ether] na eth1 ? ( ) na 00:22:15:4f:c3:9c [ether] na eth1 ? ( ) na 00:23:54:25:8b:6e [ether] na eth1 ? ( ) na <nekompletní>na eth1
12
Využití ARP tabulky při odesílání IP datagramu víme cílovou IP adresu
odeslat můžeme jen ethernetový rámec cíl je určen MAC adresou MAC adresu je nutné zjistit z ARP tabulky několik IP adres pod stejnou MAC IP aliasy na rozhraní, bridge, proxy ARP
13
Multihoming vlastnost síťového rozhraní implementováno v Linuxu
IP adresa „se ukazuje“ na všech rozhraních IP aliasy nemusí být na konkrétním rozhraní končí-li IP datagram na počítači, není protahován skrze forwardovací rutinu, i když je na jiném rozhraní, než ze kterého byl přijat zjednodušuje implementaci
14
Směrování „routing“ sdružuje IP adresy do podsítí
cílem je zjednodušení směrovací tabulky statický pevně nastaven správcem sítě (počítače) vhodný pro malé sítě dynamický (RIP, BGP, OSPF, ...) adaptuje se na aktuální situaci v případě výpadků, rozkládání zátěže je problém vytváření autonomních systémů každý provider zodpovědný za svoje podsítě automatická propagace nových podsítí Čína na sebe přesměrovala provoz serverů USA
15
Směrovací tabulka routing table spravována TCP/IP stackem jádra
záznamy: automatické → pro každé síťové rozhraní vyjadřuje, kdo je přímým sousedem za daným rozhraním přímému sousedovy jsou posílány ethernetové rámce přímo statické → dle uvážení správce typicky pro sítě, které jsou „schované uvnitř“ implicitní brána (default gateway) → cesta „do Internetu“ dynamické spravované nějakým směrovacím démonem pomocí protokolů RIP, BGP, OSPF, ...
16
Router směrovač datagramy skrz něj prochází
snižuje položku TTL v hlavičce IP datagramů datagram přijme a rozhodně co dál router je cílem → datagram předán aplikaci datagram předáván dál o další cestě rozhodne směrovací tabulka předávání datagramů dál je tzv. IP forwarding zapnutí a zjištění stavu v Linuxu: cat /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward
17
route výpis směrovací tabulky route -n
též přidávání a mazání směrovacích záznamů záznam pro přidané rozhraní se přidá automaticky tj. pro počítače přímo dostupné za síťovým rozhraním route add -net netmask gw route del -net netmask gw route add default gw
18
Ukázka směrovací tabulky
$ route -n Kernel IP routing table Destination Gateway Genmask Fla Met Iface U 0 eth0 U 0 eth2 U 0 eth1 UG 0 eth2 UG 0 eth2 UG 0 eth0
19
End host koncový počítač typicky dekstop má jednu síťovou kartu
datagramy, které přijme, v něm končí přijaté datagramy předány aplikacím rozlišení podle čtveřice hodnot: 2x(IP+port)
20
Implementace serveru typicky (síťový) démon program běžící na pozadí
připojí se na síťový port a naslouchá na jednom síťovém rozhraní nebo na všech výpis: netstat -pantu naslouchající je ve stavu listen porty s číslem < 1024 jsou privilegované (well known) může se na ně připojit jen správce (root) → bezpečnostní riziko dnes v jádře využíváme capabilities (vlastnost binárky) využívá se multiprogramování po příchodu spojení je pověřen vyřízením potomek vyřizování požadavku neblokuje serveru příjem dalších spojení
21
Well known ports dobře známé porty definuje IANA
stačí vědět, jakou službu chceme není nutné si pamatovat číslo portu jen pokud je služba na nestandardním portu příklady: HTTP: 80, HTTPS: 443 SSH: 22, telnet: 23, DNS: 53, SMTP: 25 POP3: 110, POP3S: 995, IMAP: 143, IMAPS: 993 FTP: 21 (řídící spojení), 20 (data) … další viz soubor /etc/services
22
/etc/services /etc/services seznam → well known ports
lze měnit, ale nedoporučuje se program může použít symbolický název služby a přes tento soubor dostane číslo portu ve Windows: c:\windows\system32\drivers\etc\services
23
Resolver zajišťuje služby okolo DNS
překlad doménového jména na IP adresu a zpět knihovní funkce, používá je programátor konfigurace v /etc/resolv.conf, např: domain tul.cz search tul.cz nameserver nameserver
24
/etc/hosts převod jméno → IP adresa typicky má přednost před DNS
dle souboru /etc/nsswitch.conf hosts: files dns minimální obsah /etc/hosts localhost :: localhost6
25
Příklad: MTA pro přepravu elektronické pošty (e-mail)
např. sendmail, postfix, Exchange, … používá port 25 → musí ho spustit root proces (rodič) se připojí na port 25 odpojí se od terminálu → démon dále naslouchá příchozí spojení → vytvoří potomka rodič spojení zavře, potomek spojení vyřídí rodič dále naslouchá
26
Příklad: webový server
např. Apache, IIS, … používá port 80 (a 443 pro HTTPS) proces (rodič) se připojí na port(y) odpojí se od terminálu vytvoří si do zásoby několik potomků vytvoření potomka je relativně náročná operace minimalizuje se doba prodlevy rodič naslouchá příchozí spojení → vyřídí pověřený potomek potomek obsluhuje maximálně X požadavků redukuje riziko dopadu memleaku
27
Příklad: doménový server
v běžných případech pro interní klienty používá UDP podobně jako předchozí obsadí port 53 např. vytvoří thready jako obslužné démony příchozí dotaz → thread je pověřen vyřízením po dobu vyřizování není blokováno naslouchání
28
Síťový superserver xinetd
u málo využívaných služeb se démon nevyplatí xinetd obsadí porty, které chceme obsluhovat konfigurace v adresáři /etc/xinetd.d přijde-li požadavek, je spuštěna obsluha obsluhou je specializovaný program ten musí být přizpůsoben na spolupráci s xinetd používá se například pro: telnet, tftp, time, ...
29
Síťový klient např. webový prohlížeč, poštovní program, …
chce navázat síťové spojení obsadí nějaký volný síťový port (>= 1024) jiná aplikace se na port již nepřipojí u příchozích datagramů jednoznačný příjemce naváže spojení s protistranou
30
telnet původně pro vzdálený terminál původně po sériových linkách
bez šifrování přihlášení jméno+heslo → příkazový řádek dnes využívá počítačovou síť → TCP protokol TCP je stavový protokol se spojením a se zárukami zachování pořadí, řeší ztráty a duplicity s výhodou pro testování TCP komunikace protokoly HTTP, SMTP, POP3, IMAP, … se šifrováním → openssl
31
SSH náhrada telnetu přidává šifrování asymetrická + symetrická šifra
bezpečný přenos hesla i další komunikace umožňuje tunelování přenos dat (TCP) skrze bezpečný kanál součástí je i SCP a SFTP bezpečné kopírování souborů automatické tunelování X protokolu
32
VNC připojení ke vzdálenému grafickému rozhraní
dlouho bez podpory šifrování VNC server vytváří v RAM obraz „monitoru“ VNC klient získává informace o změnách v obrazu VNC serveru optimalizace přenosů (čtverce) komprimace dat RDP (Microsoft) je efektivnější RDP umí kreslit (pracovat s) elementy GUI
33
X protokol pro GUI (X Window System) model klient server
klientem je program (např. Firefox) serverem je obsluha grafické karty klient i server mohou být na různých počítačích asynchronní obsluha požadavků klient klade požadavky na vykreslování server informuje o událostech vyvolaných uživatelem celkově nevhodné pro přenos po síti velký datový tok, latence jsou kritickým místem protože byl navržen jako univerzální
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.