Netfilter: a jó, a rossz és a csúf. Kadlecsik József KFKI RMKI <kadlec@mail.kfki.hu>

Hasonló dokumentumok
Tűzfal építés az alapoktól. Kadlecsik József KFKI RMKI

T?zfalak elméletben és gyakorlatban. Kadlecsik József KFKI RMKI

IPTABLES. Forrás: Gregor N. Purdy: Linux iptables zsebkönyv

A netfilter csomagszűrő tűzfal

Netfilter. Csomagszűrés. Összeállította: Sallai András

nftables Kadlecsik József MTA Wigner FK

Számítógépes Hálózatok GY 8.hét

IPv6 Biztonság: Ipv6 tűzfalak tesztelése és vizsgálata

Internet ROUTER. Motiváció

Hálózatok építése és üzemeltetése

Számítógépes hálózatok

Számítógépes Hálózatok GY 9.hét

Javaslat egy Iptables tűzfal konfigurációjára Számítógép hálózatok esszé Készítette : Veress Krisztián

IPTABLES II. Jelenlegi tűzfalunk így néz ki (IPTABLES I. rész):

IPv6 Elmélet és gyakorlat

Tűzfalak működése és összehasonlításuk

OpenBSD hálózat és NAT64. Répás Sándor

Linux hálózati adminisztráció

HOGYAN Packet Shaping - Gentoo Linux Wiki

HBONE rendszergazdák tanácsa

Számítógépes Hálózatok. 8. gyakorlat

Alap tűzfal otthoni PC-re (iptables I)

Hálózati beállítások Készítette: Jámbor Zoltán 2016

Tűzfal megoldások. ComNETWORX nap, I. 30. ComNETWORX Rt.

OpenBSD hálózat és NAT64. Répás Sándor

1/13. RL osztály Hálózati alapismeretek I. gyakorlat c. tantárgy Osztályozóvizsga tematika

Számítógépes Hálózatok GY 8.hét

Gyakorló feladatok a 2. ZH témakörének egyes részeihez. Számítógép-hálózatok. Dr. Lencse Gábor

Számítógép-hálózatok. Gyakorló feladatok a 2. ZH témakörének egyes részeihez

Dr. Wührl Tibor Ph.D. MsC 04 Ea. IP kapcsolás hálózati réteg

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Sávszélesség szabályozás kezdőknek és haladóknak. Mátó Péter

Routing IPv4 és IPv6 környezetben. Professzionális hálózati feladatok RouterOS-el

Hálózati architektúrák laborgyakorlat

Számítógépes Hálózatok

Tájékoztató. Használható segédeszköz: -

Hálózatvédelem, biztonság

Hálózati architektúrák és Protokollok PTI 6. Kocsis Gergely

Hálózati sávszélesség-menedzsment Linux rendszeren. Mátó Péter Zámbó Marcell

Ethernet/IP címzés - gyakorlat

Hálózatok építése és üzemeltetése

Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.

Internet Protokoll 6-os verzió. Varga Tamás

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

Bevezető. Az informatikai biztonság alapjai II.

Számítógépes Hálózatok 2011

Fábián Zoltán Hálózatok elmélet

VIII. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely

Hálózati architektúrák laborgyakorlat

Hálózatok építése és üzemeltetése

Adatbiztonság a gazdaságinformatikában ZH december 7. Név: Neptun kód:

Csomagsz rés Linux-Netlter környezetben

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Hálózatok építése és üzemeltetése

Hálózatok építése és üzemeltetése. Hálózatbiztonság 1.

IPv6 alapok, az első lépések. Kunszt Árpád Andrews IT Engineering Kft.

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

IPV6 TRANSITION. Kommunikációs hálózatok I. (BMEVIHAB01) évi fóliái alapján készült. Dr. Lencse Gábor

Témák. Betörés megelőző rendszerek. Mire használhatjuk az IDS-t? Mi az IDS? (Intruding Detection System)

Hálózatok építése és üzemeltetése


Hálózatok építése és üzemeltetése

Az iptables a Linux rendszerek Netfilter rendszermagjának beállítására szolgáló eszköz.

Az alábbi állítások közül melyek a forgalomirányító feladatai és előnyei?

