mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-27 04:30:53 +03:00
readme: rewrite badsum limitations
This commit is contained in:
parent
01e72a8e39
commit
3f217b55ae
@ -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 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
|
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.
|
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,
|
Typically, iptables rules include a rule for dropping packets with INVALID state in the FORWARD chain.
|
||||||
or both in FORWARD and OUTPUT chains. The combination of these factors does not allow badsum packets to pass through the router.
|
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.
|
|
||||||
In openwrt mentioned sysctl is set to 0 from the box, in other routers its often left in the default "1" state.
|
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.
|
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.
|
But usually ISPs pass badsum.
|
||||||
* badsum doesn't work if your device is behind NAT which does not pass invalid packets.
|
* badsum doesn't work if your device is behind NAT which does not pass invalid packets.
|
||||||
|
@ -222,21 +222,25 @@ nfqws
|
|||||||
* badsum не сработает, если ваше устройство за NAT, который не пропускает пакеты с инвалидной суммой.
|
* badsum не сработает, если ваше устройство за NAT, который не пропускает пакеты с инвалидной суммой.
|
||||||
Наиболее распространенная настройка NAT роутера в Linux их не пропускает. На Linux построено большинство
|
Наиболее распространенная настройка NAT роутера в Linux их не пропускает. На Linux построено большинство
|
||||||
домашних роутеров. Непропускание обеспечивается так : настройка ядра sysctl по умолчанию
|
домашних роутеров. Непропускание обеспечивается так : настройка ядра sysctl по умолчанию
|
||||||
net.netfilter.nf_conntrack_checksum=1 заставляет conntrack проверять tcp и udp чексуммы и выставлять
|
net.netfilter.nf_conntrack_checksum=1 заставляет conntrack проверять tcp и udp чексуммы входящих пакетов
|
||||||
state INVALID для пакетов с инвалидной суммой.
|
и выставлять state INVALID для пакетов с инвалидной суммой.
|
||||||
Обычно в правилах iptables вставляется правило для дропа пакетов с состоянием INVALID либо только в FORWARD,
|
Обычно в правилах iptables вставляется правило для дропа пакетов с состоянием INVALID в цепочке FORWARD.
|
||||||
либо в FORWARD и OUTPUT. Совместное сочетание этих факторов приводит к непрохождению badsum через такой роутер,
|
Совместное сочетание этих факторов приводит к непрохождению badsum через такой роутер,
|
||||||
а при наличии дропа INVALID в OUTPUT и к неработоспособности nfqws с badsum с самого роутера.
|
|
||||||
В openwrt из коробки net.netfilter.nf_conntrack_checksum=0, в других роутерах часто нет,
|
В openwrt из коробки net.netfilter.nf_conntrack_checksum=0, в других роутерах часто нет,
|
||||||
и не всегда это можно изменить. Чтобы nfqws мог работать, нужно выставить указанное значение sysctl в 0 на роутере.
|
и не всегда это можно изменить. Чтобы nfqws мог работать через роутер, нужно на нем выставить указанное
|
||||||
|
значение sysctl в 0. nfqws на самом роутере будет работать и без этой настройки, потому что
|
||||||
|
чексумма локально созданных пакетов не проверяется никогда.
|
||||||
Если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets
|
Если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets
|
||||||
вы ничего не сможете с этим сделать. Но обычно провайдеры все же пропускают badsum.
|
вы ничего не сможете с этим сделать. Но обычно провайдеры все же пропускают badsum.
|
||||||
* пакеты с badseq будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется на sequence numbers
|
* пакеты с badseq будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется
|
||||||
* TTL казалось бы - лучший вариант, но он требует индивидуальной настройки под каждого провайдера. Если DPI находится дальше локальных
|
на sequence numbers
|
||||||
сайтов провайдера, то вы можете отрезать себе доступ к ним. Необходим ip exclude list, заполняемый вручную.
|
* TTL казалось бы - лучший вариант, но он требует индивидуальной настройки под каждого провайдера.
|
||||||
Вместе с ttl можно применять md5sig. Это ничего не испортит, зато дает неплохой шанс работы сайтов, до которых "плохой" пакет дойдет по TTL.
|
Если DPI находится дальше локальных сайтов провайдера, то вы можете отрезать себе доступ к ним.
|
||||||
|
Необходим ip exclude list, заполняемый вручную. Вместе с ttl можно применять md5sig. Это ничего не испортит,
|
||||||
|
зато дает неплохой шанс работы сайтов, до которых "плохой" пакет дойдет по TTL.
|
||||||
Если не удается найти автоматическое решение, воспользуйтесь файлом zapret-hosts-user-exclude.txt.
|
Если не удается найти автоматическое решение, воспользуйтесь файлом zapret-hosts-user-exclude.txt.
|
||||||
КАКИМ СТОИТ ВЫБИРАТЬ TTL : найдите минимальное значение, при котором обход еще работает. Это и будет номер хопа вашего DPI.
|
КАКИМ СТОИТ ВЫБИРАТЬ TTL : найдите минимальное значение, при котором обход еще работает.
|
||||||
|
Это и будет номер хопа вашего DPI.
|
||||||
|
|
||||||
Режимы дурения могут сочетаться в любых комбинациях. --dpi-desync-fooling берет множество значений через запятую.
|
Режимы дурения могут сочетаться в любых комбинациях. --dpi-desync-fooling берет множество значений через запятую.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user