Преди няколко дни излезе новата версия на пакетния филтър nftables 0.9.3, Че разработете като заместител на iptables, ip6table, arptables и ebtables поради унифицирането на интерфейсите за филтриране на пакети за IPv4, IPv6, ARP и мрежови мостове.
Пакетът nftables използва структурни части от инфраструктурата на NetfilterКато система за проследяване на връзката (система за проследяване на връзката) или подсистемата за регистрация. Предвижда се и слой за съвместимост за превод на съществуващите правила на защитната стена на iptables в техните еквиваленти nftables.
Относно Nftables
nftables включва компоненти за филтриране на пакети които работят в потребителско пространство, докато на ниво ядро, подсистемата nf_таблици предоставя част от ядрото на Linux от версия 3.13.
На ниво ядро се предоставя само общ интерфейс който е независим от конкретен протокол и осигурява основни функции за извличане на данни от пакети, извършване на операции с данни и контрол на потока.
Самата логика за филтриране и специфичните за протокола процесори се компилират в байт код в потребителското пространство, след което този байт код се зарежда в ядрото с помощта на интерфейса Netlink и се изпълнява в специална виртуална машина, която прилича на BPF (Berkeley Packet Filters).
Този подход ви позволява значително да намалите размера на филтриращия код, който се изпълнява на ниво ядро, и да елиминирате всички функционалности на правилата за синтактичен анализ и логиката на работа с протоколи в потребителското пространство.
Основните предимства на nftables са:
- Архитектура, която е вградена в ядрото
- Синтаксис, който консолидира инструменти на IPtables в един инструмент на командния ред
- Слой за съвместимост, който позволява използването на синтаксиса на правилото IPtables.
- Нов лесен за научаване синтаксис.
- Опростен процес на добавяне на правила за защитна стена.
- Подобрено докладване на грешки.
- Намаляване на репликацията на кода.
- По-добра цялостна производителност, задържане и допълнителни промени за филтриране на правила.
Какво е новото в nftables 0.9.3?
В тази нова версия на nftables 0.9.3 добавена поддръжка за съвпадащи пакети във времето. С това можете да определите интервалите от време и дата в която правилото ще бъде активирано и ще конфигурира активирането в отделни дни от седмицата. Също така е добавена нова опция "-T" за показване на времето на епохата в секунди.
Друга от промените, която се откроява, е поддръжка за възстановяване и запазване на SELinux тагове (secmark), да, както и поддръжка на списък със synproxy карта, което ви позволява да дефинирате повече от едно правило за бекенд.
От останалите промени които се открояват от тази нова версия:
- Възможност за динамично премахване на набор-набор елементи от правилата за обработка на пакети.
- Поддръжка за VLAN картографиране чрез идентификатор и протокол, дефинирани в метаданните на мрежовия мостов интерфейс
- Опция "-t" ("–terse") за изключване на набор-набор елементи при показване на правила. Когато се изпълнява "nft -t list ruleset", той ще покаже:
- Набор от правила за Nft списък.
- Възможността за посочване на повече от едно устройство в низовете на netdev (работи само с ядро 5.5) за комбиниране на общи правила за филтриране.
- Възможност за добавяне на описания на типа данни.
- Възможност за изграждане на CLI интерфейс с библиотеката linenoise вместо libreadline.
Как да инсталирам новата версия на nftables 0.9.3?
За да получите новата версия в момента може да се компилира само изходният код на вашата система. Въпреки че след броени дни вече съставените двоични пакети ще бъдат налични в различните дистрибуции на Linux.
Освен, че промените, необходими за работа на nftables 0.9.3, са включени в бъдещия клон на ядрото на Linux 5.5. Следователно, за да компилирате, трябва да имате инсталирани следните зависимости:
Те могат да се компилират с:
./autogen.sh
./configure
make
make install
А за nftables 0.9.3 го изтегляме от следната връзка. И компилацията се извършва със следните команди:
cd nftables
./autogen.sh
./configure
make
make install