nftables paket filtre sürümü 1.0.1

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

Nftables paketi, kullanıcı alanında çalışan paket filtre bileşenlerini içerirken çekirdek düzeyindeki çalışma, 3.13 sürümünden bu yana Linux çekirdeğinin bir parçası olan nf_tables alt sistemi tarafından sağlanır. Çekirdek seviyesi yalnızca paketlerden veri çıkarmak, veri işlemlerini gerçekleştirmek ve akış kontrolü için temel işlevleri sağlayan genel protokolden bağımsız bir arayüz sağlar.

Filtreleme kurallarının kendileri ve protokole özgü işleyiciler, kullanıcı alanı bayt kodu halinde derlenir, ardından bu bayt kodu Netlink arayüzü kullanılarak çekirdeğe yüklenir ve çekirdekte BPF'ye (Berkeley Paket Filtreleri) benzeyen özel bir sanal makinede yürütülür. Bu yaklaşım, çekirdek düzeyinde çalışan filtreleme kodunun boyutunu önemli ölçüde azaltmayı ve kuralların ayrıştırılmasının tüm işlevlerini ve protokollerle çalışma mantığını kullanıcı alanına taşımayı mümkün kılar.

Ana yenilikler:

  • Сокращено потребление памяти при загрузке больших 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

Kaynak: opennet.ru

Yorum ekle