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

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

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

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

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

  • Намалено е потреблението на памет при зареждане на големи списъци set и map.
  • Ускорено е рестартирането на списъците set и map.
  • Ускорен е изходът на избрани таблици и вериги в големи набори с правила. Например, времето за изпълнение на командата „nft list ruleset“ за извеждане на набор от правила с 100 хиляди реда е 3.049 секунди, а при извеждане само на таблиците nat и filter („nft list table nat“, „nft list table filter“) се намалява до 1.969 и 0.697 секунди.
  • Ускорено е изпълнението на запитвания с опцията „—terse“ при обработка на правила с големи списъци set и map.
  • Предоставена е възможност за филтриране на трафика от веригата „egress“, обработван на същото ниво като egress обработчика в веригата netdev (hook egress), т.е. на етапа, когато драйверът получава пакет от мрежовия стек на ядрото. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Разрешено е съпоставянето и промяната на байтове в заглавката и съдържанието на пакета на зададена позиция. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

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

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