730 likes | 990 Views
IP alapú hálózatok tervezése és üzemeltetése II. 15 / 9. Tartalom. Miért érdemes hálózati biztonsággal foglalkozni Tűzfal Személyi Hagyományos Típusai Állapotmentes Állapotkövető Proxy Architektúra változatok Egy rétegű Több rétegű Intranet tűzfal tervezés Határ tűzfal tervezés
E N D
Tartalom • Miért érdemes hálózati biztonsággal foglalkozni • Tűzfal • Személyi • Hagyományos • Típusai • Állapotmentes • Állapotkövető • Proxy • Architektúra változatok • Egy rétegű • Több rétegű • Intranet tűzfal tervezés • Határ tűzfal tervezés • Megoldások • Linux – netfilter • Windows – ISA szerver • Cisco - PIX • Behatolás érzékelés • Cisco • SNORT
Hálózati biztonsági kihívások • Internet nyílt, szabad közösség • Régebben a fizikai biztonság volt az elsődleges (jól bezárni a rendező szekrényt) • Egyre több cég, intézmény kötődik a hálózathoz • Potenciális piac • A vásárlókkal jönnek a hacker-ek is • Hetente új virusok, férgek, … • Bárki szabadon rákapcsolódhat (hot spot, …) • Nagy populáció • Letölthető hacker eszközök (http://staff.washington.edu/dittrich/misc/ddos/ )
Támadások fejlődése • Forrás: Cisco
Tipikus biztonsági problémák • Támadási típusok • Külső • Settenkedő – fizikai biztonság (zárolni a gépeket) • DoS Denial – of – Service • Nem feltétlenül okoznak kárt • Nehéz lekezelni • DDoS – ugyanaz csak több gépről (zombi gépek) • Alkalmazás rétegbeni támadások • Az alkalmazások biztnsági réseit használják ki • A legismertebbek • Nem megfelelően frissített rendszereket támadnak meg (Slammer 2002 augusztus-2003 január) • Hálózat kikémlelés – az első lépés a támadás előtt • Portscan • DNS, IP cím keresés • Belső • Fertőzött laptop – gyakran tagja különböző hálózatoknak • Nem engedélyezett eszköz – pl.: nem megfelelően konfigurált vezetékmentes hozzáférési pont • Elbocsátott alkalmazott – Man in the middle • Vírusok/Trójaiak • Vegyes • Csomag figyelés: Telnet, POP3, FTP, …. • IP spoofing: belső forrás IP címmel küldik kívülről (ACL, RFC 2827)
Várható támadás típusok • Komplex Web támadás • IE biztonsági rés + Apache biztonsági rés (egy feltört web szerverre tettek az IE számára veszélyes kódot) • Web szolgáltatások elleni támadások • Spyware fenyegetés – a Microsoft szerint a rendszerösszeomlások feléért felelősek, a DELL szerint a bejelentett hibák 12% százalékát okozzák (http://www.informationweek.com/showArticle.jhtml?articleID=19200218 ) • Mobil eszköz elleni támadások (PDA, Telefon, ..) • SPAM • DoS • DDoS
Megoldás(talán, nincs tökéletes) • Elvileg nincs szükség másra, csak megfelelően beállított gépekre • DE a szoftver hibák, emberi mulasztások, … miatt mégis szükség van: • Elosztott, jól koordinálható, több rétegű védelem • Integrált megoldás (kapcsolók, forgalomirányítók, szerverek, …) • Automatikus reakció • Védelmi keretrendszer • Védelem - Védelmi rendszer • Szabályozás - Bizalom és identitás menedzsment • Titkosítás - Biztonságos kapcsolat
Biztonsági szabályok • A hálózatot biztonsági övezetekre kell osztani • Egy-egy biztonsági övezet saját biztonsági szabályrendszerrel bír • Ezen övezetek határán szükség van egy olyan eszközre mely a különböző szabályokból adódó konfliktusokat feloldja • Ez az eszköz legtöbbször a tűzfal
Védelmi topológiák • Egyszerű határ tűzfal • Megbízhatatlan gép • Három zónás architekrúra: • Fegyvermentes övezet (DMZ DeMilitarized Zone) • Kettős tűzfal
Határ tűzfal • Egyrétegű megoldás • Egy eszközre van telepítve minden tűzfal funkció • Egy eszköz köt össze minden hálózatot • Egyszerű • Olcsó • A legkevésbé biztonságos megoldás • Egy eszközön kell a biztonsági hiányosságokat kiaknázni
Megbízhatatlan gép • Vannak olyan szervereink melyek szolgáltatásokat nyújtanak a külvilágnak • Web • SMTP • FTP • NTP • SSH • RDesktop • VPN szerver ? • … • Mivel ez a leginkábbveszélyeztetett ezért ezt a tűzfalon kívül helyezzük el • Minimális szolgáltatásra kelltörekednünk • A belső gépek nem bíznak meg benne
Demilitarizált övezet • A megbízhatatlan szolgáltatókat is védeni szeretnénk • Itt egy új hálózatot alakítunk ki ezen szolgáltatások számára • Nagyobb • Biztonság • Rendelkezésre állás • Megbízhatóság
Dupla tűzfal • A célja ugyanaz mint az előzőé • Funkciók • Perem tűzfal • Belső tűzfal • Hálózatok: • Határ hálózat • DMZ • Belső hálózat • Célszerű különbözőarchitektúrájú tűzfalakatválasztani
Védelmi eszközök • Tűzfal • Osztályai: • Személyes (első osztály) • Forgalomirányító (második osztály) • Alsó kategóriás hardver tűzfalak (harmadik osztály) • Felső kategóriás hardver tűzfalak (negyedik osztály) • Szerver tűzfalak (ötödik osztály) • Típusai • Csomagszűrő • Cím transzformáló • Állapottartó • Kapcsolat szintű átjáró • Proxy • Alkalmazás rétegbeni szűrés • Megvalósítások • Netfilter (http://www.netfilter.org/ ) • ISA 2004 (http://www.microsoft.com/isaserver/ ) • CISCO PIX (http://www.cisco.com/warp/public/cc/pd/fw/sqfw500/ ) • Behatolás érzékelő rendszer • SNORT (http://www.snort.org/ ) • Cisco IDS 4200 (http://www.cisco.com/warp/public/cc/pd/sqsw/sqidsz/ )
Tűzfal típusok: Csomagszűrő • Mivel a különböző hálózatokat leggyakrabban forgalomirányítók kötik össze ezért ezen funkciók leggyakrabban itt található • Ha már van router akkor mindenképpen azon célszerű implementálni • A 3. rétegben működik • Szűrő feltételek: • Forrás/Cél cím • Forrás/Cél port • Ezzel célszerű az IP spoofing-ot kivédeni • Ez nagyon gyors és kis erőforrás igényű tud lenni
Tűzfal típusok: NAT • Tipusai: • PAT – Port Address Translation • NAT – Network Address Translation • Lehet: • Dinamikus • Statikus • Címfordítást végez • Elrejti a belső címeket • Alkalmazás réteg?
Tűzfal típusok : Kapcsolat szintű átjáró • Nem vizsgál minden egyes csomagot • Amint a kapcsolat felépült utána az adott viszonyhoz tartozó összes csomag mehet • A 4. rétegben működik • Jobb mint csak csomagszűrés • Tartalmazhat alkalmazás rétegbeni funkciókat is • Pl.: FTP
Tűzfal típusok : Állapottartó • Az előző kettő kombinációja • A 3., 4. rétegben működik • Minden kimenő csomag naplózva van az állapot táblában • Forrás/Cél IP • Forrás/Cél port • A bemenő forgalomnál így ellenőrizhető, hogy ki kezdeményezte • Ez a tudás mindenképpen megkövetelendő egy tűzfaltól • Egyéb információkat is eltárolhat • Protkoll falg-ek
Tűzfal típusok : Proxy • A kommunikáció 3 vagy több fél között folyik • Kliens • Proxy • Szerver • Títkosítatlan esetben a kliens nem látja közvetlenül azokat a csomagokat amelyeket a szerver küldött és fordítva • Títkosított esetben a proxyellenőrzi a fejléceket ésha minden OK akkortovábbküldi • Gyorsítótár • Protokoll validáció • Felh. ID alapú döntés • Bonyolult • Minden protokollt ismernie kell
Alkalmazás szintű szűrés • A legintelligensebb • Értelmezni tudják az adott alkalmazás adatát és ez alapján döntéseket hoznak • SMTP parancsok, DNS parancsok, SPAM szűrés • Igény alapján dinamikusan nyitja a portokat • DNS felé UDP csak akkor ha a DNS indította a kapcsolatot és addig amíg ez a kapcsolat tart • Títkosított forgalom kezelése: • Ugyanaz mint a proxy-nál • A tűzfalon végződtetve mindkét oldalon
Személyes tűzfal • A PC-n futó szoftver szolgáltatás • Egyre több otthoni kapcsolat • Kis hálózat védelmére is alkalmas (otthoni hálózat) • A hálózattól függetlenül ma már minden gépen kötelező a használata (különösen mobil eszközöknél) • Jóval kisebb tudású mint a többi, gyakran csak csomagszűrésre alkalmas • Előnyei: • Olcsó (ingyenes) • Egyszerű konfigurálni • Hátrányai: • Nehéz központból menedzselni • Kis teljesítményű • Korlátolt tudású
Forgalomirányító tűzfal • A forgalomirányítók gyakran rendelkeznek tűzfal funkciókkal is • Az alsó kategóriás forgalomirányítók általában IP cím alapján és port alapján képesek a forgalmat szűrni valamint NAT-ot is biztosítanak a címek elrejtésére • A felső kategóriás eszközök programozhatóak ACL listák segítségével, állapotkövetőek, támogatják a magas rendelkezésre állást • Előnyeik: • Olcsóak (a hardvereshez viszonyítva) • Egyszerű, szokványos konfiguráció • Hátrányaik: • Teljesítmény • Limitált funkcionalitás
Hardver tűzfalak • Alsó kategóriás • Statikus szűrés • Plug-and-Play • VPN • Bizonyos szintig menedzselhetőek • Előnyei: • Gyakorlatilag nem kell konfigurálni • Olcsó • Hátrányai: • Korlátozott funkicionalitás • Gyenge teljesítmény • Felső kategóriás • 7500-500000 kapcsolat • Manuális konfiguráció • Moduláris • Magas rendelkezésre állás • Alkalmazás szintű szűrés • Gyors • Drága
Szerver tűzfalak • A legtöbb rendszergazda számára jól ismert környezet • Linux • Windows • FreeBSD • … • Jól bővíthető (sw/hw) • Gyors (megfelelő méretű gépen) • Integrálható • Skálázható • Az oprendszer hibáit kiaknázhatják a támadók
Belső tűzfal • A belső hálózathoz történő hozzáférést szabályozza • Külső nem megbízható felhasználók elvileg soha nem léphetnek be a belső hálózatra • Web szerver esetén a web szerver fog kommunikálni a belső részekkel
Tipikus beállítások • Minden tiltva ami nincs engedve • Tiltani a belső IP címek forrásként feltüntetését kívülről • Tiltani a külső IP címek forrásként feltüntetését belülről • Engedélyezni a DMZ DNS szerverek UDP-n történő megszólítását a belső DNS szerverekről • Engedélyezni a belső DNS szerverek UDP-n történő megszólítását a DMZ-ből • TCP DNS forgalom engedélyezése (szerver figyelembe vételével) • Kimenő SMTP a DMZ SMTP átjáróról • Bejövő SMTP a DMZ SMTP átjárótól • Engedi a proxy-tól származó forgalmat befelé • Engedi a forgalmat a proxy felé • Szegmensek támogatása • Szegmensek közötti forgalom állapotkövetéses forgalomirányítása • Magas rendelkezésreállás támogatása
Perem tűzfal • Feladata a szervezet határain túli felhasználók kiszolgálása • Típusai: • Megbízható (távoli iroda) • Félig megbízható (üzleti partnerek) • Megbízhatatlan (publikus weboldal) • Ez az eszköz fogja fel a támadásokat (jó esetben)
Tipikus beállítások • Minden tiltva ami nincs engedve • Tiltani a belső IP címek forrásként feltüntetését kívülről • Tiltani a külső IP címek forrásként feltüntetését belülről • Engedélyezni a külső DNS szerverek UDP-n történő megszólítását (DMZ-ből) • Engedélyezni a belső (DMZ) DNS szerverek UDP-n történő megszólítását • TCP DNS forgalom engedélyezése (szerver figyelembe vételével) • Kimenő SMTP a belső SMTP átjáróról • Bejövő SMTP a belső SMTP átjárónak • Engedi a proxy-tól származó forgalmat a külvilág felé • Engedi a forgalmat a proxy felé
Rendelkezésre állás (perem/belső) • Egy tűzfal • Több tűzfal:
Linux Netfilter • Kernel komponens • Szolgáltatásai: • Csomagszűrő • Állapot követés • Csomag manipuláció • Kapcsolatszám figyelés, korlátozás (egy adott gépről a TCP kapcsolatok száma. DOS védelem) • Legutóbbi kapcsolatok megjegyzése (pl.: port scan) • Terhelés elosztás (adott véletlen eloszlással) • String illesztés a tartalomban (pl.: .exe) • Idő alapú szabályok (ebédnél szabad internetezni, …) • Átviteli kvóták (pl.: 2 Gbyte) • TTL alapú csomag vizsgálat (man inthemiddle) • Bővíthető • Ingyenes
Netfilter Architektúra • Kampók • Egy kernel modul regisztrálhatja magát a különböző állapotban lévő csomagok megfigyelésére/elérésére • IPv4-ben 5 kampót definiáltak: • PRE_ROUTING, LOCAL_IN, FORWARD, LOCAL_OUT, POST_ROUTING. • A kapók segítségével megtekinthetőek/módosíthatóak a csomagok NF_DROP, NF_ACCEPT, NF_QUEUE, NF_REPEAT or NF_STOLEN.
Netfilter Kampók • PRE_ROUTING • A bejövő csomagok átmennek ezen a kampón az ip_rcv() –ben mielőtt a forgalomirányításba kerülnek • LOCAL_IN • Minden a helyi eszköznek címzett csomagok a ip_local_deliver()-en keresztül elérhetőek • FORWARD • Minden bejövő és nem az adott eszköznek szánt csomag átmegy ezen: ip_forward() • LOCAL_OUT • Minden az aktuális host által készített csomag átmegy ezen: ip_build_and_send_pkt() • POST_ROUTING • Minden kimenő csomag (forrástól függetlenül) átmegy ezen: ip_finish_output()
Linux Internet Protocol implementáció Higher Layers ip_input.c ip_output.c ip_queue_xmit ip_local_deliver MULTICAST IP_LOCAL_OUTPUT . . . ip_mr_input IP_LOCAL_INPUT ip_queue_xmit2 ip_forward.c IP_FORWARD ip_local_deliver ip_forward_finish ip_forward ip_output ip_fragment ip_finish_output ip_rcv_finish ROUTING ForwardingInformation Base IP_POST_ROUTING IP_PRE_ROUTING ip_route_input ip_rcv ip_finish_output2 ARP ARP neigh_resolve_output dev.c dev.c dev_queue_xmit net_rx_action
Netfilter Kampók PRE_ROUTING POST_ROUTING FORWARD LOCAL_IN LOCAL_OUT
Netfilter Funkcionalitás • IP csomagszűrés • Álapottartó tűzfal • NAT • Csomag manipulálás
IP csomagszűrés • IP Szűrő • A csomagok szűrésére használják • A szabályok bevitelére az iptables-t használják • A kernelen belüli keretrendszert netfilter-nek nevezik • Teljes megadhatóság az IP, TCP, UDP és ICMP csomagok mezőihez • IP Szűrő szabályok • Beszúrási pont • Egyezés • Cél
IP csomagszűrő példa # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms --- 127.0.0.1 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.2 ms # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes --- 127.0.0.1 ping statistics --- 1 packets transmitted, 0 packets received, 100% packet loss #
Állapottartó tűzfal • Teljes állapot kezelés • TCP, UDP, ICMP • Egy általános kapcsolatkövető modult használ: conntrack • A Conntrack külön-külön kezeli az egyes kapcsolatokat és ezekhez rendeli az adott kimen/bejövő csomagokat • Új kapcsolat bejezést hoz létre amint a kapcsolatkövető modul egy kapcsolat létrehozó csomagot regisztrál • Így a NAT implementációk megállapíthatják, hogy az egyes csomagokhoz új IP/port tratozik, vagy már egy meglévőhöz kell rendelni
Állapottartó tűzfalazás • Egye protokollok komplexek és külön modulokat igényelnek (conntrack helpers) • Egy példa az FTP. • A kliens nyit egy vezérlő csatornát 21-es TCP portra és FTP vezérlő utasításokat küld. • A fájl átvitelére a szerver nyit egy csatornát a kliensre a szerver 20-as portjáról a kliens tetszőleges portjára
Állapotartó tűzfal • Felhasználói térbeli állapotok • NEW • Minden új kapcsolat • Ide tartoznak a nem SYN TCP csomagok • ESTABLISHED • Minden kapcsolat ahol már láttak forgalmat mindkét irányba • RELATED • Minden kapcsolat/csomag ami valamilyen visznba van más kapcoslatokkal • Példák: ICMP hiba, FTP-Data, DCC • INVALID • Bizonyos hibás csomagok az állapotoktól függően • Pl. FIN/ACK amikornem volt FIN küldve • # iptables -A FORWARD -i ppp0 -m state ! --state NEW -j DROP
NAT • NAT - Network Address Translation • Két típusa van NAT in Linux 2.4 • Netfilter NAT • Fast NAT • Használata • LAN mint egy forrás • Külön szerverek egy IP • … • Netfilter NAT • DNAT - Destination Network Address Translation • SNAT - Source Network Address Translation • Szüksége van a kapcsolatok követésére
NAT Példa SNAT ## Change source addresses to 1.2.3.4. # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4 ## Change source addresses to 1.2.3.4, 1.2.3.5 or 1.2.3.6 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6 ## Change source addresses to 1.2.3.4, ports 1-1023 # iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023 DNAT ## Change destination addresses to 5.6.7.8 # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8 ## Change destination addresses to 5.6.7.8, 5.6.7.9 or 5.6.7.10. # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10 ## Change destination addresses of web traffic to 5.6.7.8, port 8080. # iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \ -j DNAT --to 5.6.7.8:8080
Csomag manipuláció • A tűzfalon keresztülmenő csomagokat manipulálja • Sokfajta lehetőség • Példa felhasználás: • Minden IP opció törlése • A TOS érték átállítása • A TTL mező átállítása • Az ECN mezők törlése • A csomagok megjelölése a kernelen belül • A kapcsolatok megjelölése a kernelelen belül
Mit használunk? Jelenleg három táblázat van: filter, nat, mangle. • filter tablea szűrő rendszer használja • aLOCAL_IN (INPUT), FORWARD, LOCAL_OUT (OUTPUT) –ba kapcsolódik • iptable_filter kapcsolódik és minden csomagot továbbad az iptables-nak • Az alap táblát az iptables program kezeli
A nat táblázat Anat tablázatot a nat vezérlésére használják • ALOCAL_OUT (OUTPUT), PREROUTING, POSTROUTINGpontokhoz kapcsolódik • Az iptable_nat bekapcsolódik és átadja azokat a csomagokat akiknek a kapcsolatait még nem látták a NAT táblázatban
A mangle tábla • A mangle tablea speciális műveletekhez használják • ALOCAL_OUT (OUTPUT), PREROUTING–hoz csatlakozik • iptable_mangle kapcsolódik és átad minden csomagot a táblának
Alapvető iptables szintakszis iptables [table] [command] [options] <matches> <target> • parancsok: • append, insert, replace, delete, list, policy, etc. • opciók: • verbose, line numbers, exact, etc. • találatok: • dport, dst, sport, src, states, TCP options, owner, etc. • célok: • ACCEPT, DROP, REJECT, SNAT, DNAT, TOS, LOG, etc.
Iptables szintakszis Protocol -p, --protocol [!] [protocol] • tcp, udp, icmp or all • Numeric value • /etc/protocols Cél IP & Port -d, --destination [!] address[/mask] • Destination address • Resolvable (/etc/resolve.conf) --dport, --destination-port [!] port[:port] • Destination port • Numeric or resolvable (/etc/services) • Port range