Издание на пакетния филтър nftables 1.0.2

Публикувана версия на пакетния филтър nftables 1.0.2, който унифицира интерфейсите за филтриране на пакети за IPv4, IPv6, ARP и мрежови мостове (с цел замяна на iptables, ip6tables, arptables и ebtables). Необходимите за функционирането на версия nftables 1.0.2 промени са включени в ядрото на Linux 5.17-rc.

В пакет nftables влизат компоненти на пакетния филтър, работещи в пространството на потребителя, докато на ниво ядро, работата се осигурява от подсистемата nf_tables, включена в ядрото на Linux, започвайки от версия 3.13. На ниво ядро се предоставя само общ интерфейс, независим от конкретен протокол, който предлага основни функции за извличане на данни от пакети, извършване на операции с данни и управление на потока.

Правилата за филтриране и специфичните за протоколите обработчици се компилират в байткод в пространството на потребителя, след което този байткод се зарежда в ядрото чрез интерфейса Netlink и се изпълнява в ядрото в специален, наподобяващ BPF (Berkeley Packet Filters). Подобен подход позволява значително да се намали размерът на кода за филтриране, работещ в ядрото, и да се изнесат всички функции за разбиране на правилата и логиката за работа с протоколите в пространството на потребителя. виртуална машина,което наподобява BPF (Berkeley Packet Filters). Подобен подход позволява значително да се намали размерът на кода за филтриране, работещ в ядрото, и да се изнесат всички функции за разбиране на правилата и логиката на работа с протоколите в пространството на потребителя.

Основни нововъведения:

  • Добавен е режим на оптимизация на правилата, активиран чрез новата опция «-o» («—optimize»), която може да се комбинира с опцията «—check» за проверка и оптимизация на промените в файла с набор от правила без фактическото му зареждане. Оптимизацията позволява обединяване на подобни правила, например, правилата: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1 ip daddr 2.2.2.2 accept ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    ще бъдат обединени в meta iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 . 1.1.1.2 . 2.2.2.5 } accept ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accept, 2.2.2.2 . 3.3.3.3 : drop }

    Пример за използване: # nft -c -o -f ruleset.test Обединяване: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 counter accept в: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • В set-списъците е реализирана възможност за указване на ip- и tcp-опции, както и chunk-ове sctp: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Добавена е поддръжка за TCP-опции fastopen, md5sig и mptcp.
  • Добавена е поддръжка за използване в сопоставления на подтипа mp-tcp: tcp option mptcp subtype 1
  • Усъвършенстван е кодът за филтриране, работещ на страната на ядрото.
  • За flowtable е реализирана пълна поддръжка на формата JSON.
  • Предоставена е възможност за използване на действието «reject» в операциите по сопоставяне на Ethernet кадри. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster