nftables pakete iragazkiaren bertsioa 1.0.6

Pakete-iragazkia nftables 1.0.6 kaleratzea argitaratu da, IPv4, IPv6, ARP eta sare-zubietarako paketeak iragazteko interfazeak bateratuz (iptables, ip6table, arptables eta ebtables ordezkatzera zuzenduta). nftables paketeak erabiltzailearen espazioan exekutatzen diren pakete-iragazki osagaiak biltzen ditu, kernel mailako lana, berriz, nf_tables azpisistemak eskaintzen du, 3.13 bertsiotik Linux nukleoaren parte izan dena. Nukleo mailak protokolotik independentea den interfaze generiko bat eskaintzen du, paketeetatik datuak ateratzeko, datu-eragiketak egiteko eta fluxu-kontrolerako oinarrizko funtzioak eskaintzen dituena.

Iragazte-arauak eta protokoloen berariazko kudeatzaileak bytecode batean konpilatzen dira erabiltzailearen espazioan, eta, ondoren, bytecode hau nukleoan kargatzen da Netlink interfazea erabiliz eta nukleoan exekutatzen da BPF (Berkeley Packet Filters) gogorarazten duen makina birtual berezi batean. Ikuspegi honek nukleo mailan exekutatzen den iragazketa-kodearen tamaina nabarmen murrizteko eta protokoloekin lan egiteko analisi-arauak eta logika funtzio guztiak erabiltzaileen espaziora mugitzeko aukera ematen du.

Aldaketa nagusiak:

  • Arauen optimizatzaileak, β€œ-o/β€”optimize” aukera zehazten denean deitzen dena, arauen pakete automatikoa du, horiek konbinatuz eta mapa eta multzoen zerrendetan bihurtuz. Adibidez, arauak # cat ruleset.nft table ip x { chain y { type filter hook input priority filter; politika jaitsiera; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 onar meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 onar meta iifname eth1 ip saddr 1.1.1.2 ip meta daddr 2.2.3.0 eth 24 meta saddr 1. .1.1.1.2 ip daddr 2.2.4.0-2.2.4.10 onar meta iifname eth2 ip saddr 1.1.1.3 ip daddr 2.2.2.5 accept } } "nft -o -c -f ruleset.nft" exekutatu ondoren honela bihurtuko da: ruleset .nft:4:17-74: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 onartu ruleset.nft:5:17-74: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 onartu ruleset.nft : 6:17-77: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0/24 onartu ruleset.nft:7:17-83: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.4.0-2.2.4.10. onartu ruleset.nft:8:17-74: meta iifname eth2 ip saddr 1.1.1.3 ip daddr 2.2.2.5 onartu into: iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1. 1.1.1.2. 2.2.2.4, eth1. 1.1.1.2. 2.2.3.0/24, eth1 . 1.1.1.2. 2.2.4.0-2.2.4.10, eth2. 1.1.1.3. 2.2.2.5 } onartu
  • Optimizatzaileak dagoeneko multzo-zerrenda sinpleak erabiltzen dituzten arauak forma trinkoago batean bihur ditzake, adibidez: # cat ruleset.nft table ip filter { chain input { type filter hook input priority filter; politika jaitsiera; iifname "lo" onartu ct egoera ezarrita, erlazionatuta onartu iruzkina "Trafikoan jatorria dugu, fidatzen gara" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 ud123 sport 32768 ud65535 ddp 0 onartzea iifname "enp31s6f64.59.144.17" ip saddr { 64.59.150.133, 10.0.0.149 } ip daddr 53 udp sport 32768 udp dport 65535-6 onar } } } } exekutatu ondoren. : ruleset.nft:22:149-0: iifname "enp31s6f209.115.181.102" ip saddr { 216.197.228.230, 10.0.0.149 } ip daddr 123 udp sport 32768 udp sport 65535 udp:-7. 22: iifname "enp143s0f31" ip saddr { 6, 64.59.144.17 } ip daddr 64.59.150.133 udp sport 10.0.0.149 udp dport 53-32768 onar ezazu: iifname . ip saddr. ip daddr. udp kirola. udp dport {enp65535s0f31. 6. 209.115.181.102. 10.0.0.149. 123-32768, enp65535s0f31. 6. 216.197.228.230. 10.0.0.149. 123-32768, enp65535s0f31. 6. 64.59.144.17. 10.0.0.149. 53-32768, enp65535s0f31. 6. 64.59.150.133. 10.0.0.149. 53-32768 } onartu
  • Byte-kodeen sorkuntzaren arazoa konpondu da byte-ordena desberdina duten motak erabiltzen dituzten tarteak batzeko, hala nola IPv4 (sareko byte-ordena) eta meta marka (sistema-byte-ordena). table ip x { map w { typeof ip saddr . meta marka : epaiaren banderak tarteko kontagailuaren elementuak = { 127.0.0.1-127.0.0.4 . 0x123434-0xb00122: onartu, 192.168.0.10-192.168.1.20. 0x0000aa00-0x0000aaff : onartu, } } katea k { motako iragazkia kako sarrerako lehentasun-iragazkia; politika jaitsiera; ip saddr. meta mark vmap @w } }
  • Adierazpen gordinak erabiltzean protokolo arraroen konparaketa hobetu da, adibidez: meta l4proto 91 @th,400,16 0x0 onartu
  • Aldian behin arauak gaitzeko arazoak konpondu dira: txertatu araua xy tcp sport { 3478-3497, 16384-16387 } counter accept
  • JSON APIa hobetu da multzo eta mapen zerrendetan esamoldeetarako laguntza sartzeko.
  • nftables python liburutegirako luzapenek baliozkotze moduan prozesatzeko ("-c") arau multzoak kargatzen dituzte eta aldagaien kanpoko definiziorako laguntza gehitzen dute.
  • Iruzkinak gehitzea onartzen da multzoko zerrendako elementuetan.
  • Byte-tasa mugak zero balio bat zehaztea ahalbidetzen du.

Iturria: opennet.ru

Gehitu iruzkin berria