A csomagszűrő egy programrész a Linux kernelében, mely figyeli a csomagok fejlécét miközben azok keresztülhaladnak rajta, és eldönti az adott csomag további sorsát. Ez lehet DROP, mely a csomag eldobását jelenti, (kidobja a csomagot, mintha sosem kapta volna meg), ACCEPT, mely a csomag elfogadását jelenti (magyarán hagyja a csomagot továbbhaladni), vagy valami más, bonyolultabb eljárás.
Linux alatt a csomagszűrés a kernelbe van beépítve (vagy teljesen beleépítve, vagy betölthető modulként szerepel), és jópár trükköt képes bemutatni a csomagokon, de ettől még az alapvető funkciója a csomagok fejlécének figyelése és az aktuális csomag további sorsának eldöntése.
Ellnőrzés. Biztonság. Figyelem.
Ha a saját, illetve távolabbi hálózatokra (magyarán az Internetre) való kapcsolódáshoz Linuxot használsz, lehetőséged van bizonyos típusú hálózati forgalom engedélyezésére, és más típusú forgalom tiltására. Például, mivel a csomag fejléce tartalmazza, hogy a csomagot hova küldték (ez a csomag célcíme), meg tudod akadályozni, hogy a csomagok általad nem engedett helyre eljussanak. Egy másik példa, ha például Netscapet használok a Dilbert archívum eléréséhez. Az oldalon ott vannak a doubleklick.net hirdetései is, és a Netscape csak az időmet vesztegeti, miközben azokat tölti. Ha a csomagszűrő nem engedi át az olyan forgalmat, melynek forrása a doubleklick.net, ez a problémámat megoldja (bár vannak erre jobb megoldások is: például a Junkbuster).
Ha a te Linuxod az egyetlen átjáró az Internet káosza és a te szép, rendezett belső hálózatod között, jó ha tudod korlátozni, hogy mi jöhet be ezen az átjárón és mi mehet ki. Például, engedélyezni tudsz minden, a saját hálózatodról kifelé irányuló forgalmat, de meg tudod akadályozni, hogy tréfás kedvű idegenek a jól ismert "halál pingjével" (Ping Of Death) örvendeztessék meg jobb sorsra érdemes hálózatodat. Egy másik példa, ha nem kívánod, hogy kívülről telnet kapcsolatot létesítsenek Linuxoddal, bár minden accountod jelszóval van védve. Vagy ha (mint a legtöbben) csak használni akarod az Internetet, és nem működtetsz rajta szolgáltatót. Egyszerűen le tudod tiltani az összes olyan csomagot, melyeket szerverekre való kapcsolódásra használnak.
Néha egy elkonfigurált gép belső hálózatodról úgy gondolja, hogy neki most feltétlenül csomagokkal kell teleokádnia az Internetet. A csomagszűrő értesíteni tud téged bármilyen abnormális forgalomról; melynek következtében kijavíthatod a hibát, vagy egyszerűen csak bosszankodhatsz egy sort.
A Linux kernelek az 1.1 verzió óta tartalmazzák a csomagszűrő kódot. Az első generációt, mely a Berkeley Software Distribution (BSD) ipfw-jára épült, Alan Cox portolta 1994 végén. Ezt többekkel együtt Jos Vos fejlesztette tovább Linux 2.0-ra; melyben már az "ipfwadm" parancs kontrollálta a csomagszűrést. 1998 közepén, a Linux 2.2 alá nagymértékben újraírtam a kódot Michael Neuling segítségével, és kifejlesztettükk ennek kezelőoldali alkalmazását, az "ipchains"-t. Végül a negyedik generációs eszköz, az "iptables" és a hozzá kapcsolódó kernelrészek újraírása történt meg 1999 közepén a Linux 2.4 alá. Ez az iptables az, amire jelen HOWTO koncentrál.
Mindenek előtt szükséged van egy beépített csomagszűrő-struktúrával rendelkező kernelre: a csomagszűrő egy általános keret a Linux kernelben, mely egyéb funkciókat (mint például az iptables modul) tud betölteni. Ez azt jelenti, hogy 2.3.15-ös, vagy ennél újabb kernelre van szükséged, és "Y"-vel kell válaszolnod a CONFIG_NETFILTER lehetőségre a kernel konfigurálásakor.
Az iptables
eszköz a kernellel kommunikál, és utasítja azt a csomagszűrési szabályok alkalmazására. Amíg programozó nem leszel, vagy igen kiváltságos,
ez az egyetlen módod a csomagszűrés kontrollálására.
Az iptables
eszköz beszúr és töröl szabályokat a kernel csomagszűrő táblájából. Ez azt jelenti, hogy beállításaid elvesznek a számítógép újraindulásakor; lásd
az Állandó szabályok alkalmazását ha meg akarod tudni, mit kell tenned annak érdekében, hogy a következő Linux bootoláskor a szabályok visszaálljanak.
Az iptables
helyettesíti az ipfwadm
és ipchains
eszközöket is: lásd az
Ipchains és ipfwadm használata részt, hogy megtudd, hogy kell keservesen megkerülni az iptables használatát ezen eszközökkel.
Aktuális tűzfal-beállításaid a kernelben tárolódnak, ezért a gép újraindításakor elvesznek. Az iptables-save és az iptables-restore megírása még a TODO listámon van. Remélem, ha elkészülnek, jók lesznek.
Addig is tedd a tűzfal-szabályokat beállító parancsokat egy inicializáló scriptbe. Légy biztos benne, hogy jó helyre teszed, mert különben bizonyos parancsok elveszhetnek (például `exec /sbin/sulogin' alkalmazásakor).