A netfilter egy csomagszűrő szoftver, a 2.4.x és későbbi Linux kernelek számára.
Lehetővé teszik a csomagok:
A Netfilter kampók, angolul hook, kapcsolódási pontok, ahol beleszólhatunk a csomagok áramlásába.
5 alapértelmezett kampó van, ezeket az alábbi táblázat mutatja be.
Név | Név forráskódban |
---|---|
prerouting | NF_IP_PRE_ROUTING |
input | NF_IP_LOCAL_IN |
forward | NF_IP_FORWARD |
output | NF_IP_LOCAL_OUT |
postrouting | NF_IP_POST_ROUTING |
A nagybetűs alak a kernel forráskódjában megadott neveket mutatja.
A beállítások során láncokat hozunk létre, amelyeknek a neve célszerűen megegyezik a kampók nevével.
A netfilter beállítás során szabályokat írnunk, amelyek listát alkotnak. A listákat láncokhoz, azokon keresztül pedig a kampókhoz rendeljük.
A táblák egy-egy tevékenység típust jelölnek.
Az alábbi táblázat bemutatja milyen típusú tevékenységeket végezhetünk.
Lehetőség | Táblanév | Milyen kampón használható |
---|---|---|
szűrés | filter | INPUT, OUTPUT, FORWARD |
címfordítás | nat | PREROUTING, INPUT, POSTROUTING, OUTPUT |
fejléc átírás | mangle | PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING |
csomagkövetés | raw | PREROUTING, POSTROUTING |
hozzáférési lista | security | INPUT, OUTPUT, FORWARD |
A Netfilter egyik lehetősége a szűrés. Ahogy az előző részben látható volt, a csomagok útjába 5 kampónál szólhatunk bele a csomagok áramlásába. Szűrésre ezek közül 3 áll rendelkezésre. Ezek:
A csomagokat engedhetjük az útjukra, eldobhatjuk, átadhatjuk egy alrendszernek, sorba állíthatjuk, vagy visszairányíthatjuk szabálylista elejére a láncon.
A csomagok sorsa a következő lehet:
A címfordítás angolul Network Address Translation, vagy csak röviden NAT. IPv4-s címtérben a privát címek nyilvános IP címekké fordítását és nyilvános címek privát címmé fordítását jelentik.
Címfordítást, a következő láncokon végezhetünk: