2

У меня есть 2 строки, и я хочу поставить пакет в очередь, если он содержит обе строки (что-то вроде ("jsh" && "gjhyg")), я попробовал следующие способы, но они не работают:

sudo iptables -A INPUT -p tcp -j ОЧЕРЕДЬ! -f -m строка - строка "abc" --algo bm -m строка - строка "def" --algo bm

Это не работает, это работает, только если пакет содержит строку "abcdef", но пакет, который я хочу поставить в очередь, содержит строки в двух разных местах. Тогда я попробовал другой метод:

sudo iptables -A INPUT -p tcp -j ОЧЕРЕДЬ! -f -m строка - строка "abc" --algo bm

sudo iptables -A INPUT -p tcp -j ОЧЕРЕДЬ! -f -m строка - строка "def" --algo bm

Но на этот раз он работает как "или", он ставит пакеты в очередь со строкой "abc" или "def".

1 ответ1

0

"и" в этом случае может быть достигнуто с помощью определенной пользователем цепочки

sudo iptables -N my_chain

sudo iptables -A my_chain -p tcp -j ОЧЕРЕДЬ! -f -m строка - строка "def" --algo bm

sudo iptables -A INPUT -p tcp -j my_chain! -f -m строка - строка "abc" --algo bm

когда цепочка ввода обрабатывает последнюю строку и присутствует "abc", элемент управления переходит к my_chain, который имеет аналогичное правило, проверяющее наличие "def"; если есть "def", то переходит к QUEUE.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .