nftables поддерживает поддержку сопоставления строк

nftables поддерживает поддержку сопоставления строк

Iptables может сопоставлять пакеты по строке.

Пример для DNS:

iptables -A INPUT -i eth0 -p udp --dport 53 -m string --hex-string "|09|proxypipe|03|net" --algo bm -j DROP

Как выполнить такое сопоставление в nftables?

решение1

С помощью nftables вы можете использовать синтаксис Raw Payload Expression (задокументированздесь) для сопоставления пакета на основе содержимого фрагмента битов.

Итак, правило для блокировки запросов proxypipe.netбудет выглядеть так:

meta l4proto udp udp dport 53 @th,160,120 0x0970726f787970697065036e657400 counter drop comment "block queries for proxypipe.net"

Вышеприведенный код захватывает 120 бит данных, начиная с бита 160 транспортного заголовка ( @th), и сравнивает их с шестнадцатеричным эквивалентом|09|proxypipe|03|net

Обратите внимание, что в отличие от версии iptables, вышеприведенный вариант будет соответствовать только proxypipe.netфиксированной позиции в пакете. Это означает, что он не будет блокировать foobar.proxypipe.netили любые другие поддомены.

Связанный контент