Преди няколко дни беше обявено стартирането на новата версия на пакетния филтър "nftables 0.9.4"Че разработен е като заместител на iptables, ip6table, arptables и ebtables поради унифицирането на интерфейсите за филтриране на пакети за IPv4, IPv6, ARP и мрежови мостове.
Пакетът nftables включва компоненти за филтриране на пакети, които работят в потребителско пространство, докато на ниво ядро, подсистемата nf_tables предоставя част от ядрото на Linux от версия 3.13.
Само на основно ниво осигурява общ интерфейс, който е независим от протокол специфични и осигурява основни функции за извличане на данни от пакети, извършване на операции с данни и контрол на потока.
на правила за директно филтриране и специфични за протокола драйвери те се компилират в байт код в потребителското пространство, след което този байт код се зарежда в ядрото с помощта на интерфейса Netlink и се изпълнява в ядрото в специална виртуална машина, която прилича на BPF (Berkeley Packet Filters).
Такъв подход може значително да намали размера на филтриращия код, който работи на ниво ядро, и да елиминира всички функции за анализиране на правилата и логиката на работа с протоколи в потребителското пространство.
Основни нови функции на Nftables 0.9.4
Всички необходими промени за да работи версията nftables 0.9.4 са включени в клона на Linux ядро 5.6 и в него поддръжка за диапазони в комбинации „Конкатенация, конкретни адреси и пакети за портове, които опростяват присвояването.“
Например за набор от "бели списъци", чиито елементи са комбинации, спецификацията на индикатора "диапазон" ще показва, че наборът може да включва диапазони в обединението.
Добавена възможност за използване на обединения на NAT връзки, което ви позволява да укажете адреса и порта при дефиниране на NAT трансформации въз основа на списъци с карти или имена.
Освен това поддръжка за хардуерно ускорение с премахване на някои филтриращи операции. Ускорение той е активиран чрез помощната програма ethtool ("ethtool -K eth0 hw-tc-разтоварване включено"), След което се задейства в nftables за основната верига, използвайки флага" разтоварване ".
Когато се използва ядрото на Linux 5.6, се поддържа хардуерно ускорениеe, за да съответства на заглавните полета и да проверява входящия интерфейс в комбинация с пакети за получаване, пускане, дублиране (dup) и препращане (fwd).
В набори и списъци с карти е възможно да се използва директивата "typeof", която определя формата на елемента при съвпадение.
От останалите промени които се открояват от тази версия:
- Подобрено отчитане на местоположението на грешки в правилата.
- Добавена е поддръжка за проверка на подчинения интерфейс чрез посочване "Мета sdif" или "мета sdifname«
- Добавена е поддръжка за превъртане надясно или наляво. Например, за да промените етикета на съществуващия пакет вляво с 1 бит и да зададете най-малкия бит на 1.
- Внедрена опция "-V" за показване на информация. Опциите на командния ред трябва да бъдат посочени преди команди. Например, трябва да посочите «nft - набор от правила за списък»И изпълни«nft списък с правила -a»Ще генерира грешка.
Как да инсталирам новата версия на nftables 0.9.4?
За тези, които се интересуват от възможността да получат новата версия на nftables 0.9.4 в момента може да се компилира само изходният код на вашата система. Въпреки че след броени дни вече съставените двоични пакети ще бъдат налични в различните дистрибуции на Linux.
За да компилирате, трябва да имате инсталирани следните зависимости:
Те могат да се компилират с:
./autogen.sh
./configure
make
make install
А за nftables 0.9.4 го изтегляме от следната връзка. И компилацията се извършва със следните команди:
cd nftables
./autogen.sh
./configure
make
make install