VĂ€lja anti nftables 1.1.0 paketifilter

VĂ€lja on vĂ€lja antud nftables 1.1.0 pakifiltri versioon, mis ĂŒhtlustab paketifiltrimise liideseid IPv4, IPv6, ARP ja vĂ”rgu sillade jaoks (suunatud iptables, ip6tables, arptables ja ebtables asendamisele). Versiooninumbri mĂ€rkimisvÀÀrne muutus ei ole seotud radikaalsete muudatustega, vaid on lihtsalt jĂ€rjepideva kĂŒmnendailmimise jĂ€tkumise tulem. Eelmise vĂ€ljaanne oli 1.0.9. Samuti on vĂ€lja antud seotud raamatukogude versioon libnftnl 1.2.7, mis pakub madala taseme API-d nf_tables sĂŒsteemiga suhtlemiseks.

Nftables'i paketis on kasutusruumi paketifiltreerimise komponendid, samas kui tuuma tasemel tagab töö nf_tables alamsĂŒsteem, mis on Linuxi tuumas saadaval alates versioonist 3.13. Tuuma tasemel on olemas vaid ĂŒldine liides, mis ei sĂ”ltu konkreetsetest protokollidest ja pakub pĂ”hiĂŒlesandeid paketidest andmete ekstraheerimiseks, andmete töötlemiseks ja voogude haldamiseks.

Filtreerimisreeglid ja protokollispetsiifilised töötlejad kompileeritakse kasutusruumis byte-koodiks, seejÀrel laaditakse see byte-kood tuuma Netlinki liidese abil ja kÀivitatakse tuumas eraldi virtuaalmasinas, mis tahes BPF (Berkeley Packet Filters). Sarnane lÀhenemine vÔimaldab oluliselt vÀhendada filterkoodi suurust, mis töötab tuuma tasemel, ning viia kÔik reeglite parsing'u funktsioonid ja protokollide töötlemise loogika kasutajaruumi.

