mirror of
https://github.com/bol-van/zapret.git
synced 2025-03-15 04:41:37 +03:00
update docs
This commit is contained in:
parent
1065202349
commit
2a0e952153
@ -453,8 +453,12 @@ nfqws,tpws: hostlist/ipset track not only file mod time but also file size
|
|||||||
nfqws,tpws,ipset: return lists reload on HUP
|
nfqws,tpws,ipset: return lists reload on HUP
|
||||||
nfqws,blockcheck: --dpi-desync-fake-tls-mod
|
nfqws,blockcheck: --dpi-desync-fake-tls-mod
|
||||||
|
|
||||||
v70.3
|
v70.1
|
||||||
|
|
||||||
nfqws: --dpi-desync-fake-tls-mod=dupsid
|
nfqws: --dpi-desync-fake-tls-mod=dupsid
|
||||||
nfqws,tpws: test accessibility of list files after privs drop
|
nfqws,tpws: test accessibility of list files after privs drop
|
||||||
nfqws,tpws: --version
|
nfqws,tpws: --version
|
||||||
|
|
||||||
|
v70.4
|
||||||
|
|
||||||
|
nfqws,tpws: ^ prefix in hostlist to disable subdomain matches
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# zapret v70.3
|
# zapret v70.4
|
||||||
|
|
||||||
# SCAMMER WARNING
|
# SCAMMER WARNING
|
||||||
|
|
||||||
@ -185,9 +185,9 @@ nfqws takes the following parameters:
|
|||||||
--dpi-desync-udplen-pattern=<filename>|0xHEX ; udp tail fill pattern
|
--dpi-desync-udplen-pattern=<filename>|0xHEX ; udp tail fill pattern
|
||||||
--dpi-desync-start=[n|d|s]N ; apply dpi desync only to packet numbers (n, default), data packet numbers (d), relative sequence (s) greater or equal than N
|
--dpi-desync-start=[n|d|s]N ; apply dpi desync only to packet numbers (n, default), data packet numbers (d), relative sequence (s) greater or equal than N
|
||||||
--dpi-desync-cutoff=[n|d|s]N ; apply dpi desync only to packet numbers (n, default), data packet numbers (d), relative sequence (s) less than N
|
--dpi-desync-cutoff=[n|d|s]N ; apply dpi desync only to packet numbers (n, default), data packet numbers (d), relative sequence (s) less than N
|
||||||
--hostlist=<filename> ; apply dpi desync only to the listed hosts (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
--hostlist=<filename> ; apply dpi desync only to the listed hosts (one host per line, subdomains auto apply if not prefixed with `^`, gzip supported, multiple hostlists allowed)
|
||||||
--hostlist-domains=<domain_list> ; comma separated fixed domain list
|
--hostlist-domains=<domain_list> ; comma separated fixed domain list
|
||||||
--hostlist-exclude=<filename> ; do not apply dpi desync to the listed hosts (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
--hostlist-exclude=<filename> ; do not apply dpi desync to the listed hosts (one host per line, subdomains auto apply if not prefixed with `^`, gzip supported, multiple hostlists allowed)
|
||||||
--hostlist-exclude-domains=<domain_list> ; comma separated fixed domain list
|
--hostlist-exclude-domains=<domain_list> ; comma separated fixed domain list
|
||||||
--hostlist-auto=<filename> ; detect DPI blocks and build hostlist automatically
|
--hostlist-auto=<filename> ; detect DPI blocks and build hostlist automatically
|
||||||
--hostlist-auto-fail-threshold=<int> ; how many failed attempts cause hostname to be added to auto hostlist (default : 3)
|
--hostlist-auto-fail-threshold=<int> ; how many failed attempts cause hostname to be added to auto hostlist (default : 3)
|
||||||
@ -984,6 +984,7 @@ If all include lists are empty it works like no include lists exist at all.
|
|||||||
If you need "all except" mode you dont have to delete zapret-hosts-users.txt. Just make it empty.
|
If you need "all except" mode you dont have to delete zapret-hosts-users.txt. Just make it empty.
|
||||||
|
|
||||||
Subdomains auto apply. For example, "ru" in the list affects "*.ru" .
|
Subdomains auto apply. For example, "ru" in the list affects "*.ru" .
|
||||||
|
`^` prefix symbol disables subdomain match.
|
||||||
|
|
||||||
**tpws** and **nfqws** automatically reload lists if their modification time or file size is changed.
|
**tpws** and **nfqws** automatically reload lists if their modification time or file size is changed.
|
||||||
HUP signal forcibly reloads all lists.
|
HUP signal forcibly reloads all lists.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# zapret v70.3
|
# zapret v70.1
|
||||||
|
|
||||||
# ВНИМАНИЕ, остерегайтесь мошенников
|
# ВНИМАНИЕ, остерегайтесь мошенников
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ dvtws, собираемый из тех же исходников (см. [док
|
|||||||
--dpi-desync-udplen-pattern=<filename>|0xHEX ; чем добивать udp пакет в режиме udplen. по умолчанию - нули
|
--dpi-desync-udplen-pattern=<filename>|0xHEX ; чем добивать udp пакет в режиме udplen. по умолчанию - нули
|
||||||
--dpi-desync-start=[n|d|s]N ; применять dpi desync только в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру больше или равно N
|
--dpi-desync-start=[n|d|s]N ; применять dpi desync только в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру больше или равно N
|
||||||
--dpi-desync-cutoff=[n|d|s]N ; применять dpi desync только в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру меньше N
|
--dpi-desync-cutoff=[n|d|s]N ; применять dpi desync только в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру меньше N
|
||||||
--hostlist=<filename> ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются.
|
--hostlist=<filename> ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются, если хост не начинается с '^'.
|
||||||
; в файле должен быть хост на каждой строке.
|
; в файле должен быть хост на каждой строке.
|
||||||
; список читается при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
|
; список читается при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
|
||||||
; при изменении времени модификации файла он перечитывается автоматически по необходимости
|
; при изменении времени модификации файла он перечитывается автоматически по необходимости
|
||||||
@ -280,7 +280,7 @@ dvtws, собираемый из тех же исходников (см. [док
|
|||||||
Такие пакеты будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется на sequence
|
Такие пакеты будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется на sequence
|
||||||
numbers. По умолчанию смещение seq выбирается -10000. Практика показала, что некоторые DPI не пропускают seq вне
|
numbers. По умолчанию смещение seq выбирается -10000. Практика показала, что некоторые DPI не пропускают seq вне
|
||||||
определенного окна. Однако, такое небольшое смещение может вызвать проблемы при существенной потоковой передаче и
|
определенного окна. Однако, такое небольшое смещение может вызвать проблемы при существенной потоковой передаче и
|
||||||
потере пакетов. Если вы используете `--dpi-desync-any-protocol`, может понадобится установить badseq increment
|
потере пакетов. Если вы используете `--dpi-desync-any-protocol`, может понадобиться установить badseq increment
|
||||||
0x80000000. Это обеспечит надежную гарантию, что поддельный пакет не вклинится в tcp window на сервере. Так же было
|
0x80000000. Это обеспечит надежную гарантию, что поддельный пакет не вклинится в tcp window на сервере. Так же было
|
||||||
замечено, что badseq ломает логику некоторых DPI при анализе http, вызывая зависание соединения. Причем на тех же DPI
|
замечено, что badseq ломает логику некоторых DPI при анализе http, вызывая зависание соединения. Причем на тех же DPI
|
||||||
TLS с badseq работает нормально.
|
TLS с badseq работает нормально.
|
||||||
@ -295,7 +295,7 @@ dvtws, собираемый из тех же исходников (см. [док
|
|||||||
* `hopbyhop` относится только к ipv6. Добавляется ipv6 extenstion header `hop-by-hop options`. В варианте `hopbyhop2`
|
* `hopbyhop` относится только к ipv6. Добавляется ipv6 extenstion header `hop-by-hop options`. В варианте `hopbyhop2`
|
||||||
добавляются 2 хедера, что является нарушением стандарта и гарантированно отбрасывается стеком протоколов во всех ОС.
|
добавляются 2 хедера, что является нарушением стандарта и гарантированно отбрасывается стеком протоколов во всех ОС.
|
||||||
Один хедер hop-by-hop принимается всеми ОС, однако на некоторых каналах/провайдерах такие пакеты могут фильтроваться и
|
Один хедер hop-by-hop принимается всеми ОС, однако на некоторых каналах/провайдерах такие пакеты могут фильтроваться и
|
||||||
не доходить. Расчет идет на то, что DPI проанализирует пакет с hop-by-hop, но он либо не дойдет до адресата всилу
|
не доходить. Расчет идет на то, что DPI проанализирует пакет с hop-by-hop, но он либо не дойдет до адресата в силу
|
||||||
фильтров провайдера, либо будет отброшен сервером, потому что хедера два.
|
фильтров провайдера, либо будет отброшен сервером, потому что хедера два.
|
||||||
* `datanoack` высылает фейки со снятым tcp флагом ACK. Сервера такое не принимают, а DPI может принять. Эта техника
|
* `datanoack` высылает фейки со снятым tcp флагом ACK. Сервера такое не принимают, а DPI может принять. Эта техника
|
||||||
может ломать NAT и не всегда работает с iptables, если используется masquerade, даже с локальной системы (почти всегда
|
может ломать NAT и не всегда работает с iptables, если используется masquerade, даже с локальной системы (почти всегда
|
||||||
@ -530,8 +530,8 @@ window size итоговый размер окна стал максимальн
|
|||||||
### РЕАССЕМБЛИНГ
|
### РЕАССЕМБЛИНГ
|
||||||
|
|
||||||
nfqws поддерживает реассемблинг некоторых видов запросов.
|
nfqws поддерживает реассемблинг некоторых видов запросов.
|
||||||
На текущий момент это TLS и QUIC ClientHello. Они бывает длинными, если в chrome включить пост-квантовую
|
На текущий момент это TLS и QUIC ClientHello. Они бывают длинными, если в chrome включить пост-квантовую
|
||||||
криптографию tls-kyber, и занимают как правило 2 или 3 пакета. kyber включен по умолчанию, начиная с chromium 124.
|
криптографию tls-kyber, и занимают, как правило, 2 или 3 пакета. kyber включен по умолчанию, начиная с chromium 124.
|
||||||
chrome рандомизирует фингерпринт TLS. SNI может оказаться как в начале, так и в конце, то есть
|
chrome рандомизирует фингерпринт TLS. SNI может оказаться как в начале, так и в конце, то есть
|
||||||
попасть в любой пакет. stateful DPI обычно реассемблирует запрос целиком, и только потом
|
попасть в любой пакет. stateful DPI обычно реассемблирует запрос целиком, и только потом
|
||||||
принимает решение о блокировке.
|
принимает решение о блокировке.
|
||||||
@ -620,7 +620,7 @@ options ip6table_raw raw_before_defrag=1
|
|||||||
|
|
||||||
При использовании iptables и NAT, похоже, что нет способа прицепить обработчик очереди после NAT.
|
При использовании iptables и NAT, похоже, что нет способа прицепить обработчик очереди после NAT.
|
||||||
Пакет попадает в nfqws с source адресом внутренней сети, затем фрагментируется и уже не обрабатывается NAT.
|
Пакет попадает в nfqws с source адресом внутренней сети, затем фрагментируется и уже не обрабатывается NAT.
|
||||||
Так и уходит во внешюю сеть с src ip 192.168.x.x. Следовательно, метод не срабатывает.
|
Так и уходит во внешнюю сеть с src ip 192.168.x.x. Следовательно, метод не срабатывает.
|
||||||
Видимо единственный рабочий метод - отказаться от iptables и использовать nftables.
|
Видимо единственный рабочий метод - отказаться от iptables и использовать nftables.
|
||||||
Хук должен быть с приоритетом 101 или выше.
|
Хук должен быть с приоритетом 101 или выше.
|
||||||
|
|
||||||
@ -644,7 +644,7 @@ L7 протокол становится известен обычно посл
|
|||||||
Если имя хоста удовлетворяет листам, выбирается этот профиль. Иначе идет переход к следующему.
|
Если имя хоста удовлетворяет листам, выбирается этот профиль. Иначе идет переход к следующему.
|
||||||
Может так случиться, что до получения имени хоста или узнавания L7 протокола соединение идет по одному профилю,
|
Может так случиться, что до получения имени хоста или узнавания L7 протокола соединение идет по одному профилю,
|
||||||
а при выяснении этих параметров профиль меняется на лету. Это может произойти даже дважды - при выяснении L7
|
а при выяснении этих параметров профиль меняется на лету. Это может произойти даже дважды - при выяснении L7
|
||||||
и имени хоста. Чаще всего это выяснение совмещается в одно действие, поскольку по одному пакету как правило узнается и L7, и хост.
|
и имени хоста. Чаще всего это выяснение совмещается в одно действие, поскольку по одному пакету, как правило, узнается и L7, и хост.
|
||||||
Поэтому если у вас есть параметры дурения нулевой фазы, тщательно продумывайте что может произойти при переключении стратегии.
|
Поэтому если у вас есть параметры дурения нулевой фазы, тщательно продумывайте что может произойти при переключении стратегии.
|
||||||
Смотрите debug log, чтобы лучше понять что делает nfqws.
|
Смотрите debug log, чтобы лучше понять что делает nfqws.
|
||||||
Нумерация профилей идет с 1 до N. Последним в цепочке создается пустой профиль с номером 0.
|
Нумерация профилей идет с 1 до N. Последним в цепочке создается пустой профиль с номером 0.
|
||||||
@ -658,7 +658,7 @@ L7 протокол становится известен обычно посл
|
|||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> user-mode реализация ipset создавалась не как удобная замена *nix версии, реализованной в ядре.
|
> user-mode реализация ipset создавалась не как удобная замена *nix версии, реализованной в ядре.
|
||||||
> Вариант в ядре работает гораздо эффективнее. Это создавалось для систем без подержки ipset в ядре.
|
> Вариант в ядре работает гораздо эффективнее. Это создавалось для систем без подд3ержки ipset в ядре.
|
||||||
> Конкретно - Windows и ядра Linux, собранные без nftables и ipset модулей ядра. Например, в android нет ipset.
|
> Конкретно - Windows и ядра Linux, собранные без nftables и ipset модулей ядра. Например, в android нет ipset.
|
||||||
|
|
||||||
### IPTABLES ДЛЯ NFQWS
|
### IPTABLES ДЛЯ NFQWS
|
||||||
@ -678,7 +678,7 @@ iptables -t mangle -I POSTROUTING -o <внешний_интерфейс> -p tcp
|
|||||||
```
|
```
|
||||||
|
|
||||||
mark нужен, чтобы сгенерированный поддельный пакет не попал опять к нам на обработку. nfqws выставляет fwmark при его отсылке.
|
mark нужен, чтобы сгенерированный поддельный пакет не попал опять к нам на обработку. nfqws выставляет fwmark при его отсылке.
|
||||||
хотя nfqws способен самостоятельно различать помеченные пакеты, фильтр в iptables по mark нужен при использовании connbytes,
|
Хотя nfqws способен самостоятельно различать помеченные пакеты, фильтр в iptables по mark нужен при использовании connbytes,
|
||||||
чтобы не допустить изменения порядка следования пакетов. Процессинг очереди - процесс отложенный.
|
чтобы не допустить изменения порядка следования пакетов. Процессинг очереди - процесс отложенный.
|
||||||
Если ядро имеет пакеты на отсылку вне очереди - оно их отправляет незамедлительно.
|
Если ядро имеет пакеты на отсылку вне очереди - оно их отправляет незамедлительно.
|
||||||
Изменение правильного порядка следования пакетов при десинхронизации ломает всю идею.
|
Изменение правильного порядка следования пакетов при десинхронизации ломает всю идею.
|
||||||
@ -691,7 +691,7 @@ mark нужен, чтобы сгенерированный поддельный
|
|||||||
* 3 - стандартная ситуация приема одного пакета запроса
|
* 3 - стандартная ситуация приема одного пакета запроса
|
||||||
* 4-6 - на случай ретрансмиссии или запроса длиной в несколько пакетов (TLSClientHello с kyber, например)
|
* 4-6 - на случай ретрансмиссии или запроса длиной в несколько пакетов (TLSClientHello с kyber, например)
|
||||||
|
|
||||||
Для режима autottl необходимо перенаправление входящего `SYN,ACK` пакета или первого пакета соединения (что обычно есть тоже самое).
|
Для режима autottl необходимо перенаправление входящего `SYN,ACK` пакета или первого пакета соединения (что обычно есть то же самое).
|
||||||
Для режима autohostlist необходимы входящие RST и http redirect.
|
Для режима autohostlist необходимы входящие RST и http redirect.
|
||||||
Можно построить фильтр на tcp flags для выделения `SYN,ACK` и модуле u32 для поиска характерных паттернов http redirect,
|
Можно построить фильтр на tcp flags для выделения `SYN,ACK` и модуле u32 для поиска характерных паттернов http redirect,
|
||||||
но проще использовать connbytes для выделения нескольких начальных входящих пакетов.
|
но проще использовать connbytes для выделения нескольких начальных входящих пакетов.
|
||||||
@ -855,7 +855,7 @@ tpws - это transparent proxy.
|
|||||||
--mss=<int> ; установить MSS для клиента. может заставить сервер разбивать ответы, но существенно снижает скорость
|
--mss=<int> ; установить MSS для клиента. может заставить сервер разбивать ответы, но существенно снижает скорость
|
||||||
--tamper-start=[n]<pos> ; начинать дурение только с указанной байтовой позиции или номера блока исходяшего потока (считается позиция начала принятого блока)
|
--tamper-start=[n]<pos> ; начинать дурение только с указанной байтовой позиции или номера блока исходяшего потока (считается позиция начала принятого блока)
|
||||||
--tamper-cutoff=[n]<pos> ; закончить дурение на указанной байтовой позиции или номере блока исходящего потока (считается позиция начала принятого блока)
|
--tamper-cutoff=[n]<pos> ; закончить дурение на указанной байтовой позиции или номере блока исходящего потока (считается позиция начала принятого блока)
|
||||||
--hostlist=<filename> ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются.
|
--hostlist=<filename> ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются, если хост не начинается с '^'.
|
||||||
; в файле должен быть хост на каждой строке.
|
; в файле должен быть хост на каждой строке.
|
||||||
; список читается при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
|
; список читается при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
|
||||||
; при изменении времени модификации файла он перечитывается автоматически по необходимости
|
; при изменении времени модификации файла он перечитывается автоматически по необходимости
|
||||||
@ -892,7 +892,7 @@ tpws, как и nfqws, поддерживает множественную се
|
|||||||
Однако, если в момент send уже имеется неотосланный буфер, то ОС присоединит данные к нему,
|
Однако, если в момент send уже имеется неотосланный буфер, то ОС присоединит данные к нему,
|
||||||
никакой отсылки отдельным пакетом не будет. Но в этом случае и так нет никакой гарантии,
|
никакой отсылки отдельным пакетом не будет. Но в этом случае и так нет никакой гарантии,
|
||||||
что какой-то блок сообщения пойдет в начале пакета, на что собственно и заточены DPI.
|
что какой-то блок сообщения пойдет в начале пакета, на что собственно и заточены DPI.
|
||||||
Разбиение будет производится согласно MSS, который зависит от MTU исходящего интерфейса.
|
Разбиение будет производиться согласно MSS, который зависит от MTU исходящего интерфейса.
|
||||||
Таким образом DPI, смотрящие в начало поля данных TCP пакета, будут поломаны в любом случае.
|
Таким образом DPI, смотрящие в начало поля данных TCP пакета, будут поломаны в любом случае.
|
||||||
Протокол http относится к запрос-ответным протоколам. Новое сообщение посылается только тогда,
|
Протокол http относится к запрос-ответным протоколам. Новое сообщение посылается только тогда,
|
||||||
когда сервер получил запрос и полностью вернул ответ. Значит запрос фактически был не только отослан,
|
когда сервер получил запрос и полностью вернул ответ. Значит запрос фактически был не только отослан,
|
||||||
@ -1080,7 +1080,7 @@ route_localnet :
|
|||||||
динамически вписывать в команду. В любом случае требуются дополнительные усилия. Использование route_localnet тоже имеет
|
динамически вписывать в команду. В любом случае требуются дополнительные усилия. Использование route_localnet тоже имеет
|
||||||
потенциальные проблемы с безопасностью. Вы делаете доступным все, что висит на `127.0.0.0/8` для локальной подсети <
|
потенциальные проблемы с безопасностью. Вы делаете доступным все, что висит на `127.0.0.0/8` для локальной подсети <
|
||||||
внутренний_интерфейс>. Службы обычно привязываются к `127.0.0.1`, поэтому можно средствами iptables запретить входящие
|
внутренний_интерфейс>. Службы обычно привязываются к `127.0.0.1`, поэтому можно средствами iptables запретить входящие
|
||||||
на `127.0.0.1` не с интерфейса lo, либо повесить tpws на любой другой IP из из `127.0.0.0/8`, например на `127.0.0.127`,
|
на `127.0.0.1` не с интерфейса lo, либо повесить tpws на любой другой IP из `127.0.0.0/8`, например на `127.0.0.127`,
|
||||||
и разрешить входящие не с lo только на этот IP.
|
и разрешить входящие не с lo только на этот IP.
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -1322,10 +1322,11 @@ LISTS_RELOAD=- отключает перезагрузку листов.
|
|||||||
При режимах фильтрации `MODE_FILTER=hostlist` или `MODE_FILTER=autohostlist` система запуска передает **nfqws** или **tpws** все листы, файлы которых присутствуют.
|
При режимах фильтрации `MODE_FILTER=hostlist` или `MODE_FILTER=autohostlist` система запуска передает **nfqws** или **tpws** все листы, файлы которых присутствуют.
|
||||||
Передача происходит через замену маркеров `<HOSTLIST>` и `<HOSTLIST_NOAUTO>` на реальные параметры `--hostlist`, `--hostlist-exclude`, `--hostlist-auto`.
|
Передача происходит через замену маркеров `<HOSTLIST>` и `<HOSTLIST_NOAUTO>` на реальные параметры `--hostlist`, `--hostlist-exclude`, `--hostlist-auto`.
|
||||||
Если вдруг листы include присутствуют, но все они пустые, то работа аналогична отсутствию include листа.
|
Если вдруг листы include присутствуют, но все они пустые, то работа аналогична отсутствию include листа.
|
||||||
Файл есть, но не смотря на это дурится все, кроме exclude.
|
Файл есть, но несмотря на это дурится все, кроме exclude.
|
||||||
Если вам нужен именно такой режим - не обязательно удалять `zapret-hosts-users.txt`. Достаточно сделать его пустым.
|
Если вам нужен именно такой режим - не обязательно удалять `zapret-hosts-users.txt`. Достаточно сделать его пустым.
|
||||||
|
|
||||||
Поддомены учитываются автоматически. Например, строчка "ru" вносит в список "*.ru". Строчка "*.ru" в списке не сработает.
|
Поддомены учитываются автоматически. Например, строчка "ru" вносит в список "*.ru". Строчка "*.ru" в списке не сработает.
|
||||||
|
Можно использовать символ `^` в начале хоста, чтобы отказаться от автоматического учета поддоменов.
|
||||||
|
|
||||||
Список доменов РКН может быть получен скриптами
|
Список доменов РКН может быть получен скриптами
|
||||||
```
|
```
|
||||||
@ -1359,7 +1360,7 @@ tpws и nfqws решают нужно ли применять дурение в
|
|||||||
Крайне рекомендовано использовать ограничитель `connbytes`, чтобы **nfqws** не обрабатывал гигабайты.
|
Крайне рекомендовано использовать ограничитель `connbytes`, чтобы **nfqws** не обрабатывал гигабайты.
|
||||||
По этой же причине не рекомендуется использование режима на BSD системах. Там нет фильтра `connbytes`.
|
По этой же причине не рекомендуется использование режима на BSD системах. Там нет фильтра `connbytes`.
|
||||||
|
|
||||||
На linux системах при использовании nfqws и фильтра connbytes может понадобится :
|
На linux системах при использовании nfqws и фильтра connbytes может понадобиться :
|
||||||
`sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1`
|
`sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1`
|
||||||
Было замечено, что некоторые DPI в России возвращают RST с неверным ACK. Это принимается tcp/ip стеком
|
Было замечено, что некоторые DPI в России возвращают RST с неверным ACK. Это принимается tcp/ip стеком
|
||||||
linux, но через раз приобретает статус INVALID в conntrack. Поэтому правила с `connbytes` срабатывают
|
linux, но через раз приобретает статус INVALID в conntrack. Поэтому правила с `connbytes` срабатывают
|
||||||
@ -1374,7 +1375,7 @@ linux, но через раз приобретает статус INVALID в con
|
|||||||
свое клиенту. Применяется нечасто, поскольку броузеры на такое ругаются.
|
свое клиенту. Применяется нечасто, поскольку броузеры на такое ругаются.
|
||||||
|
|
||||||
**nfqws** и **tpws** могут сечь варианты 1-3, 4 они не распознают.
|
**nfqws** и **tpws** могут сечь варианты 1-3, 4 они не распознают.
|
||||||
Всилу специфики работы с отдельными пакетами или с TCP каналом tpws и nfqws распознают эти ситуации
|
В силу специфики работы с отдельными пакетами или с TCP каналом tpws и nfqws распознают эти ситуации
|
||||||
по-разному.
|
по-разному.
|
||||||
Что считается ситуацией, похожей на блокировку :
|
Что считается ситуацией, похожей на блокировку :
|
||||||
1) **nfqws** Несколько ретрансмиссий первого запроса в TCP сеансе, в котором имеется host.
|
1) **nfqws** Несколько ретрансмиссий первого запроса в TCP сеансе, в котором имеется host.
|
||||||
@ -1400,7 +1401,7 @@ linux, но через раз приобретает статус INVALID в con
|
|||||||
Если сайт не ведет себя как заблокированный, значит обход применен не будет.
|
Если сайт не ведет себя как заблокированный, значит обход применен не будет.
|
||||||
В противном случае терять все равно нечего.
|
В противном случае терять все равно нечего.
|
||||||
Однако, могут быть временные сбои сервера, приводящие к ситуации, аналогичной блокировке.
|
Однако, могут быть временные сбои сервера, приводящие к ситуации, аналогичной блокировке.
|
||||||
Могут происходит ложные срабатывания. Если такое произошло, стратегия может начать ломать
|
Могут происходить ложные срабатывания. Если такое произошло, стратегия может начать ломать
|
||||||
незаблокированный сайт. Эту ситуацию, увы, придется вам контролировать вручную.
|
незаблокированный сайт. Эту ситуацию, увы, придется вам контролировать вручную.
|
||||||
Заносите такие домены в `ipset/zapret-hosts-user-exclude.txt`, чтобы избежать повторения.
|
Заносите такие домены в `ipset/zapret-hosts-user-exclude.txt`, чтобы избежать повторения.
|
||||||
Чтобы впоследствии разобраться почему домен был занесен в лист, можно включить `autohostlist debug log`.
|
Чтобы впоследствии разобраться почему домен был занесен в лист, можно включить `autohostlist debug log`.
|
||||||
@ -1747,7 +1748,7 @@ DISABLE_IPV6=1
|
|||||||
```
|
```
|
||||||
|
|
||||||
Количество потоков для многопоточного DNS ресолвера mdig (1..100).
|
Количество потоков для многопоточного DNS ресолвера mdig (1..100).
|
||||||
Чем их больше, тем быстрее, но не обидется ли на долбежку ваш DNS сервер?\
|
Чем их больше, тем быстрее, но не обидится ли на долбежку ваш DNS сервер?\
|
||||||
`MDIG_THREADS=30`
|
`MDIG_THREADS=30`
|
||||||
|
|
||||||
Место для хранения временных файлов. При скачивании огромных реестров в `/tmp` места может не хватить.
|
Место для хранения временных файлов. При скачивании огромных реестров в `/tmp` места может не хватить.
|
||||||
@ -1901,7 +1902,7 @@ nfset-ы принадлежат только одной таблице, след
|
|||||||
|
|
||||||
custom скрипты - это маленькие shell программы, управляющие нестандартными режимами применения zapret
|
custom скрипты - это маленькие shell программы, управляющие нестандартными режимами применения zapret
|
||||||
или частными случаями, которые не могут быть интегрированы в основную часть без загромождения и замусоривания кода.
|
или частными случаями, которые не могут быть интегрированы в основную часть без загромождения и замусоривания кода.
|
||||||
Для применеия custom следует помещать файлы в следующие директории в зависимости от вашей системы:
|
Для применения custom следует помещать файлы в следующие директории в зависимости от вашей системы:
|
||||||
```
|
```
|
||||||
/opt/zapret/init.d/sysv/custom.d
|
/opt/zapret/init.d/sysv/custom.d
|
||||||
/opt/zapret/init.d/openwrt/custom.d
|
/opt/zapret/init.d/openwrt/custom.d
|
||||||
@ -1991,7 +1992,7 @@ zapret_custom_firewall_nft поднимает правила nftables.
|
|||||||
Под OpenWrt все уже сразу готово для использования системы в качестве роутера.
|
Под OpenWrt все уже сразу готово для использования системы в качестве роутера.
|
||||||
Имена интерфейсов WAN и LAN известны из настроек системы.
|
Имена интерфейсов WAN и LAN известны из настроек системы.
|
||||||
Под другими системами роутер вы настраиваете самостоятельно. Инсталлятор в это не вмешивается.
|
Под другими системами роутер вы настраиваете самостоятельно. Инсталлятор в это не вмешивается.
|
||||||
инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
|
Инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
|
||||||
Нужно понимать, что заворот проходящего трафика на **tpws** в прозрачном режиме происходит до выполнения маршрутизации,
|
Нужно понимать, что заворот проходящего трафика на **tpws** в прозрачном режиме происходит до выполнения маршрутизации,
|
||||||
следовательно возможна фильтрация по LAN и невозможна по WAN.
|
следовательно возможна фильтрация по LAN и невозможна по WAN.
|
||||||
Решение о завороте на **tpws** локального исходящего трафика принимается после выполнения маршрутизации,
|
Решение о завороте на **tpws** локального исходящего трафика принимается после выполнения маршрутизации,
|
||||||
@ -2225,10 +2226,10 @@ curl: (7) Failed to connect to www.ru port 80: Host is unreachable
|
|||||||
|
|
||||||
## Другие прошивки
|
## Другие прошивки
|
||||||
|
|
||||||
Для статических бинариков не имеет значения на чем они запущены: PC, android, приставка, роутер, любой другой девайс.
|
Для статических бинарников не имеет значения на чем они запущены: PC, android, приставка, роутер, любой другой девайс.
|
||||||
Подойдет любая прошивка, дистрибутив linux. Статические бинарники запустятся на всем.
|
Подойдет любая прошивка, дистрибутив linux. Статические бинарники запустятся на всем.
|
||||||
Им нужно только ядро с необходимыми опциями сборки или модулями.
|
Им нужно только ядро с необходимыми опциями сборки или модулями.
|
||||||
Но кроме бинариков в проекте используются еще и скрипты, в которых задействуются некоторые
|
Но кроме бинарников в проекте используются еще и скрипты, в которых задействуются некоторые
|
||||||
стандартные программы.
|
стандартные программы.
|
||||||
|
|
||||||
Основные причины почему нельзя просто так взять и установить эту систему на что угодно:
|
Основные причины почему нельзя просто так взять и установить эту систему на что угодно:
|
||||||
@ -2266,14 +2267,14 @@ entware содержит репозиторий user-mode компонент, к
|
|||||||
_Подробное описание настроек для других прошивок выходит за рамки данного проекта._
|
_Подробное описание настроек для других прошивок выходит за рамки данного проекта._
|
||||||
|
|
||||||
OpenWrt является одной из немногих относительно полноценных linux систем для embedded devices.
|
OpenWrt является одной из немногих относительно полноценных linux систем для embedded devices.
|
||||||
Она характеризуется следующими вещами, которые и послужили основой выбора именно этой прошивк:
|
Она характеризуется следующими вещами, которые и послужили основой выбора именно этой прошивки:
|
||||||
* полный root доступ к девайсу через shell. на заводских прошивках чаще всего отсутствует, на многих альтернативных есть
|
* полный root доступ к девайсу через shell. на заводских прошивках чаще всего отсутствует, на многих альтернативных есть
|
||||||
* корень r/w. это практически уникальная особенность OpenWrt. заводские и большинство альтернативных прошивок
|
* корень r/w. это практически уникальная особенность OpenWrt. заводские и большинство альтернативных прошивок
|
||||||
построены на базе squashfs root (r/o), а конфигурация хранится в специально отформатированной области
|
построены на базе squashfs root (r/o), а конфигурация хранится в специально отформатированной области
|
||||||
встроенной памяти, называемой nvram. не имеющие r/w корня системы сильно кастрированы. они не имеют
|
встроенной памяти, называемой nvram. не имеющие r/w корня системы сильно кастрированы. они не имеют
|
||||||
возможности доустановки ПО из репозитория без специальных вывертов и заточены в основном
|
возможности доустановки ПО из репозитория без специальных вывертов и заточены в основном
|
||||||
на чуть более продвинутого, чем обычно, пользователя и управление имеющимся функционалом через веб интерфейс,
|
на чуть более продвинутого, чем обычно, пользователя и управление имеющимся функционалом через веб интерфейс,
|
||||||
но функционал фиксированно ограничен. альтернативные прошивки как правило могут монтировать r/w раздел
|
но функционал фиксированно ограничен. альтернативные прошивки, как правило, могут монтировать r/w раздел
|
||||||
в какую-то область файловой системы, заводские обычно могут монтировать лишь флэшки, подключенные к USB,
|
в какую-то область файловой системы, заводские обычно могут монтировать лишь флэшки, подключенные к USB,
|
||||||
и не факт, что есть поддержка unix файловых системы. может быть поддержка только fat и ntfs.
|
и не факт, что есть поддержка unix файловых системы. может быть поддержка только fat и ntfs.
|
||||||
* возможность выноса корневой файловой системы на внешний носитель (extroot) или создания на нем оверлея (overlay)
|
* возможность выноса корневой файловой системы на внешний носитель (extroot) или создания на нем оверлея (overlay)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user