IPV6 TRANSITION. Számítógép-hálózatok (BMEVIHIA215) Dr. Lencse Gábor

Számítógép hálózatok

Az IP hálózati protokoll

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

Linux iptables csomagszűrési gyorstalpaló, kezdőknek...

Hálózati architektúrák és Protokollok Levelező II. Kocsis Gergely


A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

KÉPZETT VILLANYSZERELŐ SZAKEMBER

Kiskapu Kft. Minden jog fenntartva

Felhő alapú hálózatok (VITMMA02) OpenStack Neutron Networking

Az Ethernet példája. Számítógépes Hálózatok Az Ethernet fizikai rétege. Ethernet Vezetékek

Statikus routing. Hoszt kommunikáció. Router működési vázlata. Hálózatok közötti kommunikáció. (A) Partnerek azonos hálózatban

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

IPV6 TRANSITION. Kommunikációs hálózatok I. (BMEVIHAB01) Dr. Lencse Gábor

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Supák Zoltán

2019/02/12 12:45 1/13 ACL

Forgalmi grafikák és statisztika MRTG-vel

DDoS támadások, detektálás, védekezés. Galajda József - Core Transport Network Planning Expert

Hálózati rendszerek adminisztrációja JunOS OS alapokon

A DNS64 és NAT64 IPv6 áttérési technikák egyes implementációinak teljesítőképesség- és stabilitás-vizsgálata. Répás Sándor

Campus6 projekt megbeszélés Mohácsi János

Mobil Internet 2 3. előadás IPv6 alapok

Routing update: IPv6 unicast. Jákó András BME EISzK

A Sangoma Technologies Intelligens

III. előadás. Kovács Róbert

WS 2013 elődöntő ICND 1+ teszt

Hálózati architektúrák laborgyakorlat

Szállítási réteg (L4)

Változások a Sulinet szűrési szabályokban

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

LINUX Hálózat beállítása. Forrás:

Hálózati alapok. készítette: Sallai András

Átírás:

Netfilter: a jó, a rossz és a csúf Kadlecsik József KFKI RMKI <kadlec@mail.kfki.hu>

Tartalom A netfilter és működése A tűzfalak és a biztonság TCP/IP alapok Routing A netfilter alapjai Szabályok, láncok, táblák Egyezések: implicit, alap, kiterjesztések Targetek: implicit, alap, kiterjesztések Példák 2

A tűzfalak és a biztonság I. A tűzfalak típusai Csomagszűrő Proxy Biztonsági szabályzat Mit kell védeni Mi ellen Milyen mélységben Üzemeltetési szabályok Katasztrófa-terv 3

A tűzfalak és a biztonság II. Valamit valamiért Biztonság Kényelem Nincs mindenre technikai megoldás A leggyengébb láncszem az ember Sucker rod (man syslogd) 4

TCP/IP alapok I. Architekturális alapelvek End-to-end Robusztusság Rétegek: 5

Link layer Ethernet, WLAN,... ARP, VLAN Ethernet keretek: 6

IPv4 és IPv6 32 bites vs 128 bites címek Fejlécek: 7

ICMP és ICMPv6 Az IPv4/IPv6 kontroll protokolja nem eldobható! Hibaüzenetek Destination unreachable, time exceeded,... Packet too big,... Információs üzenetek Echo request/reply DAD, NS, NA, RS, RA,... Ping o' death: fix the IP stack Smurf attack: broadcast, egress és ingress filtering 8

TCP A leggyakoribb transzport protokoll TCP fejléc 9

UDP Nélküle nem menne az Internet: DNS UDP fejléc 10

Routing Csomagtovábbítás statikus, dinamikus szabályokkal Alapértelmezetten csak a célcím számít Source routing Traffic shaping NAT miatt forrás/célcím megváltozhat 11

A netfilter A Linux kernel IPv4 és IPv6 tűzfal szolgáltatása Állapottartó csomagszűrő tűzfal Támogat címfordítást (IPv4 NAT) és csomag módosítást (mangle) Modularizált keretrendszer iptables, ip6tables, arptables, ebtables Patch-o-matic-ng halott, iptables-addons 12

A netfilter core team 13

