From 01b3f4d3cf4f8cd0eeb2060a4d3fdc6a6b4e1f81 Mon Sep 17 00:00:00 2001 From: bol-van Date: Mon, 14 Oct 2024 19:56:33 +0300 Subject: [PATCH] readme: mark filter is mandatory to avoid deadlocks --- docs/readme.eng.md | 3 ++- docs/readme.txt | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/readme.eng.md b/docs/readme.eng.md index 40f298e..f998942 100644 --- a/docs/readme.eng.md +++ b/docs/readme.eng.md @@ -97,7 +97,8 @@ Then we can reduce CPU load, refusing to process unnecessary packets. `iptables -t mangle -I POSTROUTING -o -p tcp --dport 80 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:6 -m mark ! --mark 0x40000000/0x40000000 -m set --match-set zapret dst -j NFQUEUE --queue-num 200 --queue-bypass` Mark filter does not allow nfqws-generated packets to enter the queue again. -Its necessary to use this filter when also using `connbytes 1:6`. Without it packet ordering can be changed breaking the whole idea. +Its necessary to use this filter when also using `connbytes`. Without it packet ordering can be changed breaking the whole idea. +Also if there's huge packet send from nfqws it may deadlock without mark filter. Some attacks require redirection of incoming packets : diff --git a/docs/readme.txt b/docs/readme.txt index 225606c..d4b4560 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -464,8 +464,8 @@ mark нужен, чтобы сгенерированный поддельный чтобы не допустить изменения порядка следования пакетов. Процессинг очереди - процесс отложенный. Если ядро имеет пакеты на отсылку вне очереди - оно их отправляет незамедлительно. Изменение правильного порядка следования пакетов при десинхронизации ломает всю идею. -При отсутствии ограничения на connbytes, атака будет работать и без фильтра по mark. -Но лучше его все же оставить для увеличения скорости. +Так же были замечены дедлоки при достаточно большой отсылке пакетов из nfqws и отсутствии mark фильтра. +Процесс может зависнуть. Поэтому наличие фильтра по mark в ip/nf tables можно считать обязательным. Почему --connbytes 1:6 : 1 - для работы методов десинхронизации 0-й фазы и wssize