Iptables: A Linux kernel csomagszűrő tűzfal modulja. Mi az a tűzfal? A kimenő és bejövő csomagok szűrése. Több csoportra osztható:
- Stateless /csomagszűrő/: Minden egyes csomagot megvizsgál és a keret információi alapján eldönti mi történjen a csomaggal.
- Statefull /állapotfigyelő/: Megvizsgálja az első csomagot a forrásból, majd az összetartozó csomagokra ugyan azt a szabályt alkalmazza mint az elsőre.
- Proxy-tűzfal/Tartalomfigyelő: Beengedi a csomagokat, összeállítja, majd ellenőrzi…
Az Iptables parancs.
Működése: a csomagok keresztülhaladnak láncokon és ezeknek a szabályait, egyesével alkalmazzuk rájuk, ha a csomag nem felel meg az aktuális szabálynak tovább lép a láncban következő szabályhoz, amikor a csomag eléri a lánc utolsó szabályát és nem volt rá illeszkedő szabály definiálva, akkor nem kerül végrehajtásra.
Szabályok: illesztési feltételt tartalmaz és egy célt, hogy mi történjen a csomaggal, ha illeszkedik (ahhoz, hogy egy szabály illeszkedjen a csomagra, minden illesztési feltételnek teljesülnie kell), a cél végrehajtódik.
Kisbetűkkel írjuk a táblák nevét, három van belőlük: mangle, nat és filter táblák. Nagybetűkkel írjuk a láncokat, amelyekhez hozzáfűzhetjük saját
szabályainkat: INPUT, OUTPUT, PREROUTING, POSTROUTING és FORWARD, de tetszőlegesen hozhatunk létre saját láncokat is.
Láncok:
- PREROUTING: miután megérkezik egy hálózati interfészről
- POSTROUTING: még mielőtt kilépne egy hálózati interfészről
- INPUT: bejövő csomag, mielőtt helyi folyamathoz kerülne
- OUTPUT: mielőtt kimenne a csomag
- FORWARD: továbbítás (egyik interfészen beérkezik és azonnal kilép a másikon)
Táblák:
- Filter: Itt korlátozhatjuk a gépünkhöz való hozzáférést. A számítógépre beengedhető, átengedhető, kiengedhető forgalmat állítja be (alapértelmezetten ennek a táblának a láncait használja az iptables). Láncai: FORWARD, INPUT, OUTPUT
- Mangle: Csomagmanipulálásra használják: itt a csomagok fejlécének mezőit módosíthatjuk, esetleg megjelölhetjük a csomagokat a későbbi route-oláshoz. Láncai: FORWARD, INPUT, OUTPUT, POSTROUTING
- Nat: Címfordítás. A nat tábla szolgál a csomagok forrás- és célcímeinek módosítására. Az ehhez a táblához tartozó láncokon belül irányíthatjuk át a kapcsolatokat más gépekre (hogy például a gépünk 80-as portja egy másik gépen lévő webszerverhez vezessen, vagy akár azt, hogy a gépünk összes portja mögött ugyanaz a szerver legyen… és igen, itt akár olyan csomagokat is létrehozhatunk, amelyek első ránézésre nem is a mi gépünkről származnak…) Láncai: OUTPUT, POSTROUTING, PREROUTING
Célok:
- ACCEPT: Továbbengedi a csomagot.
- DROP: Eldobja a csomagot.
Parancsok:
- -A lánc: adott lánc végéhez új szabály
- -N lánc: új láncot hoz létre
- -L lánc: lánc kilistázása
- -F lánc: lánc kitörlése
- -P lánc: alapértelmezett policy
- -t tábla: ha nem az alapértelmezett táblát kívánjuk használni
Paraméterek:
- -p: csomagprotokoll
- -d: csomag cél
- -s: csomag forrás
- –dport : amelyik portra érkezik
- –sport : amelyik porton kilép
- -j: szabály megadása
- -i : bejövő interfész
- -o : kimenő interfész