Netfilter

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. október 15-én felülvizsgált verziótól ; az ellenőrzések 8 szerkesztést igényelnek .
netfilter
Típusú Tűzfal
Fejlesztő Netfilter alapcsapat
Beírva Xi
Operációs rendszer Linux kernelen
Engedély GNU GPL
Weboldal netfilter.org
 Médiafájlok a Wikimedia Commons oldalon

A netfilter  a 2.4-es verzió óta a Linux kernelbe beépített tűzfal (tűzfal).

Cím

Az iptables egy (a parancssorból futtatható) felhasználói segédprogram neve, amelyet a netfilter rendszer kezelésére terveztek. A rendszergazdák a csomagszűrést és -továbbítást szabályozó szabályok létrehozására és módosítására használják . Az IPv6 protokollcsaláddal való együttműködéshez létezik az iptables segédprogram külön verziója - ip6tables .

Egyes szerzők a netfilter szó alatt csak a tűzfal azon elemeit értik, amelyek közvetlenül a kernel protokoll verem részét képezik , és minden mást (a táblák és láncok rendszerét) iptables-nak nevezik [1] . A nem teljesen világos terminológia [2] miatt néha az egész projektet (a kernelen belüli tűzfalat a felhasználói segédprogrammal együtt) egyszerűen netfilter/iptables -nak nevezik .

Történelem

A netfilter/iptables projektet 1998-ban Rusty Russell ( en:Rusty Russell ) alapította; ő a szerzője az ipchains előd projektnek is . A projekt fejlődésével 1999-ben megalakult a Netfilter Core Team (rövidítve coreteam). A kifejlesztett tűzfal hivatalosan a netfilter nevet kapta. 2000 márciusában bekerült a Linux 2.3 kernelbe. 2003 augusztusában Harald Welte lett a törzscsapat vezetője . 2004-ben a Welte pert indított és megnyert a Sitecom GmbH ellen, amely netfiltert használt termékeiben, de megtagadta a GNU GPL követését [3] .

Az iptables megjelenése előtt a Linux 2.2 ipchains és Linux 2.0 ipfwadm projektjei, amelyek viszont a BSD rendszer ipfw - jén alapulnak, a Linux tűzfalának biztosítására szolgáltak . Az ipchains és ipfwadm projektek megváltoztatták a Linux kernel protokollverme működését, mivel a netfilter megjelenése előtt a kernel architektúrában nem volt lehetőség további csomagkezelő modulok csatlakoztatására. Az iptables megőrizte az ipfwadm alapötletét - egy olyan szabálylistát, amely kritériumokból és egy olyan műveletből áll, amelyet meg kell tenni, ha egy csomag megfelel a kritériumoknak. Az ipchains-ben egy új koncepciót vezettek be - új szabályláncok létrehozására és a csomagok láncok közötti átmenetére, az iptables-ban pedig a koncepció négy táblázatra bővült, amelyek feladatonként határolják el a szabályláncokat: szűrés, NAT és csomagmódosítás. Ezenkívül az iptables kiterjesztette a Linux állapotát, lehetővé téve olyan tűzfalak létrehozását, amelyek munkamenet szinten működnek.

Építészet

A netfilter rendszerben a csomagok láncokon haladnak át . A lánc szabályok rendezett listája , és minden szabály tartalmazhat feltételeket és egy műveletet vagy átmenetet . Amikor egy csomag áthalad a láncon, a netfilter rendszer sorra ellenőrzi, hogy a csomag megfelel-e a következő szabály összes feltételének, és ha igen, akkor végrehajt egy műveletet (ha nincs kritérium a szabályban, akkor a művelet végrehajtása a szabályon áthaladó összes csomag). Sok lehetséges kritérium létezik. Például egy csomag egyezik a --source 192.168.1.1 értékkel , ha a csomag fejléce azt határozza meg, hogy a küldő 192.168.1.1. Az átmenet legegyszerűbb típusa --jump, egyszerűen továbbítja a csomagot egy másik lánc elejére. A --jump paranccsal is megadhat egy műveletet . Az összes láncban elérhető szabványos műveletek a következők: ELFOGADÁS (kihagyás), DROP (törlés), QUEUE (átvitel külső programra elemzés céljából) és RETURN (visszatérés az előző lánchoz elemzés céljából). Például parancsokat

