410 likes | 571 Views
Hálózat menedzsment. Óravázlat Készítette: Toldi Miklós. A csomagszűrés teljes menete. http://jengelh.medozas.de/images/nf-packet-flow.png. A csomagszűrés egyszerűsített menete. Láncok (chains). INPUT OTPUT FORWARD PREROUTING POSTROUTING. Tűzfal parancsok – I.
E N D
Hálózat menedzsment Óravázlat Készítette: Toldi Miklós
A csomagszűrés teljes menete http://jengelh.medozas.de/images/nf-packet-flow.png
Láncok (chains) • INPUT • OTPUT • FORWARD • PREROUTING • POSTROUTING
Tűzfal parancsok – I. A tűzfal állítása mindig az iptables (vagy IPv6 esetén ip6tables) használatával történik. Ehhez root jog szükséges. • Létező szabályok listázása iptables –L Más táblák esetén iptables –t nat –L
Tűzfal parancsok – II. Listázás, numerikus paraméterekkel iptables –L –n Listázás, sorszámozással iptables -L --line-numbers Listázás, csomagszám és méret információkkal iptables –L -v
Tűzfal parancsok – III. • Egy lánc alapértelmezett szabályának beállítása iptables –P lánc_neve szabály Pl. iptables –P INPUT DROP
Tűzfal parancsok – III. • Összes szabály törlése egy láncból iptables –F lánc_neve Pl. iptables –F INPUT
Tűzfal parancsok – IV. • Lánc létrehozása iptables –N lánc_neve Pl. iptables –N myfilter • Lánc átnevezése iptables –E lánc_régi_neve lánc_új_neve Pl. iptables –E myfilter myszuro
Tűzfal parancsok – V. • Lánc törlése iptables –X lánc_neve Pl. iptables –X myszuro • Lánc csomag és forgalomszámláló nullázása iptables –Z lánc_neve Pl. iptables –Z INPUT
Tűzfal szabályok hozzáadása – I. iptables [-t tábla_neve] –A lánc_neve opciók -j cél Pl. iptables –A INPUT –i eth0 –j ACCEPT iptables –t nat –A PREROUTING –s 127.0.0.1 –j DROP
Tűzfal szabályok hozzáadása – II. Lehetséges táblák: - filter (alapértelmezett) - nat - mangle - raw
Tűzfal szabályok hozzáadása – III. Lehetséges célok, alapértelmezetten - ACCEPT – csomag elfogadása - DROP – csomag eldobása, visszajelzés nélkül - REJECT - csomag eldobása, és visszajelzés küldése - QUEUE – csomag elküldése egy programhoz - lánc_neve – csomag átküldése egy másik láncba - RETURN – csomag visszatér egy adott láncból, annak szülő láncához
Tűzfal szabályok hozzáadása – IV. • Lehetséges opciók - -s forrás IP cím - -d cél IP cím - -p protokoll - -i hálókártya, ahonnan a csomag érkezett - -o hálókártya, ahol a csomag távozni fog A felsorolt opcióknál a paraméter elé rakott felkiáltójel, annak negálást jelzi.
Tűzfal szabályok beszúrása Az újonnan hozzáadott szabály mindig a lánc végére kerül. Van arra azonban lehetőség, hogy az új szabály a lánc egy adott pozíciójára kerüljön. iptables –I lánc_neve [szabály_szám] opciók -j cél Pl. iptables –I INPUT 12 –i eth0 –j ACCEPT
Tűzfal szabály törlése A törlés kétféle módon történhet. A törlendő szabály teljes megadásával. vagy a törlendő szabály számával. iptables –D szabály_definiciója iptables –D lánc_neve szabály_száma Pl. iptables –D INPUT –i eth0 –j ACCEPT iptables –D INPUT 12
Tűzfal szabály cseréje Van arra is lehetőség, hogy egy létező tűzfal szabályt lecseréljünk egy másikra. Ehhez ismerni kell a cserélendő szabály számát. iptables –R lánc_neve szabály_száma szabály_definiciója Pl. iptables –R INPUT 12 –s 127.0.0.1 –j ACCEPT
Kiterjesztések – I. Mind az opciók, mind a célok bővíthetőek kiterjesztések használatával. Ha egy használni kívánt kiterjesztés nincs a kernelbe befordítva, akkor külön be kell tölteni, hogy használni lehessen. Pl. modprobe xt_connlimit
Kiterjesztések – II. A kiterjesztések használata általában az opciók közt -m kiterjesztés_neve kiterjesztés_opciói formában lehetséges. Pl. iptables –A INPUT -m connbytes --connbytes 10000:100000 --connbytes-dir both ……
Kiterjesztések – III. • comment Megjegyzést (max. 256 db karakter) írhatunk vele bármelyik szabályhoz. Pl. iptables -A INPUT -s 192.168.0.0/16 -m comment --comment „Belso IP cim blokkolasa"
Kiterjesztések – IV. • tcp Ezt a modult a –p tcp opció használatával lehet elérni. A tcp csomagok kezeléséhez ad pár lehetőséget. --sport – a tcp csomag forrás portja --dport – a tcp csomag cél portja --tcp-flags a tcp csomag jelzőbitjeit lehet ezzel vizsgálni. --syn – a tcp csomag syn csomag jellegét lehet szűrni ezzel.
Kiterjesztések – V. • udp Ezt a modult a –p udp opció használatával lehet elérni. Az udp csomagok kezeléséhez ad kettő lehetőséget. --sport – az udp csomag forrás portja --dport – az udp csomag cél portja
Kiterjesztések – VI. • icmp Ezt a modult a –p icmp opció használatával lehet elérni. Az icmp csomagok szűréséhez lehet használni. --icmp-type icmp_csomag_típusa Pl. echo-reply (pong) echo-request (ping) time-exceeded destination-unreachable
Kiterjesztések – VII. • connlimit Lehetővé teszi, hogy korlátozzuk a párhuzamos kapcsolatok számát. --connlimit-above - párhuzamos kapcsolatok száma --connlimit-mask – az érkező címek netmaskja iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-above 3 -j DROP
Kiterjesztések – VIII. • state Ez a kiterjesztés teszi állapottartóvá a tűzfalat. --state állapot Lehetséges állapotok: • INVALID – nem lehet megállapítani az állapotát a csomagnak • NEW – új kapcsolathoz tartozó csomag • ESHTABLSHED – már létező kapcsolathoz tartozó csomag • RELATED – új kapcsolathoz tartozó csomag, de az új kapcsolat már összefügg egy már létező kapcsolattal.
Kiterjesztések – IX. • iprange Lehetővé teszi, hogy IP cím tartományokat kezeljünk a szűrési szabályokban. --src-range kezdet[-veg] – az IP csomag forrás címéből alkothatunk tartományt. --dst-range kezdet[-veg] – az IP csomag céljának címéből alkothatunk tartományt.
Kiterjesztések – X. • limit A kiterjesztés használata lehetővé teszi, hogy a szűrési szabályokban kezeljük, hogy egy adott típusú csomagból mekkora darabszámú érkezik be adott idő alatt. --limit rate – az időtartam, amely alatt a mérés történik. --limit-burst – a határszám, amely meghaladása esetén a mérés kezdődik.
Kiterjesztések – XI. • mac Ez a kiterjesztés lehetővé teszi, hogy a MAC címeket is használhassuk a szűrési szabályokban.
Kiterjesztések – XII. • owner Lehetővé teszi ez a kiterjesztés, hogy a szűrési szabályokban felhasználhassuk opcióként, hogy egy – egy csomag milyen felhasználónévvel vagy UID –al, csoportnévvel vagy GID rendelkezik. --uid-owner – felhasználónevet, vagy user azonosítót, esetleg user azonosító tartományt adhatunk meg --gid-owner – ugyanaz, mint az előző opció, csak csoportra vonatkoztatva.
Kiterjesztések – XIII. • time Eme kiterjesztés arra szolgál, hogy a csomagok szűrését időbeliségük alapján is lehessen szabályozni.
Kiterjesztések – XIV. • DNAT Eme cél arra szolgál, hogy a kimenő csomag cél IP címét, vagy az ahhoz tartozó portot módosítsa. Csak a nat táblában, OTPUT vagy PREROUTING láncban használható. --to-destination – itt lehet megadni a cél címet, és portot, kettősponttal elválasztva.
Kiterjesztések – XV. • SNAT Eme cél az előző párja, lehetővé teszi, hogy a csomag forrás IP címét, vagy porját módosítsuk. Csak a nat táblában, a PREROUTING láncban használható ! --to-source – itt lehet megadni a forrás IP címet és portot, kettősponttal elválasztva.
Kiterjesztések – XVI. • MASQUERADE A MASQUERADE cél a címfordítást végzi el. Csak a nat táblában, és a POSTROUTING láncban használható ez a cél. --to-ports – itt lehet megadni a publikus IP címet, amelyre a címfordítás történik. --random – a forrásport randomizálásra kerül.
Kiterjesztések – XVII. • REDIRECT Ez a cél lehetővé teszi, hogy lokálisan az egy adott portra érkező csomagot, egy másik portra irányítsunk. --to-ports – itt lehet megadni a cél portot, vagy port tartományt. --to-ports
Kiterjesztések – XVIII. • LOG Ez a cél arra szolgál, hogy az adott gép rendszer logállományába bejegyzés kerüljön egy szabályra illeszkedő csomagról.
Otthoni tűzfal • Alapvetően maszkolás történik, mivel nincs fix IP cím • Általában csak belső hálózatról fogad el bármilyen csatlakozási kérelmet • A kimenő forgalom esetlegesen loggolásra kerül.
Otthoni tűzfal - példa iptables –F iptables –P INPUT DROP iptables –P FORWARD DROP iptables –P OUTPUT ACCEPT iptables -A OUTPUT -i eth0 –j LOG iptables -A INPUT -i lo -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
Vállalti tűzfal • Fix IP címmel rendelkezik • A kimenő forgalom erősen szabályozva van, (IP cím vagy MAC address alapján) • A http és az FTP proxyn keresztül érhető el. • A forgalom loggolva van • Kívülről történő csatlakozás a védett hálózatba lehetséges, de csak szigorú feltételek mellett.
Vállalti tűzfal - példa iptables –F iptables –P INPUT DROP iptables –P FORWARD DROP iptables –P OUTPUT ACCEPT iptables -A OUTPUT -i eth1 –j LOG iptables -A INPUT -i lo -j ACCEPT iptables –A INPUT –i eth1 –p tcp –dport 22 –j ACCEPT iptables –A INPUT –m mac 00:1F:D0:C2:A3:1D –i eth0 –p tcp –dport 3128 -j ACCEPT iptables –A INPUT –m mac 00:1F:D0:C2:A3:1D –i eth0 –p udp –dport 53 -j ACCEPT iptables –A INPUT –m mac 03:DF:C5:B8:AD:5A –i eth0 –j ACCEPT
Tűzfal beállítások mentése és visszatöltése • iptables-save • iptables-restore
További lehetőségek a tűzfalakkal • Forgalom mérés • Sávszélesség korlátozás