Пытюсь завести l7-filter (kernel версию). Делаю так:
iptables -t mangle -A PREROUTING -m layer7 --l7proto http
Chain PREROUTING (policy ACCEPT 39804 packets, 36M bytes)
pkts bytes target prot opt in out source destination
248 207K all -- * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto http
Я было подумал, что он матчит только первые пакеты соединений (хотя на домашней странице сказано, что kernel-версия метит как раз все пакеты), попробовал сделать через CONNMARK:
iptables -t mangle -A PREROUTING -m layer7 --l7proto http -j CONNMARK --set-mark 100500
iptables -t mangle -A PREROUTING -m connmark --mark 100500 -j CONNMARK --restore-mark
и получил то же самое. В любой другой цепочке тоже получаю тот же самый результат. Паттерны все на месте, iptables при добавлении правила их видит.
Что я делаю не так? Почему такое может происходить?