L3 a FW PB156cv - jaro 2021 Michal Šnajdr snajdr@ics.muni.cz Michal Šnajdr snajdr@ics.muni.cz L3 a FW 1/22 Obsah cvičení ► IP adresy, subnetting, směrování ► Unix utility pro síť ► Firewall Michal Šnajdr snajdr@ics.muni.cz L3 a FW 2/22 Co potrebujeme nastavit k úspěšné komunikaci v IPv4 síti? ► IP adresu ► Masku podsítě ► Výchozí bránu Michal Šnajdr snajdr@ics.muni.cz L3 a FW 3/22 Maska podsítě příklad 1 192.168.1.50/24 11000000 10101000 00000001 0011001 o Adresa sítě 192.168.1.0/24 Broadcast 192.168.1.255 Michal Šnajdr snajdr@ics.muni.cz L3 a FW 4/22 Maska podsítě příklad 2 172.17.50.198/19 iQigiiQO.ogoigooi.goi 10010.1100011 o 255.255.224.0 11111111.11111111.11100000.00000000 IQlQllOO.gOOigOQl.OQlOQOOO.OQOQQOgO Adresa sítě 172.17.32.0/19 Broadcast 172.17.63.255 Michal Šnajdr snajdr@ics.muni.cz L3 a FW 5/22 Směrování ► rozhodnutí kam data poslat ► probíhá na základě záznamů ve směrovací tabulce ► kritéria ► nejdelší shoda ► metrika ► "administrativní metrika" $ ip route default via 147.251.255.1 dev enp0s25 proto dhcp metric 100 default via 147.251.44.1 dev wlp3s0 proto dhcp metric 600 147.251.255.0/26 dev enp0s25 proto kernel scope link src 147.251.255.16 metric 100 147.251.44.0/22 dev wlp3s0 proto kernel scope link src 147.251.44.81 metric 600 169.254.0.0/16 dev wlp3s0 scope link metric 1000 8.8.8.8 via 147.251.44.1 dev wlp3s0 Michal Šnajdr snajdr@ics.muni.cz L3 a FW 6/22 Smerovaní - príklad 172.16.0.0/12 000000000000 255.240.0.0 111111111111 oooo.ooooogoo.oooooooo 172.17.50.198 10101100.00010001.00110010.1100011 o Michal Šnajdr snajdr@ics.muni.cz L3 a FW 7/22 Nastavení adres a směrovaní v linuxu Utilita ip z balíku iproute2 nahrazuje ulility ifconfig, arp, route ... z balíku net-tools1 Proč dále nepoužívat net-tools: ► zastaralé ► neudržované ► používají stará jaderná API ► např v Ubuntu označeno jako obsolete od 14.04 LTS ► v novějších vydání distribucí nebývá v základní instalaci (Ubuntu 18.04 LTS) ^ttps: //dougvitale. word press.com/2011/12/21/deprecated-l in ux-networking-comma nds-and-their-replacements/ Michal Šnajdr snajdr@ics.muni.cz L3 a FW 8/22 Použití utility IP Základní syntaxe: ip [objekt] [akce] paramametry ► object ► address ► route ► neighbour ► link ► akce ► add ► delete ► show - výchozí Michal Šnajdr snajdr@ics.muni.cz L3 a FW 9/22 Příklad zastaralosti net-tools, více adres na rozhraní: $ ip addr 3: wlp3s0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:24:d7:ec:0e:c0 brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp3s0 valid_lft 1818sec preferred_lft 1818sec inet 10.10.10.10/24 scope global wlp3s0 valid_lft forever preferred_lft forever inet6 fe80::870c:98a8:89de:79cc/64 scope link noprefixroute valid_lft forever preferred_lft forever $ ifconfig wlp3s0: flags=4163 mtu 1500 inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::870c:98a8:89de:79cc prefixlen 64 scopeid 0x20 ether 00:24:d7:ec:0e:c0 txqueuelen 1000 (Ethernet) RX packets 49987738 bytes 51783673883 (51.7 GB) RX errors 0 dropped 261916 overruns 0 frame 0 TX packets 38191566 bytes 21548892979 (21.5 GB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Michal Šnajdr snajdr@ics.muni.cz L3 a FW 10/22 ip addr vystup obsahuje LI, L2 i L3 informace $ ip addr 1: lo: mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ethO: mtu 1500 qdisc mq state UP qlen 1000 link/ether 8d:67:45:e7:56:89 brd ff:ff:ff:ff:ff:ff inet 147.251.1.70/26 brd 147.251.1.65 scope global ethO inet6 fe80::8d67:45ff:fee7:5689/64 scope link valid_lft forever preferred_lft forever 3: ethl: mtu 1500 qdisc mq state DOWN qlen 1000 link/ether e4:If:13:e5:41:82 brd ff:ff:ff:ff:ff:ff inet 172.31.5.147/24 brd 172.31.5.255 scope global ethl 4: eth2: mtu 1500 qdisc mq state UP qlen 1000 link/ether 34:40:b5:a6:d3:98 brd ff:ff:ff:ff:ff:ff inet6 fe80::3640:b5ff:fea6:d398/64 scope link valid_lft forever preferred_lft forever 5: eth3: mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 34:40:b5:a6:d3:9a brd ff:ff:ff:ff:ff:ff inet6 fe80::3640:b5ff:fea6:d39a/64 scope link valid_lft forever preferred_lft forever 6: eth4: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:lb:21:bd:0c:eO brd ff : ff:ff:ff:ff:ff inet 10.254.87.63/24 brd 10.254.87.255 scope global eth4 inet6 fe80::21b:21ff:febd:ce0/64 scope link valid_lft forever preferred_lft forever 7: eth5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:lb:21:bd:Oc:el brd ff:ff:ff:ff:ff:ff inet6 fe80::21b:21ff:febd:cel/64 scope link valid_lft forever preferred_lft forever Michal Snajdr snajdr@ics.muni.cz L3 a FW 11/22 RFC 1918, privátní adresy ► definovány v roce 1996 ► určeny pro vnitřní použití v organizaci ► předpokládá využití NAT pro případnou komunikaci do Internetu ► IPv4 má pouze 4,294,967,296 možných unikátních address ► 3 IPv4 rozsahy2: ► 192.168.0.0/16 ► 10.0.0.0/8 ► 172.16.0.0/12 Link-local adresy 169.254.0.0/16 definované v RFC 3927 mohou sloužit pouze v rámci segmentu Doporučení: ► filtrovat tyto rozsahy na hranici organizace (BCP38/RFC2827) ► samostatná poddoména pro privátní rozsahy, která nebude funkční mimo organizaci 2RFC4193 definuje FC00::/7 jako privátní adresy pro IPv6 Michal Šnajdr snajdr@ics.muni.cz L3 a FW 12/22 Protokol ICMP Slouží k: ► reportovaní chyb přenosu ► kontrole dostupnosti (ping) ► přesměrování na jiný router V IPv6 převzal roli protokolu ARP + přidáno oznámení směrovače (SLAAC) Michal Šnajdr snajdr@ics.muni.cz L3 a FW 13/22 Druhy zpráv ICMP Type M Name B_Reference 0 Echo Reply [RFC7921 1 Unassigned 2 Unassigned 3 Destination Unreachable [RFC7921 4 Source Quench (Deprecated) [RFC7921IRFC66331 5 Redirect [RFC7921 6 Alternate Host Address (Deprecated) [RFC69181 7 Unassigned 8 Echo [RFC7921 9 Router Advertisement [RFC12561 10 Router Solicitation ÍRFC12561 11 Time Exceeded ÍRFC7921 12 Parameter Problem ÍRFC7921 13 Timestamp [RFC7921 14 Timestamp Reply [RFC7921 15 Information Request (Deprecated) [RFC7921ľRFC69181 16 Information Reply (Deprecated) [RFC7921ľRFC6918l 17 Address Mask Request (Deprecated) ÍRFC9501ľRFC69181 18 Address Mask Reply (Deprecated) [RFC9501ľRFC69181 19 Reserved (for Security) [Solol 20-29 Reserved (for Robustness Experiment) [ZSJJ] 30 Traceroute (Deprecated) [RFC13931ÍRFC69181 31 Datagram Conversion Error (Deprecated) ľRFC14751ľRFC6918l 32 Mobile Host Redirect (Deprecated) [David |ohnsonlíRFC69181 33 IPv6 Where-Are-You (Deprecated) ISimpsonllRFC6918l 34 IPv6 l-Am-Here (Deprecated) [SimpsonllRFC69181 35 Mobile Registration Request (Deprecated) [SimpFjOnllRFC69181 36 Mobile Registration Reply (Deprecated) [Simps%nlľRFC69181 37 Domain Name Request (Deprecated) ÍRFC17881ÍRFC69181 38 Domain Name Reply (Deprecated) ľRFC17881ľRFC69181 39 SKIP (Deprecated) ÍMar1 i -o Q, o Michal Šnajdr snajdr@ics.muni.cz L3 a FW 19/22 Výchozí chování Pokud paket není zpracován žádným z pravidel, uplatní je výchozí akce pro daný chain. Pravidla se vyhodnocují postupně podle pořadí. Výchozí politika po instalaci na virtuálech cvičení je povolit vše. # iptables -L Chain INPUT (policy ACCEPT) target prot opt source ACCEPT all — anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination anywhere destination Chain OUTPUT (policy ACCEPT) target prot opt source destination # iptables -L -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source 74 4972 ACCEPT all — enpOslO any anywhere Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination anywhere destination destination Michal Š naj d r snajdr@ics.muni.cz L3 a FW 20/22 Príklady Základní syntaxe: iptables [tabulka] [akce] [chain] [ip_část] [match] [target] [target_info] Nastavení výchozí politiky pro chain INPUT (zahodit): iptables -P INPUT DROP Další příklady: Wtypický první řádek stavového FW iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT Wpovolení provozu z 192.168.0.1 přicházející na rozhraní ethO iptables -A INPUT -i ethO -s 192.168.0.1 -j ACCEPT Wzahození všech tep paketů které nepocházejí z 192.168.0.1 iptables -A INPUT -p tep -s ! 192.168.0.1 -j DROP Wpřidání pravidla na řádek 2 pro povolení TCP/80 odkudkoliv iptables -I INPUT 2 -p tep —dport 80 -j ACCEPT Wodebrání 5. pravidla iptables -D INPUT 5 Wvypsání pravidel včetně očíslovaných řádků iptables -L —line-numbers Další informace viz https: //www.root. cz/serialy/vse-o-iptables/ Michal Šnajdr snajdr@ics.muni.cz L3 a FW 21/22 Úkol Zadání v samostatném souboru roomsheet-lab3.pdf najdete ve studijních materiálech. Michal Šnajdr snajdr@ics.muni.cz L3 a FW 22/22