mirror of
https://github.com/bol-van/zapret.git
synced 2025-02-22 13:02:20 +03:00
readme: fix typos
This commit is contained in:
parent
f62b289cb5
commit
789d013aae
@ -93,7 +93,7 @@ VPN.
|
|||||||
опционально дополняя его пакетом HTTP redirect. Если фейк пакет инжектится только для клиента, в этом случае можно
|
опционально дополняя его пакетом HTTP redirect. Если фейк пакет инжектится только для клиента, в этом случае можно
|
||||||
обойтись командами iptables для дропа RST и/или редиректа на заглушку по определённым условиям, которые нужно подбирать
|
обойтись командами iptables для дропа RST и/или редиректа на заглушку по определённым условиям, которые нужно подбирать
|
||||||
для каждого провайдера индивидуально. Так мы обходим последствия срабатывания триггера запрета. Если пассивный DPI
|
для каждого провайдера индивидуально. Так мы обходим последствия срабатывания триггера запрета. Если пассивный DPI
|
||||||
направляет пакет RST в том числе и серверу, то вы ничего с этим не сможете сделать. Ваша задача — не допустить
|
направляет пакет RST, в том числе и серверу, то вы ничего с этим не сможете сделать. Ваша задача — не допустить
|
||||||
срабатывания триггера запрета. Одними iptables уже не обойтись. Этот проект нацелен именно на предотвращение
|
срабатывания триггера запрета. Одними iptables уже не обойтись. Этот проект нацелен именно на предотвращение
|
||||||
срабатывания запрета, а не ликвидацию его последствий.
|
срабатывания запрета, а не ликвидацию его последствий.
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ DPI. Все больше становится внереестровых бло
|
|||||||
* Если блокировка осуществляется по IP.
|
* Если блокировка осуществляется по IP.
|
||||||
* Если соединение проходит через фильтр, способный реконструировать TCP соединение, и который следует всем стандартам.
|
* Если соединение проходит через фильтр, способный реконструировать TCP соединение, и который следует всем стандартам.
|
||||||
Например, нас заворачивают на squid. Соединение идет через полноценный стек tcpip операционной системы.
|
Например, нас заворачивают на squid. Соединение идет через полноценный стек tcpip операционной системы.
|
||||||
Проект нацелен на обман DPI, который всилу ограниченности ресурсов и большого трафика вынужден интерпретировать его лишь ограниченно.
|
Проект нацелен на обман DPI, который, в силу ограниченности ресурсов и большого трафика, вынужден интерпретировать его лишь ограниченно.
|
||||||
Обмануть полноценный стек ОС и полноценные серверные приложения не получится.
|
Обмануть полноценный стек ОС и полноценные серверные приложения не получится.
|
||||||
|
|
||||||
## nfqws
|
## nfqws
|
||||||
@ -157,7 +157,7 @@ dvtws, собираемый из тех же исходников (см. [док
|
|||||||
```
|
```
|
||||||
@<config_file>|$<config_file> ; читать конфигурацию из файла. опция должна быть первой. остальные опции игнорируются.
|
@<config_file>|$<config_file> ; читать конфигурацию из файла. опция должна быть первой. остальные опции игнорируются.
|
||||||
|
|
||||||
--debug=0|1 ; 1=выводить отладочные сообщения
|
--debug=0|1|syslog|@<filename> ; выводить отладочные сообщения в: 1=консоль, syslog или @<filename>=файл
|
||||||
--dry-run ; проверить опции командной строки и выйти. код 0 - успешная проверка.
|
--dry-run ; проверить опции командной строки и выйти. код 0 - успешная проверка.
|
||||||
--version ; вывести версию и выйти
|
--version ; вывести версию и выйти
|
||||||
--comment ; любой текст (игнорируется)
|
--comment ; любой текст (игнорируется)
|
||||||
@ -269,7 +269,7 @@ dvtws, собираемый из тех же исходников (см. [док
|
|||||||
через такой роутер. В OpenWrt из коробки `net.netfilter.nf_conntrack_checksum=0`, в других роутерах часто нет, и не
|
через такой роутер. В OpenWrt из коробки `net.netfilter.nf_conntrack_checksum=0`, в других роутерах часто нет, и не
|
||||||
всегда это можно изменить. Чтобы nfqws мог работать через роутер, нужно на нем выставить указанное значение sysctl в 0.
|
всегда это можно изменить. Чтобы nfqws мог работать через роутер, нужно на нем выставить указанное значение sysctl в 0.
|
||||||
nfqws на самом роутере будет работать и без этой настройки, потому что чексумма локально созданных пакетов не
|
nfqws на самом роутере будет работать и без этой настройки, потому что чексумма локально созданных пакетов не
|
||||||
проверяется никогда. Если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets вы ничего
|
проверяется никогда. Если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets, вы ничего
|
||||||
не сможете с этим сделать. Но обычно провайдеры все же пропускают badsum. На некоторых адаптерах/свитчах/драйверах
|
не сможете с этим сделать. Но обычно провайдеры все же пропускают badsum. На некоторых адаптерах/свитчах/драйверах
|
||||||
принудительно включен rx-checksum offload, badsum пакеты отсекаются еще до получения в ОС. В этом случае если что-то и
|
принудительно включен rx-checksum offload, badsum пакеты отсекаются еще до получения в ОС. В этом случае если что-то и
|
||||||
можно сделать, то только модифицировать драйвер, что представляется задачей крайне нетривиальной. Установлено, что так
|
можно сделать, то только модифицировать драйвер, что представляется задачей крайне нетривиальной. Установлено, что так
|
||||||
@ -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 работает нормально.
|
||||||
@ -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 обычно реассемблирует запрос целиком, и только потом
|
||||||
принимает решение о блокировке.
|
принимает решение о блокировке.
|
||||||
@ -589,7 +589,7 @@ ipv6 : Нет способа для приложения гарантирова
|
|||||||
|
|
||||||
Иногда требуется подгружать модуль `ip6table_raw` с параметром `raw_before_defrag=1`.
|
Иногда требуется подгружать модуль `ip6table_raw` с параметром `raw_before_defrag=1`.
|
||||||
В OpenWrt параметры модулей указываются через пробел после их названий в файлах `/etc/modules.d`.
|
В OpenWrt параметры модулей указываются через пробел после их названий в файлах `/etc/modules.d`.
|
||||||
В традиционных системах посмотрите используется ли `iptables-legacy` или `iptables-nft`. Если legacy, то нужно создать файл
|
В традиционных системах посмотрите - используется ли `iptables-legacy` или `iptables-nft`. Если legacy, то нужно создать файл
|
||||||
`/etc/modprobe.d/ip6table_raw.conf` с содержимым:
|
`/etc/modprobe.d/ip6table_raw.conf` с содержимым:
|
||||||
```
|
```
|
||||||
options ip6table_raw raw_before_defrag=1
|
options ip6table_raw raw_before_defrag=1
|
||||||
@ -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,21 +644,21 @@ L7 протокол становится известен обычно посл
|
|||||||
Если имя хоста удовлетворяет листам, выбирается этот профиль. Иначе идет переход к следующему.
|
Если имя хоста удовлетворяет листам, выбирается этот профиль. Иначе идет переход к следующему.
|
||||||
Может так случиться, что до получения имени хоста или узнавания L7 протокола соединение идет по одному профилю,
|
Может так случиться, что до получения имени хоста или узнавания L7 протокола соединение идет по одному профилю,
|
||||||
а при выяснении этих параметров профиль меняется на лету. Это может произойти даже дважды - при выяснении L7
|
а при выяснении этих параметров профиль меняется на лету. Это может произойти даже дважды - при выяснении L7
|
||||||
и имени хоста. Чаще всего это выяснение совмещается в одно действие, поскольку по одному пакету как правило узнается и L7, и хост.
|
и имени хоста. Чаще всего это выяснение совмещается в одно действие, поскольку по одному пакету, как правило, узнается и L7, и хост.
|
||||||
Поэтому если у вас есть параметры дурения нулевой фазы, тщательно продумывайте что может произойти при переключении стратегии.
|
Поэтому если у вас есть параметры дурения нулевой фазы, тщательно продумывайте что может произойти при переключении стратегии.
|
||||||
Смотрите debug log, чтобы лучше понять что делает nfqws.
|
Смотрите debug log, чтобы лучше понять что делает nfqws.
|
||||||
Нумерация профилей идет с 1 до N. Последним в цепочке создается пустой профиль с номером 0.
|
Нумерация профилей идет с 1 до N. Последним в цепочке создается пустой профиль с номером 0.
|
||||||
Он используется, когда никакие условия фильтров не совпали.
|
Он используется, когда никакие условия фильтров не совпали.
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> Множественные стратегии создавались только для случаев, когда невозможно обьединить
|
> Множественные стратегии создавались только для случаев, когда невозможно объединить
|
||||||
> имеющиеся стратегии для разных ресурсов. Копирование стратегий из blockcheck для разных сайтов
|
> имеющиеся стратегии для разных ресурсов. Копирование стратегий из blockcheck для разных сайтов
|
||||||
> во множество профилей без понимания как они работают приведет к нагромождению параметров, которые все равно
|
> во множество профилей без понимания как они работают приведёт к нагромождению параметров, которые все равно
|
||||||
> не покроют все возможные заблокированные ресурсы. Вы только увязните в этой каше.
|
> не покроют все возможные заблокированные ресурсы. Вы только увязните в этой каше.
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> user-mode реализация ipset создавалась не как удобная замена *nix версии, реализованной в ядре.
|
> user-mode реализация ipset создавалась не как удобная замена *nix версии, реализованной в ядре.
|
||||||
> Вариант в ядре работает гораздо эффективнее. Это создавалось для систем без подержки ipset в ядре.
|
> Вариант в ядре работает гораздо эффективнее. Это создавалось для систем без поддержки 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,
|
||||||
чтобы не допустить изменения порядка следования пакетов. Процессинг очереди - процесс отложенный.
|
чтобы не допустить изменения порядка следования пакетов. Процессинг очереди - процесс отложенный.
|
||||||
Если ядро имеет пакеты на отсылку вне очереди - оно их отправляет незамедлительно.
|
Если ядро имеет пакеты на отсылку вне очереди - оно их отправляет незамедлительно.
|
||||||
Изменение правильного порядка следования пакетов при десинхронизации ломает всю идею.
|
Изменение правильного порядка следования пакетов при десинхронизации ломает всю идею.
|
||||||
@ -784,7 +784,7 @@ tpws - это transparent proxy.
|
|||||||
```
|
```
|
||||||
@<config_file>|$<config_file> ; читать конфигурацию из файла. опция должна быть первой. остальные опции игнорируются.
|
@<config_file>|$<config_file> ; читать конфигурацию из файла. опция должна быть первой. остальные опции игнорируются.
|
||||||
|
|
||||||
--debug=0|1|2|syslog|@<filename> ; 0,1,2 = логирование на косоль : 0=тихо, 1(default)=подробно, 2=отладка.
|
--debug=0|1|2|syslog|@<filename> ; 0,1,2 = логирование на консоль: 0=тихо, 1(default)=подробно, 2=отладка.
|
||||||
--debug-level=0|1|2 ; указать уровень логирования для syslog и @<filename>
|
--debug-level=0|1|2 ; указать уровень логирования для syslog и @<filename>
|
||||||
--dry-run ; проверить опции командной строки и выйти. код 0 - успешная проверка.
|
--dry-run ; проверить опции командной строки и выйти. код 0 - успешная проверка.
|
||||||
--version ; вывести версию и выйти
|
--version ; вывести версию и выйти
|
||||||
@ -892,7 +892,7 @@ tpws, как и nfqws, поддерживает множественную се
|
|||||||
Однако, если в момент send уже имеется неотосланный буфер, то ОС присоединит данные к нему,
|
Однако, если в момент send уже имеется неотосланный буфер, то ОС присоединит данные к нему,
|
||||||
никакой отсылки отдельным пакетом не будет. Но в этом случае и так нет никакой гарантии,
|
никакой отсылки отдельным пакетом не будет. Но в этом случае и так нет никакой гарантии,
|
||||||
что какой-то блок сообщения пойдет в начале пакета, на что собственно и заточены DPI.
|
что какой-то блок сообщения пойдет в начале пакета, на что собственно и заточены DPI.
|
||||||
Разбиение будет производится согласно MSS, который зависит от MTU исходящего интерфейса.
|
Разбиение будет производиться согласно MSS, который зависит от MTU исходящего интерфейса.
|
||||||
Таким образом DPI, смотрящие в начало поля данных TCP пакета, будут поломаны в любом случае.
|
Таким образом DPI, смотрящие в начало поля данных TCP пакета, будут поломаны в любом случае.
|
||||||
Протокол http относится к запрос-ответным протоколам. Новое сообщение посылается только тогда,
|
Протокол http относится к запрос-ответным протоколам. Новое сообщение посылается только тогда,
|
||||||
когда сервер получил запрос и полностью вернул ответ. Значит запрос фактически был не только отослан,
|
когда сервер получил запрос и полностью вернул ответ. Значит запрос фактически был не только отослан,
|
||||||
@ -901,8 +901,8 @@ tpws, как и nfqws, поддерживает множественную се
|
|||||||
|
|
||||||
Таким образом tpws обеспечивает сплит только за счет раздельных вызовов send, и это обычно работает надежно,
|
Таким образом tpws обеспечивает сплит только за счет раздельных вызовов send, и это обычно работает надежно,
|
||||||
если разбивать не на слишком много частей и не на слишком мелкие подряд следующие части.
|
если разбивать не на слишком много частей и не на слишком мелкие подряд следующие части.
|
||||||
В последнем случае Linux все же может обьединить некоторые части, что приведет к несоответствию реальной сегментации
|
В последнем случае Linux все же может объединить некоторые части, что приведет к несоответствию реальной сегментации
|
||||||
указанным сплит позициям. Другие ОС в этом вопросе ведут себя более предсказуемо. Спонтанного обьединения замечено не было.
|
указанным сплит позициям. Другие ОС в этом вопросе ведут себя более предсказуемо. Спонтанного объединения замечено не было.
|
||||||
Поэтому не стоит злоупотреблять сплитами и в особенности мелкими соседними пакетами.
|
Поэтому не стоит злоупотреблять сплитами и в особенности мелкими соседними пакетами.
|
||||||
|
|
||||||
Как показывается практика, проблемы могут начаться, если количество сплитов более одного.
|
Как показывается практика, проблемы могут начаться, если количество сплитов более одного.
|
||||||
@ -1049,7 +1049,7 @@ TCP_USER_TIMEOUT. Под таймаутом подразумевается вр
|
|||||||
Режим `--socks` не требует повышенных привилегий (кроме бинда на привилегированные порты 1..1023).
|
Режим `--socks` не требует повышенных привилегий (кроме бинда на привилегированные порты 1..1023).
|
||||||
Поддерживаются версии socks 4 и 5 без авторизации. Версия протокола распознается автоматически.
|
Поддерживаются версии socks 4 и 5 без авторизации. Версия протокола распознается автоматически.
|
||||||
Подключения к IP того же устройства, на котором работает tpws, включая localhost, запрещены.
|
Подключения к IP того же устройства, на котором работает tpws, включая localhost, запрещены.
|
||||||
socks5 позволяет удаленно ресолвить хосты (curl : --socks5-hostname firefox : socks_remote_dns=true).
|
socks5 позволяет удалённо ресолвить хосты (curl : --socks5-hostname firefox : socks_remote_dns=true).
|
||||||
tpws поддерживает эту возможность асинхронно, не блокируя процессинг других соединений, используя
|
tpws поддерживает эту возможность асинхронно, не блокируя процессинг других соединений, используя
|
||||||
многопоточный пул ресолверов. Количество потоков определяется автоматически в зависимости от `--maxconn`,
|
многопоточный пул ресолверов. Количество потоков определяется автоматически в зависимости от `--maxconn`,
|
||||||
но можно задать и вручную через параметр `--resolver-threads`.
|
но можно задать и вручную через параметр `--resolver-threads`.
|
||||||
@ -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.
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -1211,7 +1211,7 @@ mdig --family=6 --dns-make-query=rutracker.org | curl --data-binary @- -H "Conte
|
|||||||
1) Внесите заблокированные домены в `ipset/zapret-hosts-user.txt` и запустите `ipset/get_user.sh`
|
1) Внесите заблокированные домены в `ipset/zapret-hosts-user.txt` и запустите `ipset/get_user.sh`
|
||||||
На выходе получите `ipset/zapret-ip-user.txt` с IP адресами.
|
На выходе получите `ipset/zapret-ip-user.txt` с IP адресами.
|
||||||
|
|
||||||
Cкрипты с названием get_reestr_* оперируют дампом реестра заблокированных сайтов :
|
Скрипты с названием get_reestr_* оперируют дампом реестра заблокированных сайтов:
|
||||||
|
|
||||||
2) `ipset/get_reestr_resolve.sh` получает список доменов от rublacklist и дальше их ресолвит в ip адреса
|
2) `ipset/get_reestr_resolve.sh` получает список доменов от rublacklist и дальше их ресолвит в ip адреса
|
||||||
в файл ipset/zapret-ip.txt.gz. В этом списке есть готовые IP адреса, но судя во всему они там в точности в том виде,
|
в файл ipset/zapret-ip.txt.gz. В этом списке есть готовые IP адреса, но судя во всему они там в точности в том виде,
|
||||||
@ -1226,7 +1226,7 @@ Cкрипты с названием get_reestr_* оперируют дампом
|
|||||||
4) `ipset/get_reestr_preresolved_smart.sh`. то же самое, что и 3), с добавлением всего диапазона некоторых
|
4) `ipset/get_reestr_preresolved_smart.sh`. то же самое, что и 3), с добавлением всего диапазона некоторых
|
||||||
автономных систем (прыгающие IP адреса из cloudflare, facebook, ...) и некоторых поддоменов блокируемых сайтов
|
автономных систем (прыгающие IP адреса из cloudflare, facebook, ...) и некоторых поддоменов блокируемых сайтов
|
||||||
|
|
||||||
Cкрипты с названием `get_antifilter_*` оперируют списками адресов и масок подсетей с сайтов antifilter.network и antifilter.download :
|
Скрипты с названием `get_antifilter_*` оперируют списками адресов и масок подсетей с сайтов antifilter.network и antifilter.download :
|
||||||
|
|
||||||
5) `ipset/get_antifilter_ip.sh`. получает лист https://antifilter.download/list/ip.lst.
|
5) `ipset/get_antifilter_ip.sh`. получает лист https://antifilter.download/list/ip.lst.
|
||||||
|
|
||||||
@ -1252,7 +1252,7 @@ Cкрипты с названием `get_antifilter_*` оперируют спи
|
|||||||
Если переменная не определена, то ресолвятся лишь листы для ipset nozapret/nozapret6.
|
Если переменная не определена, то ресолвятся лишь листы для ipset nozapret/nozapret6.
|
||||||
|
|
||||||
Листы РКН все время изменяются. Возникают новые тенденции. Требования к RAM могут меняться.
|
Листы РКН все время изменяются. Возникают новые тенденции. Требования к RAM могут меняться.
|
||||||
Поэтому необходима нечастая, но все же регулярная ревизия что же вообще у вас происходит на роутере.
|
Поэтому необходима нечастая, но все же регулярная ревизия - что же вообще у вас происходит на роутере.
|
||||||
Или вы можете узнать о проблеме лишь когда у вас начнет постоянно пропадать wifi, и вам придется
|
Или вы можете узнать о проблеме лишь когда у вас начнет постоянно пропадать wifi, и вам придется
|
||||||
его перезагружать каждые 2 часа (метод кувалды).
|
его перезагружать каждые 2 часа (метод кувалды).
|
||||||
|
|
||||||
@ -1322,7 +1322,7 @@ 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" в списке не сработает.
|
||||||
@ -1355,11 +1355,11 @@ tpws и nfqws решают нужно ли применять дурение в
|
|||||||
**tpws**/**nfqws** сами назначают владельцем файла юзера, под которым они работают после сброса привилегий,
|
**tpws**/**nfqws** сами назначают владельцем файла юзера, под которым они работают после сброса привилегий,
|
||||||
чтобы иметь возможность обновлять лист.
|
чтобы иметь возможность обновлять лист.
|
||||||
|
|
||||||
В случае **nfqws** данный режим требует перенаправления в том числе и входящего трафика.
|
В случае **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` срабатывают
|
||||||
@ -1400,7 +1400,7 @@ linux, но через раз приобретает статус INVALID в con
|
|||||||
Если сайт не ведет себя как заблокированный, значит обход применен не будет.
|
Если сайт не ведет себя как заблокированный, значит обход применен не будет.
|
||||||
В противном случае терять все равно нечего.
|
В противном случае терять все равно нечего.
|
||||||
Однако, могут быть временные сбои сервера, приводящие к ситуации, аналогичной блокировке.
|
Однако, могут быть временные сбои сервера, приводящие к ситуации, аналогичной блокировке.
|
||||||
Могут происходит ложные срабатывания. Если такое произошло, стратегия может начать ломать
|
Могут происходить ложные срабатывания. Если такое произошло, стратегия может начать ломать
|
||||||
незаблокированный сайт. Эту ситуацию, увы, придется вам контролировать вручную.
|
незаблокированный сайт. Эту ситуацию, увы, придется вам контролировать вручную.
|
||||||
Заносите такие домены в `ipset/zapret-hosts-user-exclude.txt`, чтобы избежать повторения.
|
Заносите такие домены в `ipset/zapret-hosts-user-exclude.txt`, чтобы избежать повторения.
|
||||||
Чтобы впоследствии разобраться почему домен был занесен в лист, можно включить `autohostlist debug log`.
|
Чтобы впоследствии разобраться почему домен был занесен в лист, можно включить `autohostlist debug log`.
|
||||||
@ -1451,7 +1451,7 @@ linux, но через раз приобретает статус INVALID в con
|
|||||||
|
|
||||||
`Blockcheck` имеет 3 уровня сканирования.
|
`Blockcheck` имеет 3 уровня сканирования.
|
||||||
* `quick` - максимально быстро найти хоть что-то работающее.
|
* `quick` - максимально быстро найти хоть что-то работающее.
|
||||||
* `standard` дает возможность провести исследование как и на что реагирует DPI в плане методов обхода.
|
* `standard` дает возможность провести исследование - как и на что реагирует DPI в плане методов обхода.
|
||||||
* `force` дает максимум проверок даже в случаях, когда ресурс работает без обхода или с более простыми стратегиями.
|
* `force` дает максимум проверок даже в случаях, когда ресурс работает без обхода или с более простыми стратегиями.
|
||||||
|
|
||||||
Есть ряд других параметров, которые не будут спрашиваться в диалоге, но которые можно переопределить через
|
Есть ряд других параметров, которые не будут спрашиваться в диалоге, но которые можно переопределить через
|
||||||
@ -1747,7 +1747,7 @@ DISABLE_IPV6=1
|
|||||||
```
|
```
|
||||||
|
|
||||||
Количество потоков для многопоточного DNS ресолвера mdig (1..100).
|
Количество потоков для многопоточного DNS ресолвера mdig (1..100).
|
||||||
Чем их больше, тем быстрее, но не обидется ли на долбежку ваш DNS сервер?\
|
Чем их больше, тем быстрее, но не обидится ли на долбежку ваш DNS сервер?\
|
||||||
`MDIG_THREADS=30`
|
`MDIG_THREADS=30`
|
||||||
|
|
||||||
Место для хранения временных файлов. При скачивании огромных реестров в `/tmp` места может не хватить.
|
Место для хранения временных файлов. При скачивании огромных реестров в `/tmp` места может не хватить.
|
||||||
@ -1894,14 +1894,14 @@ INIT_FW_POST_DOWN_HOOK="/etc/firewall.zapret.hook.post_down"
|
|||||||
|
|
||||||
Эти настройки доступны в config.
|
Эти настройки доступны в config.
|
||||||
Может быть полезно, если вам нужно использовать nftables set-ы, например `ipban`/`ipban6`.
|
Может быть полезно, если вам нужно использовать nftables set-ы, например `ipban`/`ipban6`.
|
||||||
nfset-ы принадлежат только одной таблице, следовательно вам придется писать правила для таблицы zapret,
|
nfset-ы принадлежат только одной таблице, следовательно, вам придется писать правила для таблицы zapret,
|
||||||
а значит нужно синхронизироваться с применением/снятием правил со стороны zapret скриптов.
|
а значит нужно синхронизироваться с применением/снятием правил со стороны zapret скриптов.
|
||||||
|
|
||||||
## Вариант custom
|
## Вариант custom
|
||||||
|
|
||||||
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,11 +1991,11 @@ zapret_custom_firewall_nft поднимает правила nftables.
|
|||||||
Под OpenWrt все уже сразу готово для использования системы в качестве роутера.
|
Под OpenWrt все уже сразу готово для использования системы в качестве роутера.
|
||||||
Имена интерфейсов WAN и LAN известны из настроек системы.
|
Имена интерфейсов WAN и LAN известны из настроек системы.
|
||||||
Под другими системами роутер вы настраиваете самостоятельно. Инсталлятор в это не вмешивается.
|
Под другими системами роутер вы настраиваете самостоятельно. Инсталлятор в это не вмешивается.
|
||||||
инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
|
Инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
|
||||||
Нужно понимать, что заворот проходящего трафика на **tpws** в прозрачном режиме происходит до выполнения маршрутизации,
|
Нужно понимать, что заворот проходящего трафика на **tpws** в прозрачном режиме происходит до выполнения маршрутизации,
|
||||||
следовательно возможна фильтрация по LAN и невозможна по WAN.
|
следовательно, возможна фильтрация по LAN и невозможна по WAN.
|
||||||
Решение о завороте на **tpws** локального исходящего трафика принимается после выполнения маршрутизации,
|
Решение о завороте на **tpws** локального исходящего трафика принимается после выполнения маршрутизации,
|
||||||
следовательно ситуация обратная: LAN не имеет смысла, фильтрация по WAN возможна.
|
следовательно, ситуация обратная: LAN не имеет смысла, фильтрация по WAN возможна.
|
||||||
Заворот на **nfqws** происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN.
|
Заворот на **nfqws** происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN.
|
||||||
Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера.
|
Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера.
|
||||||
|
|
||||||
@ -2153,7 +2153,7 @@ Wifi сеть - обычно `wlan0`.
|
|||||||
|
|
||||||
Переключать blockcheck между оператором и wifi можно вместе со всем инетом - включив или выключив wifi.
|
Переключать blockcheck между оператором и wifi можно вместе со всем инетом - включив или выключив wifi.
|
||||||
Если найдете стратегию для wifi и впишите ее в автостарт, то при подключении к другому wifi
|
Если найдете стратегию для wifi и впишите ее в автостарт, то при подключении к другому wifi
|
||||||
она может не сработать или вовсе что-то поломать, потому подумайте стоит ли.
|
она может не сработать или вовсе что-то поломать, потому подумайте - стоит ли.
|
||||||
Может быть лучше сделать скрипты типа "запустить обход домашнего wifi", "снять обход домашнего wifi",
|
Может быть лучше сделать скрипты типа "запустить обход домашнего wifi", "снять обход домашнего wifi",
|
||||||
и пользоваться ими по необходимости из терминала.
|
и пользоваться ими по необходимости из терминала.
|
||||||
Но домашний wifi лучше все-же обходить на роутере.
|
Но домашний wifi лучше все-же обходить на роутере.
|
||||||
@ -2202,7 +2202,7 @@ curl: (7) Failed to connect to www.ru port 80: Host is unreachable
|
|||||||
Поэтому без tcp проксирования в этой ситуации сайты тупят, но загружаются, а с проксированием
|
Поэтому без tcp проксирования в этой ситуации сайты тупят, но загружаются, а с проксированием
|
||||||
подключение выполняется, но вскоре сбрасывается без каких-либо данных, и броузеры не пытаются установить
|
подключение выполняется, но вскоре сбрасывается без каких-либо данных, и броузеры не пытаются установить
|
||||||
его заново. Поэтому качество броузинга с tpws может быть хуже, но дело не в tpws.
|
его заново. Поэтому качество броузинга с tpws может быть хуже, но дело не в tpws.
|
||||||
Частота сбросов заметно возрастает, если запущен торент клиент, имеется много tcp соединений.
|
Частота сбросов заметно возрастает, если запущен торрент-клиент, имеется много tcp соединений.
|
||||||
Однако, причина не в переполнении таблицы conntrack. Увеличение лимитов и очистка conntrack не помогают.
|
Однако, причина не в переполнении таблицы conntrack. Увеличение лимитов и очистка conntrack не помогают.
|
||||||
Предположительно эта особенность связана с обработкой пакетов сброса соединения в hardware offload.
|
Предположительно эта особенность связана с обработкой пакетов сброса соединения в hardware offload.
|
||||||
Точного ответа на вопрос у меня нет. Если вы знаете - поделитесь, пожалуйста.
|
Точного ответа на вопрос у меня нет. Если вы знаете - поделитесь, пожалуйста.
|
||||||
@ -2225,10 +2225,10 @@ curl: (7) Failed to connect to www.ru port 80: Host is unreachable
|
|||||||
|
|
||||||
## Другие прошивки
|
## Другие прошивки
|
||||||
|
|
||||||
Для статических бинариков не имеет значения на чем они запущены: PC, android, приставка, роутер, любой другой девайс.
|
Для статических бинарников не имеет значения на чем они запущены: PC, android, приставка, роутер, любой другой девайс.
|
||||||
Подойдет любая прошивка, дистрибутив linux. Статические бинарники запустятся на всем.
|
Подойдет любая прошивка, дистрибутив linux. Статические бинарники запустятся на всем.
|
||||||
Им нужно только ядро с необходимыми опциями сборки или модулями.
|
Им нужно только ядро с необходимыми опциями сборки или модулями.
|
||||||
Но кроме бинариков в проекте используются еще и скрипты, в которых задействуются некоторые
|
Но кроме бинарников в проекте используются еще и скрипты, в которых задействуются некоторые
|
||||||
стандартные программы.
|
стандартные программы.
|
||||||
|
|
||||||
Основные причины почему нельзя просто так взять и установить эту систему на что угодно:
|
Основные причины почему нельзя просто так взять и установить эту систему на что угодно:
|
||||||
@ -2266,14 +2266,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…
Reference in New Issue
Block a user