Netfilter workshop 2008. 14

A netfilter és az IP stack kapcsolata I. 15

A netfilter és az IP stack kapcsolata II. 16

A netfilter alapjai II. A csomagnak a teljes rendszeren sikeresen át kell jutni Nem minden csomag jár be minden alrendszert NAT tábla 17

Szabályok Az alapegység: Egy vagy több egyezés (match) AND logikai kapcsolat közöttük Egy döntés (target) Vannak implicit egyezések Van implicit target iptables A FORWARD 18

Láncok A szabályokat láncokba szervezzük Beépített láncok A beépített láncok végén állítható policy DROP vs ACCEPT Felhasználó által definiált láncok Loop detektálás 19

Alrendszerek és családok Az egyes netfilter alrendszereket a táblázatukban levő szabályok vezérlik A conntrack alrendszer csak közvetve vezérelhető Protokoll családonként más szabályzó program: Bridging: ebtables ARP filtering: arptables IPv4: iptables IPv6: ip6tables 20

Conntrack I. IP kapcsolatok követése TCP, SCTP UDP, UDPLITE GRE (PPTP), DCCP ICMP, ICMPv6 general Állapotok: NEW, RELATED ESTABLISHED INVALID, UNTRACKED 21

Conntrack II. Conntrack és TCP Alapértelmezetten nem csak SYN-only csomag hozhat létre kapcsolatot (NEW) Kapcsolatok felvétele: reboot net.netfilter.nf_conntrack_tcp_loose 22

Conntrack III. Protokoll helperek, pl. nf_conntrack_ftp, nf_nat_ftp FTP, TFTP IRC H.323, SIP PPTP Amanda, sane NetBIOS NS 23

Táblázatok I. broute tábla (ebtables): BROUTING A csomagot route-olni, vagy bridge-elni kell? MAC DNAT vagy redirect raw tábla: PREROUTING, OUTPUT Conntrack indirekt szabályozása Csomagjelölés szabályok debuggolásához mangle tábla: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING Lokális csomagjelölés Csomagmódosítás NAT-on kívül (opciók, TTL) 24

Táblázatok II. nat tábla (ebtables): PREROUTING, OUTPUT, POSTROUTING nat tábla (iptables): PREROUTING, OUTPUT, POSTROUTING MAC NAT IPv4 NAT filter tábla (ebtables, arptables, iptables, ip6tables): INPUT, OUTPUT, FORWARD Policy szabályok 25

Táblázatok III. Táblák függetlenek (felhasználói láncok) Külön kell a szabályokat és a láncokat törölni iptables F iptables X 26

Implicit egyezések Akkor is léteznek a szabályban, ha explicit nem adtuk meg ezeket Forrás IP cím Cél IP cím Input/output interfész 27

Alapértelmezett egyezések Egyszerű kapcsolóval hivatkozhatunk rájuk Forrás IP cím Cél IP cím Input/output interfész Protokoll Fragment (IPv4) 28

Egyezés kiterjesztések Minden más tcp, state, limit,... Ugyabból az egyezés kiterjesztésből több is lehet egy szabályban: pl. recent, set 29

Implicit target Ha nem adunk meg semmilyen target-et A szabály csomag és byte számlálói frissülnek A csomag folytatja az útját a következő szabállyal 30

Targetek Alapértelmezett targetek: Láncok mint targetek: ACCEPT, DROP, QUEUE és RETURN Ugrás felhasználó által definiált láncra Target kiterjesztések: Minden egyéb: LOG, REJECT,... 31

Egyszerű példák I. Hasznos sysctl beállítások :-) net.ipv4.ip_forward=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 32

Egyszerű példák II. Csomag naplózása és eldobása: iptables N log drop iptables j LOG log prefix DROP: iptables j DROP 33

Egyszerű példák III. Routing naplózás nélkül eldobja a csomagot net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.all.rp_filter=0 iptables A FORWARD i external \ s belso/net j log drop iptables A FORWARD i internal \! s belso/net j log drop 34

