diff --git a/docs/readme.eng.txt b/docs/readme.eng.txt index 26800e3..d46cad8 100644 --- a/docs/readme.eng.txt +++ b/docs/readme.eng.txt @@ -177,11 +177,11 @@ add tcp option "MD5 signature". All of them have their own disadvantages : The most common Linux NAT router configuration does not pass them. Most home routers are Linux based. The default sysctl configuration net.netfilter.nf_conntrack_checksum=1 causes contrack to verify tcp and udp checksums and set INVALID state for packets with invalid checksum. - Typically, iptables rules include a rule for dropping packets with INVALID state, either only in FORWARD chain, - or both in FORWARD and OUTPUT chains. The combination of these factors does not allow badsum packets to pass through the router. - Presence of a drop INVALID rule in the OUTPUT chain blocks nfqws running on the router from using badsum option. + Typically, iptables rules include a rule for dropping packets with INVALID state in the FORWARD chain. + The combination of these factors does not allow badsum packets to pass through the router. In openwrt mentioned sysctl is set to 0 from the box, in other routers its often left in the default "1" state. - For nfqws to work properly set net.netfilter.nf_conntrack_checksum=0 on the router. + For nfqws to work properly through the router set net.netfilter.nf_conntrack_checksum=0 on the router. + System never verifies checksums of locally generated packets so nfqws will always work on the router itself. If you are behind another NAT, such as a ISP, and it does not pass invalid packages, there is nothing you can do about it. But usually ISPs pass badsum. * badsum doesn't work if your device is behind NAT which does not pass invalid packets. diff --git a/docs/readme.txt b/docs/readme.txt index 447ce6f..ba74968 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -222,21 +222,25 @@ nfqws * badsum не сработает, если ваше устройство за NAT, который не пропускает пакеты с инвалидной суммой. Наиболее распространенная настройка NAT роутера в Linux их не пропускает. На Linux построено большинство домашних роутеров. Непропускание обеспечивается так : настройка ядра sysctl по умолчанию - net.netfilter.nf_conntrack_checksum=1 заставляет conntrack проверять tcp и udp чексуммы и выставлять - state INVALID для пакетов с инвалидной суммой. - Обычно в правилах iptables вставляется правило для дропа пакетов с состоянием INVALID либо только в FORWARD, - либо в FORWARD и OUTPUT. Совместное сочетание этих факторов приводит к непрохождению badsum через такой роутер, - а при наличии дропа INVALID в OUTPUT и к неработоспособности nfqws с badsum с самого роутера. + net.netfilter.nf_conntrack_checksum=1 заставляет conntrack проверять tcp и udp чексуммы входящих пакетов + и выставлять state INVALID для пакетов с инвалидной суммой. + Обычно в правилах iptables вставляется правило для дропа пакетов с состоянием INVALID в цепочке FORWARD. + Совместное сочетание этих факторов приводит к непрохождению badsum через такой роутер, В openwrt из коробки net.netfilter.nf_conntrack_checksum=0, в других роутерах часто нет, - и не всегда это можно изменить. Чтобы nfqws мог работать, нужно выставить указанное значение sysctl в 0 на роутере. + и не всегда это можно изменить. Чтобы nfqws мог работать через роутер, нужно на нем выставить указанное + значение sysctl в 0. nfqws на самом роутере будет работать и без этой настройки, потому что + чексумма локально созданных пакетов не проверяется никогда. Если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets вы ничего не сможете с этим сделать. Но обычно провайдеры все же пропускают badsum. -* пакеты с badseq будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется на sequence numbers -* TTL казалось бы - лучший вариант, но он требует индивидуальной настройки под каждого провайдера. Если DPI находится дальше локальных - сайтов провайдера, то вы можете отрезать себе доступ к ним. Необходим ip exclude list, заполняемый вручную. - Вместе с ttl можно применять md5sig. Это ничего не испортит, зато дает неплохой шанс работы сайтов, до которых "плохой" пакет дойдет по TTL. +* пакеты с badseq будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется + на sequence numbers +* TTL казалось бы - лучший вариант, но он требует индивидуальной настройки под каждого провайдера. + Если DPI находится дальше локальных сайтов провайдера, то вы можете отрезать себе доступ к ним. + Необходим ip exclude list, заполняемый вручную. Вместе с ttl можно применять md5sig. Это ничего не испортит, + зато дает неплохой шанс работы сайтов, до которых "плохой" пакет дойдет по TTL. Если не удается найти автоматическое решение, воспользуйтесь файлом zapret-hosts-user-exclude.txt. - КАКИМ СТОИТ ВЫБИРАТЬ TTL : найдите минимальное значение, при котором обход еще работает. Это и будет номер хопа вашего DPI. + КАКИМ СТОИТ ВЫБИРАТЬ TTL : найдите минимальное значение, при котором обход еще работает. + Это и будет номер хопа вашего DPI. Режимы дурения могут сочетаться в любых комбинациях. --dpi-desync-fooling берет множество значений через запятую.