nftables pakkie filter 1.0.7 vrystelling

Die nftables 1.0.7 pakkiefiltervrystelling is gepubliseer, wat pakkiefiltreringskoppelvlakke vir IPv4, IPv6, ARP en netwerkbrûe verenig (wat daarop gemik is om iptables, ip6table, arptables en ebtables te vervang). Die nftables-pakket bevat pakkiefilterkomponente wat in gebruikersruimte loop, terwyl die kernvlak verskaf word deur die nf_tables-substelsel, wat sedert vrystelling 3.13 deel van die Linux-kern is. Op die kernvlak word slegs 'n generiese protokol-onafhanklike koppelvlak verskaf wat basiese funksies verskaf om data uit pakkies te onttrek, bewerkings op data uit te voer en vloei te beheer.

Die filterreëls self en protokol-spesifieke hanteerders word saamgestel in gebruikersspasie-greepkode, waarna hierdie greepkode in die kern gelaai word met behulp van die Netlink-koppelvlak en in die kern uitgevoer word in 'n spesiale virtuele masjien wat soos BPF (Berkeley Packet Filters) lyk. Hierdie benadering maak dit moontlik om die grootte van die filterkode wat op kernvlak loop aansienlik te verminder en al die funksies van ontledingsreëls en die logika van werk met protokolle na gebruikersruimte te skuif.

Belangrikste veranderinge:

  • Vir stelsels wat Linux-kern 6.2+ gebruik, is ondersteuning vir vxlan-, geneve-, gre- en gretap-protokolkartering bygevoeg, wat eenvoudige uitdrukkings toelaat om kopskrifte in ingekapselde pakkies na te gaan. Byvoorbeeld, om die IP-adres in die kopskrif van 'n geneste pakkie van VxLAN na te gaan, kan jy nou die reëls gebruik (sonder dat jy eers die VxLAN-kopskrif moet de-enkapsuleer en die filter aan die vxlan0-koppelvlak bind): ... udp dport 4789 vxlan ip protokol udp ... udp dport 4789 vxlan ip saddr 1.2.3.0. 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip daddr { 4.3.2.1 . XNUMX }
  • Ondersteuning vir outomatiese samevoeging van oorblyfsels nadat die gedeeltelike verwydering van 'n stellys-element geïmplementeer is, wat jou toelaat om 'n element of deel van 'n reeks uit 'n bestaande reeks uit te vee (voorheen kon 'n reeks slegs heeltemal uitgevee word). Byvoorbeeld, nadat element 25 van 'n stellys met reekse 24-30 en 40-50 verwyder is, sal die lys 24, 26-30 en 40-50 bly. Die regstellings wat nodig is om outomaties saam te voeg om te werk, sal aangebied word in onderhoudsvrystellings van die stabiele takke van die 5.10+ kern. # nft lys reëlstel tabel ip x { stel y { tipe tcp dport vlag interval outo-samevoeg elemente = { 24-30, 40-50 } } } # nft verwyder element ip xy { 25 } # nft lys reëlstel tabel ip x { stel y { tipe tcp dport vlae interval outo-samevoeging elemente = { 24, 26-30, 40-50 } }
  • Laat die gebruik van kontakte en reekse toe wanneer adresvertaling (NAT) gekarteer word. tabel ip nat { ketting prerouting { tipe nat haak prerouting prioriteit dstnat; beleid aanvaar; dnat na ip daddr. tcp dport kaart {10.1.1.136. 80: 1.1.2.69. 1024, 10.1.1.10-10.1.1.20. 8888-8889: 1.1.2.69. 2048-2049 } aanhoudend } }
  • Bygevoeg ondersteuning vir die "laaste" uitdrukking, wat jou toelaat om uit te vind die tyd van die laaste gebruik van 'n reël element of stel lys. Die funksie word ondersteun vanaf Linux-kern 5.14. tabel ip x { stel y { tipe van ip daddr . tcp dport grootte 65535 vlae dinamiese, time-out laaste time-out 1h } ketting z { tipe filter haak uitset prioriteit filter; beleid aanvaar; dateer @y {ip daddr op. tcp dport } } } # nft lys stel ip xy tabel ip x { stel y { tipe ip daddr . tcp dport grootte 65535 vlae dinamiese, time-out laaste time-out 1h elemente = { 172.217.17.14 . 443 laas gebruik 1s591ms uitteltyd 1h verval 59m58s409ms, 172.67.69.19. 443 laas gebruik 4s636ms timeout 1h verval 59m55s364ms, 142.250.201.72. 443 laas gebruik 4s748ms timeout 1h verval 59m55s252ms, 172.67.70.134. 443 laas gebruik 4s688ms timeout 1h verval 59m55s312ms, 35.241.9.150. 443 laas gebruik 5s204ms timeout 1h verval 59m54s796ms, 138.201.122.174. 443 laas gebruik 4s537ms timeout 1h verval 59m55s463ms, 34.160.144.191. 443 laas gebruik 5s205ms timeout 1h verval 59m54s795ms, 130.211.23.194. 443 laas gebruik 4s436ms uitteltyd 1h verval 59m55s564ms } } }
  • Bygevoeg die vermoë om kwotas in stellyste te definieer. Byvoorbeeld, om die verkeerskwota vir elke teiken-IP-adres te bepaal, kan jy spesifiseer: tabel netdev x { stel y { tipe ip daddr grootte 65535 kwota oor 10000 mbytes } ketting y { tipe filter haak uitgang toestel "eth0" prioriteit filter; beleid aanvaar; ip daddr @y drop } } # nft voeg element by inet xy { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft lys reëlstel tabel netdev x { stel y { tipe ipv4_addr grootte 65535 kwota meer as 10000 mgrepe elemente = { 8.8.8.8 kwota meer as 10000 mbte gebruik 196 grepe } } ketting y { tipe filter haak uitgang toestel "eth0" prioriteit filter; beleid aanvaar; ip daddr @y drop } }
  • Die gebruik van konstantes in stellyste word toegelaat. Byvoorbeeld, wanneer die bestemmingsadres en VLAN ID as die lyssleutel gebruik word, kan jy die VLAN-nommer direk spesifiseer (daddr . 123): table netdev t { set s { typeof ether saddr . vlan id grootte 2048 vlae dinamies, timeout time-out 1m } ketting c { tipe filter haak ingang toestel eth0 prioriteit 0; beleid aanvaar; eter tipe!= 8021q werk @s {eter daddr. 123 } teller } }
  • Het 'n nuwe "vernietig"-opdrag bygevoeg om voorwerpe onvoorwaardelik uit te vee (anders as die delete-opdrag, genereer dit nie ENOENT wanneer 'n vermiste voorwerp probeer uitvee nie). Vereis ten minste Linux-kern 6.3-rc om te werk. vernietig tabel ip filter

Bron: opennet.ru

Voeg 'n opmerking