nftables packet filter 1.0.0 famoahana

Navoaka ny famotsorana ny packet filter nftables 1.0.0, mampiray ny fifandraisana amin'ny sivana packet ho an'ny IPv4, IPv6, ARP ary tetezana tambajotra (kendrena hanolo ny iptables, ip6table, arptables ary ebtables). Ny fanovana ilaina amin'ny famoahana nftables 1.0.0 dia tafiditra ao amin'ny kernel Linux 5.13. Ny fiovana lehibe eo amin'ny laharan'ny dikan-teny dia tsy misy ifandraisany amin'ny fiovana fototra, fa vokatry ny fitohizan'ny fanisana tsy tapaka amin'ny notation desimal (ny famoahana teo aloha dia 0.9.9).

Ny fonosana nftables dia ahitana singa sivana fonosana izay mandeha amin'ny habaka mpampiasa, raha toa kosa ny asan'ny kernel-level dia omen'ny subsystem nf_tables, izay anisan'ny kernel Linux hatramin'ny famoahana 3.13. Ny haavon'ny kernel dia tsy manome afa-tsy interface tsy miankina amin'ny protocol generic izay manome fiasa fototra amin'ny fakana ny angona avy amin'ny fonosana, ny fampandehanana ny angona ary ny fanaraha-maso ny fikorianan'ny rano.

Ny fitsipika fanivanana sy ireo mpikirakira manokana momba ny protocole dia natambatra ho bytecode-space-n'ny mpampiasa, ary avy eo dia ampidirina ao anaty kernel ity bytecode ity amin'ny alΓ lan'ny interface Netlink ary atao ao anaty kernel ao anaty milina virtoaly manokana mitovy amin'ny BPF (Berkeley Packet Filters). Ity fomba fiasa ity dia ahafahana mampihena be ny haben'ny code sivana mandeha amin'ny haavon'ny kernel ary mamindra ny fiasa rehetra amin'ny fitsipi-pitenenana sy ny lojika miasa amin'ny protocols ho any amin'ny habaka mpampiasa.

Fanavaozana lehibe:

  • Ny fanohanana ny singa saron-tava "*" dia nampiana amin'ny fametrahana lisitra, izay atomboka amin'ny fonosana rehetra izay tsy tafiditra ao anatin'ny singa hafa voafaritra ao amin'ny set. latabatra x { lisitry ny sari-tany {karazana ipv4_addr : didim-pitsarana saina singa elanelana = { 192.168.0.0/16 : manaiky, 10.0.0.0/8 : manaiky, * : mitete } } rojo y {karazana sivana hook prerouting laharam-pahamehana 0; manaiky ny politika; ip saddr vmap @blocklist } }
  • Azo atao ny mamaritra ny fari-pahaizan'ny baiko amin'ny alΓ lan'ny safidy "--define". # cat test.nft table netdev x { chain y { type filter hook ingress devices = $dev priority 0; fidinana politika; } } # nft β€”define dev="{ eth0, eth1 }" -f test.nft
  • Ao amin'ny lisitry ny sari-tany dia azo ampiasaina ny fomba fiteny tsy miova (stateful): sivana inet table {map portmap {karazana inet_service: singa mpanohitra didim-pitsarana = {22 counter packets 0 bytes 0: jump ssh_input, * counter packets 0 bytes 0: drop} } chain ssh_input { } chain wan_input { tcp dport vmap @portmap } chain prerouting { type filter hook prerouting priority manta; manaiky ny politika; iif vmap {"lo": hitsambikina wan_input } } }
  • Nampiana baiko "list hooks" hanehoana lisitr'ireo mpitantana ho an'ny fianakaviana fonosana iray: # nft list hooks ip device eth0 family ip { hook ingress { +0000000010 chain netdev xy [nf_tables] +0000000300 chain inet mw [nf_tables] } hook input { -0000000100 rojo ip ab [nf_tables] +0000000300 rojo inet mz [nf_tables] } hook forward {-0000000225 selinux_ipv4_forward 0000000000 rojo ip ac [nf_tables] 0000000225 selinux_ipv4_forward 0000000225 } postrouting hook { +4 XNUMX selinux_ipvXNUMX_postroute } }
  • Ny sakana filaharana dia ahafahan'ny jhash, symhash, ary numgen mitambatra mba hizarana fonosana amin'ny filaharana ao amin'ny habaka mpampiasa. … filaharana mankany amin'ny symhash mod 65536 … filaharana saina mandalo mankany amin'ny numgen inc mod 65536 … filaharana mankany amin'ny jhash oif . Ny meta mark mod 32 "filaharana" dia azo atambatra amin'ny lisitry ny sari-tany mba hisafidianana filaharana amin'ny habaka mpampiasa mifototra amin'ny fanalahidy tsy misy dikany. ... ny saina filaharana dia mandalo amin'ny sari-tany oifname { "eth0" : 0, "ppp0" : 2, "eth1" : 2 }
  • Azo atao ny manitatra ny fari-piadidiana misy lisitra napetraka ho sarintany maromaro. mamaritra ny interfaces = { eth0, eth1 } latabatra ip x { rojo y { karazana sivana hook laharam-pahamehana 0; manaiky ny politika; iifname vmap {lo: manaiky, $interfaces: mitete} } } # nft -f x.nft # nft lisitry ny fitsipi-pifehezana latabatra ip x { rojo y { karazana sivana hook laharam-pahamehana 0; manaiky ny politika; iifname vmap { "lo": manaiky, "eth0": mitete, "eth1": mitete} } }
  • Azo atao ny manambatra vmaps (sari-tany didim-pitsarana) amin'ny elanelana: # nft add rule xy tcp dport . ip saddr vmap { 1025-65535 . 192.168.10.2 : manaiky }
  • Syntax tsotsotra ho an'ny sarintany NAT. Avela hamaritra ny adiresy: ... snat to ip saddr map { 10.141.11.4 : 192.168.2.2-192.168.2.4 } na adiresy IP mazava sy seranana: ... dnat to ip saddr map { 10.141.11.4 : 192.168.2.3 : . 80 } na fitambaran'ny faritra sy seranan-tsambo IP: ... dnat to ip saddr . tcp dport sarintany { 192.168.1.2 . 80: 10.141.10.2-10.141.10.5. 8888-8999 }

Source: opennet.ru

Add a comment