Nätfilter

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 15 oktober 2018; kontroller kräver 8 redigeringar .
nätfilter
Sorts Brandvägg
Utvecklaren Netfilter Core Team
Skrivet i Xi
Operativ system Linux-kärnan
Licens GNU GPL
Hemsida netfilter.org
 Mediafiler på Wikimedia Commons

netfilter  är en brandvägg (brandvägg) inbyggd i Linux-kärnan sedan version 2.4.

Titel

iptables  är namnet på ett användarverktyg ( körs från kommandoraden) som är utformat för att hantera nätfiltersystemet. Administratörer använder det för att skapa och ändra regler som kontrollerar paketfiltrering och vidarebefordran . För att arbeta med IPv6- protokollfamiljen finns det en separat version av iptables-verktyget - ip6tables .

Vissa författare under ordet netfilter menar bara de element i brandväggen som är direkt del av kärnprotokollstacken , och allt annat (systemet med tabeller och kedjor) kallas iptables [1] . På grund av den inte helt tydliga terminologin [2] kallas ibland hela projektet (intrakärnans brandvägg tillsammans med användarverktyget) helt enkelt netfilter/iptables .

Historik

Netfilter/iptables-projektet grundades 1998 av Rusty Russell ( sv:Rusty Russell ); han är också författaren till ipchains föregångare projekt . När projektet utvecklades bildades 1999 Netfilter Core Team (förkortat coreteam). Den utvecklade brandväggen fick officiellt namnet netfilter. I mars 2000 inkluderades den i Linux 2.3-kärnan. I augusti 2003 blev Harald Welte chef för kärnteamet . 2004 inledde Welte och vann en rättegång mot Sitecom GmbH, som använde netfilter i sina produkter men vägrade följa GNU GPL [3] .

Före tillkomsten av iptables användes Linux 2.2 ipchains och Linux 2.0 ipfwadm- projekten , som i sin tur är baserade på ipfw från BSD- systemet , för att tillhandahålla brandväggsfunktioner på Linux . ipchains och ipfwadm-projekten förändrade hur Linux-kärnprotokollstacken fungerade, eftersom innan netfilter kom, fanns det inget sätt i kärnarkitekturen att ansluta ytterligare pakethanteringsmoduler. iptables behöll grundidén med ipfwadm - en lista över regler som består av kriterier och en åtgärd som ska vidtas om ett paket matchar kriterierna. Ett nytt koncept introducerades i ipchains – möjligheten att skapa nya regelkedjor och övergången av paket mellan kedjor, och i iptables utökades konceptet till fyra tabeller som avgränsar regelkedjor efter uppgift: filtrering, NAT och paketmodifiering. Dessutom har iptables utökat statusen för Linux, så att du kan skapa brandväggar som fungerar på sessionsnivå .

Arkitektur

I nätfiltersystemet förs paketen genom kedjor . En kedja är en ordnad lista med regler , och varje regel kan innehålla kriterier och en åtgärd eller övergång . När ett paket passerar genom kedjan kontrollerar nätfiltersystemet i sin tur om paketet matchar alla kriterier för nästa regel, och i så fall utför det en åtgärd (om det inte finns några kriterier i regeln, utförs åtgärden för alla paket som passerar genom regeln). Det finns många möjliga kriterier. Till exempel matchar ett paket --source 192.168.1.1 om pakethuvudet anger att avsändaren är 192.168.1.1. Den enklaste typen av övergång, --jump, vidarebefordrar helt enkelt paketet till början av en annan kedja. Du kan också specificera en åtgärd med --jump . Standardåtgärderna som är tillgängliga i alla kedjor är ACCEPT (hoppa över), DROP (radera), QUEUE (överför till ett externt program för analys) och RETURN (återgå till föregående kedja för analys). Till exempel kommandon

iptables -A INPUT --källa 192.168.1.1 --jump ACCEPTERA iptables -A INPUT --hoppa annan_kedja

betyder "lägg till följande regler i slutet av INPUT -kedjan : hoppa över paket från 192.168.1.1 och skicka allt som återstår att skicka till den andra_kedjan för analys ".

Kedjor

Det finns 5 typer av standardkedjor inbyggda i systemet:

Du kan också skapa och förstöra dina egna kedjor med hjälp av iptables-verktyget. [fyra]

Tabeller

Kedjorna är organiserade i 4 tabeller:

Kedjor med samma namn men i olika tabeller är helt oberoende objekt. Till exempel innehåller rå PREROUTING och mangle PREROUTING vanligtvis en annan uppsättning regler; paket går först genom den råa PREROUTING-kedjan och sedan genom manglen PREROUTING .

Tillståndsmekanism

Tillståndsmaskinen (anslutningsspårning) är ett anslutningsspårningssystem, en viktig del av netfilter, som implementerar en tillståndsfull brandvägg på sessionsnivå. Systemet låter dig bestämma vilken anslutning eller session ett paket tillhör. Tillståndsmotorn analyserar alla paket förutom de som är markerade med NOTRACK i råtabellen .

I nätfiltersystemet kan varje paket som passerar genom tillståndsmekanismen ha ett av fyra möjliga tillstånd:

Denna klassificering av paket skiljer sig i många fall från den officiella beskrivningen av nätverksprotokoll. Till exempel, enligt netfilter, är ett TCP SYN ACK-paket en del av en befintlig session, medan ett sådant paket enligt TCP-definition bara är ett sessionsöppningselement.

Att definiera sessioner för vissa protokoll är mycket enkelt; till exempel ett tecken på en UDP- session  - en klient från port X skickar paket till servern på port Y (eller vice versa) minst en gång var 30:e sekund. För andra protokoll ( FTP , SIP , H.323 , etc.) är sessionen svårare att fastställa, och nätfilter måste analysera innehållet i paketen för att korrekt bestämma deras tillstånd.

Du kan se attributen för aktiva anslutningar i pseudo -filen /proc/net/nf_conntrack (eller /proc/net/ip_conntrack) . För varje anslutning anges följande information:

tcp 6 117 SYN_SENT src=192.168.1.6 dst=192.168.1.9 sport=32775 dport=22 [UNREPLIED] src=192.168.1.9 dst=192.168.1.6 sport=22 dport=32775 [ASSURED] use=2

Conntrack- verktyget låter dig styra tillståndsdetekteringsmekanismen.

Se även

nftables är ett projekt som är designat för att ersätta det befintliga {ip,ip6,arp,eb}tabellpaketet.

Anteckningar

  1. Coulson, David Mastering IPTables  (engelska)  (länk ej tillgänglig) . www.linuxformat.co.uk (4 april 2001). Hämtad 14 juli 2007. Arkiverad från originalet 13 februari 2007.
  2. Chris Kaspersky "Tekniker för nätverksattacker. Motåtgärder. Kapitel 'Vad är Internet' (Internetarkitektur. Protokollträd. Paket på Internet. Porttilldelning.)"
  3. Urteil Harald Welte gegen Sitecom Deutschland GmbH  (tyska)  (otillgänglig länk) . Münchens domstol (19 maj 2004). Arkiverad från originalet den 24 februari 2012.
  4. Denis Kolisnichenko. Linux-serverapplikation. 3:e upplagan. Kapitel "Konfigurera brandväggen", sidan 372.
  5. iptables: inbyggd INPUT-kedja i nat-tabellen? - Serverfel . Hämtad 22 april 2014. Arkiverad från originalet 11 mars 2014.
  6. kernel/git/torvalds/linux.git - Linux-kärnan källträd

Länkar

netfilter administration