Netfilter

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 15. oktober 2018; checks kræver 8 redigeringer .
netfilter
Type Firewall
Udvikler Netfilter Core Team
Skrevet i Xi
Operativ system Linux-kernen
Licens GNU GPL
Internet side netfilter.org
 Mediefiler på Wikimedia Commons

netfilter  er en firewall (firewall) indbygget i Linux-kernen siden version 2.4.

Titel

iptables  er navnet på et brugerværktøj ( køres fra kommandolinjen) designet til at styre netfiltersystemet. Administratorer bruger det til at oprette og ændre regler, der kontrollerer pakkefiltrering og videresendelse . For at arbejde med IPv6 -protokolfamilien er der en separat version af iptables-værktøjet - ip6tables .

Nogle forfattere under ordet netfilter mener kun de elementer i firewallen, der er direkte en del af kerneprotokolstakken , og alt andet (systemet af tabeller og kæder) kaldes iptables [1] . På grund af den ikke helt klare terminologi [2] er nogle gange hele projektet (intrakerne firewall sammen med brugerværktøjet) blot navngivet netfilter/iptables .

Historie

Netfilter/iptables-projektet blev grundlagt i 1998 af Rusty Russell ( en:Rusty Russell ); han er også forfatter til ipchains forgængerprojekt . Som projektet udviklede sig, blev Netfilter Core Team (forkortet til coreteam) i 1999 dannet. Den udviklede firewall fik officielt navnet netfilter. I marts 2000 blev det inkluderet i Linux 2.3 kernen. I august 2003 blev Harald Welte chef for coreteamet . I 2004 indledte og vandt Welte en retssag mod Sitecom GmbH, som brugte netfilter i sine produkter, men nægtede at følge GNU GPL [3] .

Før fremkomsten af ​​iptables blev Linux 2.2 ipchains og Linux 2.0 ipfwadm- projekterne , som igen er baseret på ipfw fra BSD -systemet , brugt til at levere firewall-funktioner på Linux . Ipchains og ipfwadm-projekterne ændrede, hvordan Linux-kerneprotokolstakken fungerede, fordi før fremkomsten af ​​netfilter var der ingen måde i kernearkitekturen at forbinde yderligere pakkestyringsmoduler. iptables beholdt den grundlæggende idé om ipfwadm - en liste over regler bestående af kriterier og en handling, der skal tages, hvis en pakke matcher kriterierne. Et nyt koncept blev introduceret i ipchains - muligheden for at skabe nye kæder af regler og overgangen af ​​pakker mellem kæder, og i iptables blev konceptet udvidet til fire tabeller, der afgrænser kæder af regler efter opgave: filtrering, NAT og pakkemodifikation. Også iptables har udvidet Linux status, så du kan oprette firewalls, der fungerer på sessionsniveau .

Arkitektur

I netfiltersystemet føres pakker gennem kæder . En kæde er en ordnet liste over regler , og hver regel kan indeholde kriterier og en handling eller overgang . Når en pakke passerer gennem kæden, tjekker netfiltersystemet på skift, om pakken matcher alle kriterierne i den næste regel, og hvis det er tilfældet, udfører den en handling (hvis der ikke er kriterier i reglen, så udføres handlingen for alle pakker, der passerer gennem reglen). Der er mange mulige kriterier. For eksempel matcher en pakke --source 192.168.1.1 , hvis pakkehovedet angiver, at afsenderen er 192.168.1.1. Den enkleste type overgang, --jump, videresender simpelthen pakken til begyndelsen af ​​en anden kæde. Du kan også angive en handling med --jump . De tilgængelige standardhandlinger i alle kæder er ACCEPT (spring over), DROP (slet), KØ (overfør til et eksternt program til analyse) og RETURN (vend tilbage til den forrige kæde for analyse). For eksempel kommandoer

iptables -A INPUT --kilde 192.168.1.1 --jump ACCEPTERER iptables -A INPUT --hop anden_kæde

betyder "tilføj følgende regler til slutningen af ​​INPUT -kæden : spring over pakker fra 192.168.1.1, og send alt, der mangler at blive sendt til den anden_kæde til analyse ".

Kæder

Der er 5 typer standardkæder indbygget i systemet:

Du kan også oprette og ødelægge dine egne kæder ved hjælp af iptables-værktøjet. [fire]

Tabeller

Kæderne er organiseret i 4 borde:

Kæder med samme navn, men i forskellige tabeller, er helt uafhængige objekter. For eksempel indeholder rå PREROUTING og mangle PREROUTING normalt et andet sæt regler; pakker går først gennem den rå PREROUTING-kæde og derefter gennem mangle PREROUTING .

Tilstandsmekanisme

Tilstandsmaskinen (forbindelsessporing) er et forbindelsessporingssystem, en vigtig del af netfilter, som implementerer en stateful firewall på sessionsniveau. Systemet giver dig mulighed for at bestemme, hvilken forbindelse eller session en pakke tilhører. Tilstandsmotoren analyserer alle pakker undtagen dem, der er markeret med NOTRACK i råtabellen .

I netfiltersystemet kan hver pakke, der passerer gennem tilstandsmekanismen, have en af ​​fire mulige tilstande:

Denne klassificering af pakker adskiller sig i mange tilfælde fra den officielle beskrivelse af netværksprotokoller. For eksempel, ifølge netfilter, er en TCP SYN ACK-pakke en del af en eksisterende session, mens en sådan pakke ifølge TCP-definition blot er et sessionsåbningselement.

Det er meget enkelt at definere sessioner for nogle protokoller; for eksempel et tegn på en UDP -session  - en klient fra port X sender pakker til serveren på port Y (eller omvendt) mindst én gang hvert 30. sekund. For andre protokoller ( FTP , SIP , H.323 , etc.) er sessionen sværere at bestemme, og netfilter skal parse indholdet af pakkerne for korrekt at bestemme deres tilstand.

Du kan se attributterne for aktive forbindelser i pseudo -filen /proc/net/nf_conntrack (eller /proc/net/ip_conntrack) . For hver forbindelse er følgende oplysninger angivet:

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

Conntrack -værktøjet giver dig mulighed for at kontrollere tilstandsdetektionsmekanismen.

Se også

nftables er et projekt, der er designet til at erstatte den eksisterende {ip,ip6,arp,eb}tables bundle.

Noter

  1. Coulson, David Mastering IPTables  (engelsk)  (link ikke tilgængeligt) . www.linuxformat.co.uk (4. april 2001). Hentet 14. juli 2007. Arkiveret fra originalen 13. februar 2007.
  2. Chris Kaspersky "Teknikker til netværksangreb. Modforanstaltninger. Kapitel 'Hvad er internettet' (internetarkitektur. Protokoltræ. Pakker på internettet. Porttildeling.)"
  3. Urteil Harald Welte gegen Sitecom Deutschland GmbH  (tysk)  (utilgængeligt link) . München-domstolen (19. maj 2004). Arkiveret fra originalen den 24. februar 2012.
  4. Denis Kolisnichenko. Linux server applikation. 3. udgave. Kapitel "Konfiguration af firewallen", side 372.
  5. iptables: indbygget INPUT-kæde i nat-tabel? - Serverfejl . Hentet 22. april 2014. Arkiveret fra originalen 11. marts 2014.
  6. kernel/git/torvalds/linux.git - Linux-kernens kildetræ

Links

netfilter administration