Iptables

Ubuntu 18.04.2

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