nftables packet filter release 1.0.0

Emissio fasciculi filorum nftablerum 1.0.0 divulgata est, fasciculum eliquandi interfaces emittens pro IPv4, IPv6, ARP et retis pontibus (quae ad reponendas iptables, ip6tabulas, arptables et eblemata sunt). Mutationes quae ad nftables requiruntur 1.0.0 emissio laboris in Linux 5.13 nucleo comprehenduntur. Notabilis mutatio in numero versionis nullis fundamentalibus mutationibus coniungitur, sed tantum consequitur constantem continuationem numeri in notatione decimali (prior dimissio erat 0.9.9).

Involucrum nftables involvit fasciculum colum usoris, dum opus nuclei subsystem ab nf_tables subsystem, quae pars Linux nuclei cum emissione 3.13 fuit. Gradus nucleus solum praebet protocollo-independens interfaciem genericam, quae praecipuas functiones praebet ad notitias ex fasciculis extrahendas, datas operationes faciendo, et imperium defluentes.

Collaboratio regulae ipsae et protocollo-speciales tractatores in spatio usoris bytecode compilavit, post quod hoc bytecode oneratur in nucleum utens Netlink interfaciem et in nucleo in specie virtuali machinae BPF instar (Berkeley Packet Filters). Hic accessus efficit ut signanter magnitudinem codicis eliquationis in gradu nuclei currentis minuere possit et omnia munera regulae parsing movere et logicam operandi cum protocolla in spatium usoris.

Innovationes principales:

  • Subsidium pro "*" larva elementi ad schedas collocandas addita est, quae pro quibusvis fasciculis utitur quae sub aliis elementis in statuto definitis non cadunt. table x { map blocklist { type ipv4_addr : sententia flags interval elements = { 192.168.0.0/16 : accept, 10.0.0.0/8 : accept, * : drop } } catena y { type filter hook prerouting prior 0; consilium accipio; ip saddr vmap @blocklist } }
  • Variabiles definire potest ex linea praecepti utendi optione "-definire". # cat test.nft table netdev x { chain y { type filter hook ingress device = $dev prioritas 0; consilium occumbo; } } # nft —define dev="{ eth0, eth1}" -f test.nft
  • In tabulis geographicis, usus constantium locutionum permittitur: tabula inet sparguntur {map portmap {type inet_service: sententiam calculi elementa = { 22 counter packets 0 bytes 0 : jump ssh_input, * counter packets 0 bytes 0 : drop } } catena ssh_input } catena wan_input tcp dport vmap @portmap } catena prerouting type filter hamo prerouting prioritas rudis; consilium accipio; iif vmap { "lo" : jump wan_input } } }
  • Adiectae "lineae electronicae" imperant ut indices tracto pro certo fasciculo familiae exhibeant: # nft album hami ip fabrica eth0 familia ip { hamus ingress { +0000000010 catena netdev xy [nf_tables] +0000000300 catena inet mw [nf_tables] } hamus initus { -0000000100 chain ip ab [nf_tables] +0000000300 chain inet mz [nf_tables] } hamum antrorsum { -0000000225 selinux_ipv4_forward 0000000000 chain ip ac [nf_tables] } hook output { -0000000225 selinux_ipv4_output } hamum postrouting { +0000000225 4 selinux_ipv }XNUMX
  • Stipitibus queue permittunt jhash, symhash, et voces numgenae componi ut fasciculas queues in spatio usoris distribuant. ... queue to symhash mod 65536 ... queue flags bypass to numgen inc mod 65536 ... queue to jhash oif . meta marca mod 32 "queue" coniungi etiam potest cum tabulis geographicis seligere queue in spatio usoris innixa clavibus arbitrariis. ... queue flags praeterire ad oifname map { "eth0" : 0, "ppp0" : 2, "eth1" : 2}
  • Fieri potest variabiles variabiles augere quae indicem in plures tabulas includunt. define interfaces = { eth0, eth1} tabula ip x { catena y { type filter hook input prioritas 0; consilium accipio; iifname vmap { lo : accept, $interfaces : drop } } } # nft -f x.nft # nft list ruleset table ip x { chain y { type filter hook input prior 0; consilium accipio; iifname vmap { "lo" : accept, "eth0" : gutta, "eth1" : drop } } }
  • Coniungendo vmaps (map) interiectis conceditur: # nft add regula xy tcp dport. ip saddr vmap { 1025-65535 . 192.168.10.2 : accept }
  • Simplicior syntaxis pro NAT mappings. Ordinationes inscriptionis specificare licet: ... snat ad ip saddr map {10.141.11.4 : 192.168.2.2-192.168.2.4} seu inscriptiones IP expressae et portus: ... dnat ad ip saddr map {10.141.11.4 : 192.168.2.3 . 80 } or combinations of IP ranges and ports: ... dnat to ip saddr . tcp dport map {192.168.1.2. 80: 10.141.10.2-10.141.10.5. 8888-8999 }

Source: opennet.ru

Add a comment