Egyszerű példák IV. Ha valahol eldobják az ICMP Fragmentation Needed vagy ICMPv6 Packet Too Big csomagokat, akkor PMTU felderítés nem működik és nagy csomagok elvesznek : ip[6]tables t mangle A POSTROUTING \ p tcp tcp flags SYN,RST SYN \ j TCPMSS clamp mss to pmtu 35

Iptables-save és iptables-restore iptables-save: kernel beli szabályok mentése iptables-restore: teljes tábla kernelhez adása egy lépésben # komment *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] A FORWARD... COMMIT 36

Tartalom Az alapokon túl Bridging Routing Traffic shaping Firewall failover Ipset 37

Bridging Bridge és firewall egyben:ebtables A tűzfal hálózat átcímzése nélkül beilleszthető a hálózatba A tűzfal nem látszik, nem kell neki IP cím sem MAC, ARP, VLAN szűrés MAC SNAT és DNAT, ARP reply átírás 38

Bridging példa OpenWRT, mögötte problémás wifi bridge-ek: 10 másodpercenként a MAC broadcas címre küldött UDP csomagokkal terhelik a wifi hálózatot ebtables A FORWARD d broadcast \ proto ipv4 ip proto udp \ ip sport 1024 j DROP 39

Routing Routing módosítás ip[6]tables MARK target ip parancs fwmark kapcsolója A legtöbb hálózati hiba oka a routing-ban keresendő Általában kell az ISP együttműködése is 40

Routing példa I. ADSL router mögötti Wifi, amelyik Eduroam szolgáltatást nyújt: hogyan férjen hozzá a távoli tűzfal mögötti Radius szerverhez? OpenVPN tanúsítvánnyal, fix IP-vel Radius felé a kapcsolat a VPN-en keresztül (10.0.0.0/24) ip route add table 10 default via 10.0.0.254 ip rule add fwmark 10 table 10 iptables t mangle A PREROUTING \ d radius p udp dport 1812 \ j MARK set mark 10 41

Routing példa II. Több kijárat az Internet felé, FTP data csatornákat nem a default felé irányítjuk ip route add table 21 default via gw2 ip rule add fwmark 21 table 21 iptables t mangle A PREROUTING \ m helper helper ftp \ m state state NEW \ j CONNMARK set mark 21 iptables t mangle A PREROUTING \ j CONNMARK restore mark 42

Traffic shaping I. Kapcsolatok számának limitálása (ssh scan): iptables N ssh iptables A ssh j portknock iptables A ssh m connlimit \ connlimit above 8 \ connlimit mask 24 j log reject iptables A ssh j log accept 43

Traffic shaping II. Aktuális bandwidth alapján routing két link között # Becsüljük meg a kimenő forgalmat iptables t mangle A POSTROUTING o eth0 \ j RATEEST rateest name eth0 \ rateest interval 250ms \ rateest ewma 0.5s iptables t mangle A POSTROUTING o ppp0 \ j RATEEST rateest name ppp0 \ rateest interval 250ms \ rateest ewma 0.5s 44

Traffic shaping III. # Rendelkezésre álló bandwidth alapján route iptables t mangle A PREROUTING m rateest\ rateest delta rateest1 eth0 \ rateest bps1 2.5mbit rateest gt rateest2 ppp0 rateest bps2 2mbit \ j CONNMARK set mark 1 iptables t mangle A PREROUTING \ m connmark! connmark 1 \ j CONNMARK set mark 2 iptables t mangle A PREROUTING \ j CONNMARK restore mark 45

Firewall failover I. 46

Firewall failover II. Szabály-szinkronizálás Home-made scriptek Kernel conntrack állapottér szinkronizálás http://conntrack-tools.netfilter.org conntrackd + keepalived Aktív-aktív konfiguráció lehetséges 47

Ipset I. A legalapvetőbb tűzfal adatok optimális tárolására és kiértékelésére: sebesség és memória optimalizálás http://ipset.netfilter.org Jelenleg csak IPv4-et támogat Set típusok: ipmap, macipmap, portmap iphash, nethash, ipporthash, ipportiphash, ipportnethash iptree, iptreemap setlist 48

Ipset II. Tűzfal setup ipset-el: # Az ipset halmazaink: szerverek és kliensek ipset N servers ipporthash network NET1 ipset A servers webserver:80... ipset N clients ipporthash network NET2 ipset A clients client0:80... 49

