Назад | Перейти на главную страницу

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?

С 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 или любые другие поддомены.