netfilter | |
---|---|
Type | Firewall |
Udvikler | Netfilter Core Team |
Skrevet i | Xi |
Operativ system | på 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.
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 .
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 .
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ædebetyder "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 ".
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]
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 .
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=2Conntrack -værktøjet giver dig mulighed for at kontrollere tilstandsdetektionsmekanismen.
nftables er et projekt, der er designet til at erstatte den eksisterende {ip,ip6,arp,eb}tables bundle.
Firewalls | ||
---|---|---|
Ledig | ||
Ledig |
| |
Kommerciel |
| |
Hardware |