Ipset III. # A tűzfal szabályaink iptables A FORWARD m state \ state ESTABLISHED,RELATED j ACCEPT iptables A FORWARD o iface1 \ m set match set servers dst,dst \ m state state NEW j log accept iptables A FORWARD o iface2 \ m set match set clients src,dst \ m state state NEW j log accept 50

Tartalom Címfordítás (NAT) Címfordítás általában Címfordítás netfilter-ben Használati módok, példák A címfordítás okozta károk 51

Címfordítás (NAT) IPv4-es címek elfogyásának lassítására Belső hálózaton kiosztott privát IP címek mappelése publikus IP címekre 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 52

Címfordítási típusok Full cone NAT (srcip, srcp, dstip, dstp) (extip, extp, dstip, dstp) (*, *, extip, *) (*, *, srcip, *) Address restricted cone NAT Port restricted cone NAT (dstip, *, extip, *) (dstip, *, srcip, *) (dstip, dstp, extip, extp) (dstip, dstp, srcip, srcp) Symmetric NAT (srcip, srcp, dstip2, dstp2) (extip2, extp2, dstip2, dstp2) 53

Címfordítás netfilter-ben SNAT (és MASQUERADE) iptables t nat A POSTROUTING o oface \ s private/net \ j SNAT to source IPADDR random DNAT (és REDIRECT) iptables t nat A PREROUTING i iface \ p tcp dport 80 \ j DNAT to destination IPADDR 54

NAT és routing I. Tűzfal mögötti privát hálózat, rajta webszerver 55

NAT és routing II. Tűzfal mögötti privát hálózat, rajta webszerver iptables t nat A PREROUTING \ p tcp dport 80 \ j DNAT to destination 192.168.0.1 iptables t nat A POSTROUTING o extiface \ s 192.168.0.0/24 \ j SNAT to source 10.0.0.1 random A privát hálón levő gépek elérik-e a tűzfal:80 porton a webszervert? 56

NAT és routing III. Kényszerítsük a válaszcsomagokat a tűzfalon keresztül iptables t nat A PREROUTING \ p tcp dport 80 \ j DNAT to destination 192.168.0.1 iptables t nat A POSTROUTING \ s 192.168.0.0/24 \ j SNAT to source 10.0.0.1 random 57

NAT és routing IV. Kényszerítsük a válaszcsomagokat a tűzfalon keresztül

NAT és routing V. NETMAP targettel végezzünk inkább fix SNAT-ot iptables t nat A PREROUTING \ p tcp dport 80 \ j DNAT to destination 192.168.0.1 iptables t nat A POSTROUTING o extiface\ p tcp dport 80 \ j DNAT to destination 10.0.0.1 iptables t nat A POSTROUTING o intiface \ s 192.168.0.0/24 \ j NETMAP to 192.168.1.0/24 59

NAT és routing VI. Egyéb megoldások Címtér szeparálás Split DNS 60

A címfordítás okozta károk End-to-end elv sérül Hamis biztonságérzet NAT-olt hálózatra nem lehet betörni Kikerülő technikák IPv6-ra való migráció nem halad 24. órán túl vagyunk, megoldások Multilevel NAT IPv4 address market ISP-től való függés/kötöttség nő 61

Tartalom Fejlesztési irányok IPv4/IPv6 integráció Egyesített modulok Nftables 62

IPv4/IPv6 integráció Nagyrészt befejeződött Néhány modul még egyesítésre vár ipt_state, ip6t_state xt_state LOG, REJECT, ULOG (IPv6 hiányzik) Néhány nyilvánvalóan marad: IPv4 NAT targetek, ttl/ttl IPv6 specifikus match-ek: eui64, extension headerek 63

Egyesített modulok Match és target fizikailag egy modulban mark/mark, ttl/ttl Kisbetű-nagybetű :-) 64

Nftables Teljes újraírás: userspace, kernelspace Netlink (nfnetlink, TLV) IPv4/IPv6 egyben (ebtables?) Átszervezett táblák, láncok Matchek helyett kifejezések (offset-based) Hosszú folyamat lesz 65

Köszönöm a figyelmet! 66