NPF (firewall) - NPF (firewall)
Původní autoři | Mindaugas Rasiukevicius |
---|---|
První vydání | 17. října 2012[1] |
Úložiště | |
Napsáno | C |
Operační systém | NetBSD |
Typ | paketový filtr, Firewall |
Licence | Licence BSD |
webová stránka | www |
FNM je Licence BSD stavový paketový filtr, ústřední část softwaru pro firewalling. Je to srovnatelné s iptables, ipfw, ipfilter a PF. FNM je vyvíjen dne NetBSD.
Dějiny
NPF napsal primárně Mindaugas Rasiukevicius. FNM se poprvé objevil ve verzi NetBSD 6.0 v roce 2012.[1]
Funkce
NPF je navržen pro vysoký výkon na SMP systémy a pro snadnou rozšiřitelnost. Podporuje různé formy Překlad síťových adres (NAT), stavová kontrola paketů, stromové a hašovací tabulky pro sady IP, bytecode (BPF nebo n-code) pro vlastní pravidla filtrování a další funkce. NPF má rozšiřující rámec pro podporu vlastních modulů. Funkce jako protokolování paketů, normalizace provozu, náhodné blokování jsou poskytovány jako rozšíření NPF.
Příklad npf.conf
# Přiřazení adres určených rozhraní pouze pro IPv4. $ Ext_if = inet4 (wm0) $ int_if = inet4 (wm1) # Efektivní tabulky pro ukládání sad IP. Tabulka <1> typ hash souboru "/ etc / npf_blacklist" tabulka <2> zadejte strom dynamický # Proměnné s názvy služeb. $ services_tcp = {http, https, smtp, doména, 9022} $ services_udp = {doména, ntp} $ localnet = {10.1.1.0/24} # Jsou podporovány různé formy NAT. mapa $ ext_if dynamic 10.1.1.0/24 -> $ ext_ifmap $ ext_if dynamic 10.1.1.2 port 22 <- $ ext_if port 9022 # NPF má různá rozšíření, která jsou podporována pomocí vlastních procedur. postup "log" {log: npflog0} ## Seskupování je v NPF povinné. # Musí existovat výchozí skupina. # Skupina „externí“ na $ ext_if {# Stavové předávání veškerého odchozího provozu. pass stateful out final all block in final from <1> pass stateful in final family inet proto tcp to $ ext_if port ssh apply "log" pass stateful in final proto tcp to $ ext_if port $ services_tcp pass stateful in final proto udp to $ ext_if port $ services_udp # Pasivní FTP a traceroute předají stav ve finálním protokolu tcp na $ ext_if port 49151-65535 předají stav ve finálním protokolu udp na $ ext_if port 33434-33600} skupina „interní“ na $ int_if {# Filtrování příjmu podle RFC 2827 . blokovat ve všech průchodech ve finále z $ localnet předávat ve finále z <2> předávat ve finále vše} výchozí skupina {předávat finále na lo0 vše blokovat všechny}
Reference
- ^ A b Rasiukevicius, Mindaugas (2012-10-17). „Představujeme FNM v NetBSD 6.0“. Oznámení NetBSD (Poštovní seznam).