nftables packet filter 1.0.3 famoahana

Navoaka ny famotsorana ny packet filter nftables 1.0.3, 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.3 hiasa dia tafiditra ao amin'ny kernel Linux 5.18.

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 lisitry ny lisitra izao dia manohana ny anarana mifanandrify amin'ny tambajotra amin'ny alΓ lan'ny saron-tava, ohatra, voafaritra amin'ny fampiasana ny marika "*": table inet testifsets {set simple_wild {type ifname flags interval elements = {"abcdef*", "othername", "ppp0" } } rojo v4icmp { karazana filtre hook laharam-pahamehana 0; manaiky ny politika; iifname @simple_wild counter packets 0 bytes 0 iifname { β€œabcdef*”, β€œeth0” } counter packets 0 bytes 0 } }
  • Napetraka ho azy ny fampifangaroana ireo singa ao anaty lisitra mifanelanelana mandritra ny fandidiana. Teo aloha, rehefa napetraka ny safidy "auto-merge", dia natao teo amin'ny dingan'ny fanambarana ny fitsipika ny fampifangaroana, fa ankehitriny dia miasa ihany koa izy rehefa misy singa vaovao ampiana tsikelikely mandritra ny fandidiana. Ohatra, amin'ny dingan'ny fanambarana, ny lisitra dia mametraka y { flags interval auto-merge elements = { 1.2.3.0, 1.2.3.255, 1.2.3.0/24, 3.3.3.3, 4.4.4.4, 4.4.4.4-4.4.4.8 , 3.3.3.4 , 3.3.3.5 } } dia hovana ho singa = { 1.2.3.0/24, 3.3.3.3-3.3.3.5, 4.4.4.4-4.4.4.8 } ary avy eo raha manampy singa vaovao # nft ampio singa ip xy {1.2.3.0 -1.2.4.255, 3.3.3.6} dia ho toy ny singa = {1.2.3.0-1.2.4.255, 3.3.3.3-3.3.3.6, 4.4.4.4-4.4.4.8}

    Rehefa esorinao ny singa tsirairay avy amin'ny lisitra izay tafiditra ao anatin'ny singa isan-karazany efa misy, dia hohafohezina na zarazaraina ny elanelana.

  • Ny fanohanana ny fampifangaroana fitsipika fandikana adiresy maromaro (NAT) ao anaty lisitry ny sari-tany dia nampiana tao amin'ny optimizer fitsipika, antsoina rehefa voafaritra ny safidy "-o/β€”optimize". Ohatra, ho an'ny set # cat ruleset.nft table ip x { chain y { type nat hook postrouting priority srcnat; fidinana politika; ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90 } }

    ny fanatanterahana ny "nft -o -c -f ruleset.nft" dia hanova ny fitsipika "ip saddr" misaraka ho lisitry ny sarintany: snat ho ip saddr . tcp dport sarintany {1.1.1.1. 8000: 4.4.4.4. 80, 2.2.2.2. 8001: 5.5.5.5. 90}

    Toy izany koa, ny fomba fiteny manta dia azo avadika ho lisitry ny sari-tany: # cat ruleset.nft table ip x { […] 47 63x160,128e0e goto nat_dns_this_0 halavan'ny udp 373135363130333131303735353203-62 @th,78 160,128x0e0e goto nat_dns_saturn_31393032383939353831343037320 halavan'ny udp 5301-62 @th,78 160,128x0 0e goto nat_dns_saturn_31363436323733373931323934300 udp length 5301-62 @th,78 160,128x0e0e goto nat_dns_saturn_32393535373539353636383732310 drop } }

    aorian'ny fanatsarana dia mahazo lisitry ny sari-tany izahay: udp length . @th,160,128 vmap { 47-63 . 0x0e373135363130333131303735353203 : goto nat_dns_dnstc, 62-78 . 0x0e31393032383939353831343037320e : goto nat_dns_this_5301, 62-78 . 0x0e31363436323733373931323934300e : goto nat_dns_saturn_5301, 62-78 . 0x0e32393535373539353636383732310e : goto nat_dns_saturn_5302, 62-78 . 0x0e38353439353637323038363633390e : goto nat_dns_saturn_5303 }

  • Azo atao ny mampiasa teny manta amin'ny asa fampiraisana. Ohatra: #nft ampio fitsipika xy ip saddr. @ih,32,32 { 1.1.1.1 . 0x14, 2.2.2.2 . 0x1e } na tabilao x {set y {karazana ip saddr. @ih,32,32 singa = { 1.1.1.1 . 0x14 } } }
  • Fanampiana fanampiny amin'ny famaritana ny saha lohapejy integer amin'ny hetsika concatenation: table inet t {map m1 {typeof udp length. @ih,32,32 : ny didim-pitsarana dia mametraka singa elanelana = { 20-80 . 0x14 : manaiky, 1-10 . 0xa : mitete } } rojo c { karazana filtre hook laharam-pahamehana 0; fidinana politika; halavan'ny udp. @ih,32,32 vmap @m1 } }
  • Fanohanana fanampiny amin'ny famerenana ny safidy TCP (miasa amin'ny kernel Linux 5.18+ ihany): tcp flags syn reset tcp option sack-perm
  • Nohafainganina ny fanatanterahana ny baiko famoahana rojo (β€œnft list chain xy”).

Source: opennet.ru

Add a comment