iptables -A BEMENET --forrás 192.168.1.1 --jump ELFOGADÁS iptables -A BEMENET --jump other_chain

azt jelenti, hogy "adja hozzá a következő szabályokat az INPUT lánc végéhez : hagyja ki a csomagokat a 192.168.1.1-től, és küldje el a többi_láncra elemzés céljából mindent, amit el kell küldeni ".

Láncok

5 féle szabványos lánc van beépítve a rendszerbe:

Saját láncokat is létrehozhat és megsemmisíthet az iptables segédprogrammal. [négy]

Táblázatok

A láncok 4 táblázatba vannak rendezve:

Az azonos nevű, de különböző táblákban lévő láncok teljesen független objektumok. Például a raw PREROUTING és a mangle PREROUTING általában eltérő szabályokat tartalmaznak; A csomagok először a nyers PREROUTING láncon mennek keresztül , majd a PREROUTING mangle -n .

Állami mechanizmus

Az állapotgép (kapcsolatkövetés) egy kapcsolatkövető rendszer, a netfilter fontos része, amely munkamenet szinten állapottartó tűzfalat valósít meg. A rendszer lehetővé teszi annak meghatározását, hogy egy csomag melyik kapcsolathoz vagy munkamenethez tartozik. Az állapotmotor elemzi az összes csomagot, kivéve azokat, amelyek NOTRACK jelzéssel vannak ellátva a nyers táblában .

A netfilter rendszerben minden, az állapotmechanizmuson áthaladó csomagnak a négy lehetséges állapot egyike lehet:

A csomagok ezen osztályozása sok esetben eltér a hálózati protokollok hivatalos leírásától. Például a netfilter szerint a TCP SYN ACK csomag egy meglévő munkamenet része, míg a TCP definíció szerint az ilyen csomag csak egy munkamenet-nyitó elem.

Egyes protokollok szekcióinak meghatározása nagyon egyszerű; például egy UDP -munkamenet jele  – egy kliens az X portról legalább 30 másodpercenként küld csomagokat az Y porton lévő szervernek (vagy fordítva). Más protokollok ( FTP , SIP , H.323 stb.) esetén a munkamenetet nehezebb meghatározni, és a netfilternek elemeznie kell a csomagok tartalmát, hogy helyesen meghatározza azok állapotát.

Az aktív kapcsolatok attribútumait a /proc/net/nf_conntrack (vagy /proc/net/ip_conntrack) pszeudofájlban tekintheti meg . Minden csatlakozásnál a következő információk jelennek meg:

tcp 6 117 SYN_SENT src=192.168.1.6 dst=192.168.1.9 sport=32775 dport=22 [VÁLASZTALAN] src=192.168.1.9 dst=192.168.1.6 sport=22 dport=32775 [BIZTOSÍTOTT] use=2

A conntrack segédprogram lehetővé teszi az állapotészlelési mechanizmus vezérlését.

Lásd még

Az nftables egy olyan projekt, amely a meglévő {ip,ip6,arp,eb}tables csomagot helyettesíti.

Jegyzetek

  1. Coulson, David Mastering IPTables  (angol)  (a hivatkozás nem elérhető) . www.linuxformat.co.uk (2001. április 4.). Letöltve: 2007. július 14. Az eredetiből archiválva : 2007. február 13..
  2. Chris Kaspersky "A hálózati támadások technikái. Ellenintézkedések. 'Mi az Internet' fejezet (Internet architektúra. Protokollfa. Csomagok az interneten. Port hozzárendelés.)"
  3. Urteil Harald Welte gegen Sitecom Deutschland GmbH  (német)  (hozzáférhetetlen hivatkozás) . Müncheni Bíróság (2004. május 19.). Az eredetiből archiválva : 2012. február 24.
  4. Denis Kolisnichenko. Linux szerver alkalmazás. 3. kiadás. "A tűzfal konfigurálása" fejezet, 372. oldal.
  5. iptables: beépített INPUT lánc a nat táblában? - Szerver hiba . Letöltve: 2014. április 22. Az eredetiből archiválva : 2014. március 11..
  6. kernel/git/torvalds/linux.git – Linux kernel forrásfa

Linkek

netfilter adminisztráció