Peamised muudatused:

  • Map-vĂ€ljenditesse on lisatud muutujate tugi: define dst_map = { ::1234 : 5678 } table ip6 nat { map dst_map { typeof ip6 daddr : tcp dport; elements = $dst_map } chain prerouting { ip6 nexthdr tcp redirect to ip6 daddr map @dst_map } }
  • VLAN-i tugi on lisatud: ip saddr 10.1.1.1 icmp type echo-request vlan id set 321 # payload ether type 8021ad vlan id 10 vlan type 8021q vlan id 100 vlan type ip accept
  • VĂ€ljendite «log» jaoks on kasutusele vĂ”etud uus stringi eelprotsessor muutujate toega: define message=»test» log prefix «my $message»
  • VĂ€ljendi «meta hour» vÀÀrtuse arvutamisel on teostatud negatiivse nihke töötlemine ajavööndis, mis on mÀÀratud keskkonnamuutujaga TZ: TZ=UTC-4 nft add rule x y meta hour «22:00»
  • Tagatud on baitide jĂ€rjestuse konverteerimine, kui kasutatakse vĂ€ljendeid ct ja meta, samuti liitmisoperatsioonide ja vahemike mÀÀratlemisel set-kogudes. map mapv6 { typeof ip6 dscp : meta mark; } meta mark set ip6 dscp map @map1 saadakse baitkood: [ payload load 2b @ network header + 0 => reg 1 ] [ bitwise reg 1 = ( reg 1 & 0x0000c00f ) ^ 0x00000000 ] [ byteorder reg 1 = ntoh(reg 1, 2, 2) ] [ bitwise reg 1 = ( reg 1 > 0x00000006 ) ] [ lookup reg 1 set mapv6 dreg 1 ] [ meta set mark with reg 1 ]
  • KĂ€sku «replace rule» on taas toetatud. replace rule ip t1 c1 handle 3 ‘jhash ip protocol . ip saddr mod 170 vmap { 0-94 : goto wan1, 95-169 : goto wan2, 170-269 }’
  • On taastatud vĂ”imalus lisada vĂ”rguseadmeid olemasolevatesse flowtable'idesse: create flowtable inet filter f1 { hook ingress priority 0; counter } add flowtable inet filter f1 { devices = { dummy1 } ; }
  • On lahendatud probleemid, mis tekkisid kĂ€su «create set» kasutamisel: define ip-block-4 = { 1.1.1.1 } create set netdev filter ip-block-4-test { type ipv4_addr flags interval auto-merge elements = $ip-block-4 }
  • On lahendatud probleemid TCP valikute arvulise esituse kasutamisel: tcp option 254
  • Meta ja ct vĂ€ljendite probleemid on lahendatud map komplektidega: meta mark set vlan id map { 1 : 0x00000001, 4095 : 0x00004095 }
  • Payload ja concat vĂ€ljendites on keelatud kasutada andmeid, mille suurus ĂŒletab 512 baidi.
  • KĂ€skluse «nft describe» tĂ€itmise kĂ€igus rakendatakse vÀÀrtuste arvesse vĂ”tmist failidest group, rt_mark ja rt_realms, mis asuvad kataloogides /etc/iproute2/ ja /use/share/iproute2/. # nft describe meta rtclassid meta vĂ€ljend, andmetĂŒĂŒp realm (routing realm) (basetype integer), 32 bitti eeldefineeritud sĂŒmboolsed konstantid failist /etc/iproute2/rt_realms (dekaalses): cosmos 0 Reject statement with range meta mark set 0-100
  • Tabelite nimekirja vĂ€ljastamise operatsioon on kiirem. Realiseeritud on -t/—terse valiku tugi, et kiirendada kĂ€ske «list table» ja «list set».
  • Meter vĂ€ljendite konverteerimine dĂŒnaamiliste set komplektideks on tagatud: add rule t c tcp dport 80 meter m size 128 { ip saddr timeout 2s limit rate 10/second } muudetakse: set m { type ipv4_addr size 128 flags dynamic,timeout } tcp dport 80 uuendatakse @m { ip saddr timeout 2s limit rate 10/second burst 5 packets }
  • JSON formaadis esitluses on lisatud tugi synproxy objektide ja map komplektide jaoks, mis sisaldavad ĂŒhendatud andmeid.
  • JSON formaadis mÀÀratletud set komplektides on rakendatud auto-merge lipu tugi.
  • JSON forma kasutamisel on lubatud nĂ€idata mitmeid seadmeid plokis „chain”.
  • Valikute -f/—filename kasutamisel toimub teede töötlemine suhteliselt praeguse faili katalooge.
  • Valikute -I/—include puhul toimub tee sirvimine vaikevÀÀrtusena nĂŒĂŒd nimekirja lĂ”pu suunas.
  • Opttsioonide -o/—optimize töö on kohandatud, et kĂ€sitleda avaldisi, mis sisaldavad vÀÀrtuste arve: # nft -c -o -f ruleset.nft Ühendamine: ruleset.nft:5:17-45: ct state invalid counter drop ruleset.nft :6:17-59: ct state established,related counter accept sisse: ct state vmap { invalid counter : drop, established counter : accept, related counter : accept } Ühendamine: ruleset.nft:7:17-43: tcp dport 80 counter accept ruleset.nft:8:17-44: tcp dport 123 counter accept sisse: tcp dport { 80, 123 } counter accept Ühendamine: ruleset.nft:9:17-64: ip saddr 1.1.1.1 ip daddr 2.2.2.2 counter accept ruleset.nft:10:17-62: ip saddr 1.1.1.2 ip daddr 3.3.3.3 counter drop sisse: ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 counter : accept, 1.1.1.2 . 3.3.3.3 counter : drop }
  • Taastatud ĂŒhilduvus set elemendi dumpidega, mis on loodud nftables enne versiooni 0.9.8.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster