readme: fix regression

This commit is contained in:
bol-van 2024-09-17 20:03:24 +03:00
parent 298c894494
commit cab95fcf4e

View File

@ -40,7 +40,7 @@ For english version refer to docs/readme.eng.txt
Активный DPI ставится в разрез провода и может дропать пакеты по любым критериям, Активный DPI ставится в разрез провода и может дропать пакеты по любым критериям,
в том числе распознавать TCP потоки и блокировать любые пакеты, принадлежащие потоку. в том числе распознавать TCP потоки и блокировать любые пакеты, принадлежащие потоку.
Как не допустить срабатывания триггера запрета ? Послать то, на что DPI не расчитывает Как не допустить срабатывания триггера запрета ? Послать то, на что DPI не рассчитывает
и что ломает ему алгоритм распознавания запросов и их блокировки. и что ломает ему алгоритм распознавания запросов и их блокировки.
Некоторые DPI не могут распознать http запрос, если он разделен на TCP сегменты. Некоторые DPI не могут распознать http запрос, если он разделен на TCP сегменты.
@ -146,7 +146,7 @@ iptables -t mangle -I POSTROUTING -o <внешний_интерфейс> -p tcp
iptables -t mangle -I PREROUTING -i <внешний_интерфейс> -p tcp --sport 80 -m connbytes --connbytes-dir=reply --connbytes-mode=packets --connbytes 1:6 -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass iptables -t mangle -I PREROUTING -i <внешний_интерфейс> -p tcp --sport 80 -m connbytes --connbytes-dir=reply --connbytes-mode=packets --connbytes 1:6 -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass
Получаемые пакеты будут фильтровться по входящему интерфейсу, порту и IP источника, то есть наоборот прямому правилу. Получаемые пакеты будут фильтроваться по входящему интерфейсу, порту и IP источника, то есть наоборот прямому правилу.
Некоторые техники, ломающие NAT, не всегда можно реализовать через iptables. Требуются nftables. Некоторые техники, ломающие NAT, не всегда можно реализовать через iptables. Требуются nftables.
@ -211,7 +211,7 @@ NFQUEUE работает без изменений.
операционной системы, фрагментация отпадает сразу как средство обхода. Squid правильный, он все найдет операционной системы, фрагментация отпадает сразу как средство обхода. Squid правильный, он все найдет
как надо, обманывать его бесполезно. как надо, обманывать его бесполезно.
НО. Заворачивать на squid могут позволить себе лишь небольшие провайдеры, поскольку это очень ресурсоемко. НО. Заворачивать на squid могут позволить себе лишь небольшие провайдеры, поскольку это очень ресурсоемко.
Большие компании обычно используют DPI, который расчитан на гораздо большую пропускную способность. Большие компании обычно используют DPI, который рассчитан на гораздо большую пропускную способность.
Может применяться комбинированный подход, когда на DPI заворачивают только IP из "плохого" списка, Может применяться комбинированный подход, когда на DPI заворачивают только IP из "плохого" списка,
и дальше уже DPI решает пропускать или нет. Так можно снизить нагрузку на DPI в десятки, если не сотни раз, и дальше уже DPI решает пропускать или нет. Так можно снизить нагрузку на DPI в десятки, если не сотни раз,
а следовательно не покупать очень дорогие решения, обойдясь чем-то существенно более дешевым. а следовательно не покупать очень дорогие решения, обойдясь чем-то существенно более дешевым.
@ -259,7 +259,7 @@ nfqws
--dpi-desync-badack-increment=<int|0xHEX> ; инкремент ack sequence number для badseq. по умолчанию -66000 --dpi-desync-badack-increment=<int|0xHEX> ; инкремент ack sequence number для badseq. по умолчанию -66000
--dpi-desync-any-protocol=0|1 ; 0(default)=работать только по http request и tls clienthello 1=по всем непустым пакетам данных --dpi-desync-any-protocol=0|1 ; 0(default)=работать только по http request и tls clienthello 1=по всем непустым пакетам данных
--dpi-desync-fake-http=<filename>|0xHEX ; файл, содержащий фейковый http запрос для dpi-desync=fake, на замену стандартному www.iana.org --dpi-desync-fake-http=<filename>|0xHEX ; файл, содержащий фейковый http запрос для dpi-desync=fake, на замену стандартному www.iana.org
--dpi-desync-fake-tls=<filename>|0xHEX ; файл, содержащий фейковый tls clienthello для dpi-desync=fake, на замену стандартному www.iana.org --dpi-desync-fake-tls=<filename>|0xHEX ; файл, содержащий фейковый tls clienthello для dpi-desync=fake, на замену стандартному
--dpi-desync-fake-unknown=<filename>|0xHEX ; файл, содержащий фейковый пейлоад неизвестного протокола для dpi-desync=fake, на замену стандартным нулям 256 байт --dpi-desync-fake-unknown=<filename>|0xHEX ; файл, содержащий фейковый пейлоад неизвестного протокола для dpi-desync=fake, на замену стандартным нулям 256 байт
--dpi-desync-fake-syndata=<filename>|0xHEX ; файл, содержащий фейковый пейлоад пакета SYN для режима десинхронизации syndata --dpi-desync-fake-syndata=<filename>|0xHEX ; файл, содержащий фейковый пейлоад пакета SYN для режима десинхронизации syndata
--dpi-desync-fake-quic=<filename>|0xHEX ; файл, содержащий фейковый QUIC Initial --dpi-desync-fake-quic=<filename>|0xHEX ; файл, содержащий фейковый QUIC Initial
@ -269,8 +269,8 @@ nfqws
--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> ; применять дурение только к хостам из листа. может быть множество листов, они обьединяются. пустой обший лист = его отсутствие --hostlist=<filename> ; применять дурение только к хостам из листа. может быть множество листов, они объединяются. пустой обший лист = его отсутствие
--hostlist-exclude=<filename> ; не применять дурение к хостам из листа. может быть множество листов, они обьединяются --hostlist-exclude=<filename> ; не применять дурение к хостам из листа. может быть множество листов, они объединяются
--hostlist-auto=<filename> ; обнаруживать автоматически блокировки и заполнять автоматический hostlist (требует перенаправления входящего трафика) --hostlist-auto=<filename> ; обнаруживать автоматически блокировки и заполнять автоматический hostlist (требует перенаправления входящего трафика)
--hostlist-auto-fail-threshold=<int> ; сколько раз нужно обнаружить ситуацию, похожую на блокировку, чтобы добавить хост в лист (по умолчанию: 3) --hostlist-auto-fail-threshold=<int> ; сколько раз нужно обнаружить ситуацию, похожую на блокировку, чтобы добавить хост в лист (по умолчанию: 3)
--hostlist-auto-fail-time=<int> ; все эти ситуации должны быть в пределах указанного количества секунд (по умолчанию: 60) --hostlist-auto-fail-time=<int> ; все эти ситуации должны быть в пределах указанного количества секунд (по умолчанию: 60)
@ -281,7 +281,6 @@ nfqws
--filter-tcp=[~]port1[-port2] ; фильтр портов tcp для текущей стратегии. ~ означает инверсию. установка фильтра tcp и неустановка фильтра udp запрещает udp. --filter-tcp=[~]port1[-port2] ; фильтр портов tcp для текущей стратегии. ~ означает инверсию. установка фильтра tcp и неустановка фильтра udp запрещает udp.
--filter-udp=[~]port1[-port2] ; фильтр портов udp для текущей стратегии. ~ означает инверсию. установка фильтра udp и неустановка фильтра tcp запрещает udp. --filter-udp=[~]port1[-port2] ; фильтр портов udp для текущей стратегии. ~ означает инверсию. установка фильтра udp и неустановка фильтра tcp запрещает udp.
Параметры манипуляции могут сочетаться в любых комбинациях. Параметры манипуляции могут сочетаться в любых комбинациях.
ЗАМЕЧАНИЕ. Параметр --wsize считается устаревшим и более не поддерживается в скриптах. ЗАМЕЧАНИЕ. Параметр --wsize считается устаревшим и более не поддерживается в скриптах.
@ -363,14 +362,13 @@ fakeknown отличается от fake тем, что применяется
сервера. Берутся базовые значения TTL 64,128,255, смотрится входящий пакет сервера. Берутся базовые значения TTL 64,128,255, смотрится входящий пакет
(да, требуется направить первый входящий пакет на nfqws !). (да, требуется направить первый входящий пакет на nfqws !).
Вычисляется длина пути, отнимается delta (1 по умолчанию). Если TTL вне диапазона (min,max - 3,20 по умолчанию), Вычисляется длина пути, отнимается delta (1 по умолчанию). Если TTL вне диапазона (min,max - 3,20 по умолчанию),
то берутся значения min,max, чтобы вписаться в диапазон. Если при этом полученый TTL больше длины пути, то берутся значения min,max, чтобы вписаться в диапазон. Если при этом полученный TTL больше длины пути,
то автоматизм не сработал и берутся фиксированные значения TTL для атаки. то автоматизм не сработал и берутся фиксированные значения TTL для атаки.
Техника позволяет решить вопрос, когда вся сеть перегорожена шлагбаумами (DPI, ТСПУ) везде где только можно, Техника позволяет решить вопрос, когда вся сеть перегорожена шлагбаумами (DPI, ТСПУ) везде где только можно,
включая магистралов. Но потенциально может давать сбои. включая магистралов. Но потенциально может давать сбои.
Например, при ассиметрии входящего и исходящего канала до конкретного сервера. Например, при асимметрии входящего и исходящего канала до конкретного сервера.
На каких-то провайдерах эта техника будет работать неплохо, на других доставит больше проблем, чем пользы. На каких-то провайдерах эта техника будет работать неплохо, на других доставит больше проблем, чем пользы.
Где-то может потребоваться тюнинг параметров. Лучше использовать с дополнительным ограничителем. Где-то может потребоваться тюнинг параметров. Лучше использовать с дополнительным ограничителем.
Не рекомендуется для BSD систем, поскольку там нельзя ограничить количество входящих пакетов через connbytes.
Режимы дурения могут сочетаться в любых комбинациях. --dpi-desync-fooling берет множество значений через запятую. Режимы дурения могут сочетаться в любых комбинациях. --dpi-desync-fooling берет множество значений через запятую.
@ -596,7 +594,7 @@ chrome рандомизирует фингерпринт TLS. SNI может о
udplen увеличивает размер udp пакета на указанное в --dpi-desync-udplen-increment количество байтов. udplen увеличивает размер udp пакета на указанное в --dpi-desync-udplen-increment количество байтов.
Паддинг заполняется нулями по умолчанию, но можно задать свой паттерн. Паддинг заполняется нулями по умолчанию, но можно задать свой паттерн.
Предназначено для обмана DPI, ориентирующегося на размеры пакетов. Предназначено для обмана DPI, ориентирующегося на размеры пакетов.
Может сработать, если пользовательсткий протокол не привязан жестко к размеру udp пейлоада. Может сработать, если пользовательский протокол не привязан жестко к размеру udp пейлоада.
Режим tamper означает модификацию пакетов известных протоколов особенным для протокола образом. Режим tamper означает модификацию пакетов известных протоколов особенным для протокола образом.
На текущий момент работает только с DHT. На текущий момент работает только с DHT.
Поддерживается определение пакетов QUIC Initial с расшифровкой содержимого и имени хоста, то есть параметр Поддерживается определение пакетов QUIC Initial с расшифровкой содержимого и имени хоста, то есть параметр
@ -686,6 +684,7 @@ nfqws способен по-разному реагировать на разл
во множество профилей без понимания как они работают приведет к нагромождению параметров, которые все равно во множество профилей без понимания как они работают приведет к нагромождению параметров, которые все равно
не покроют все возможные заблокированные ресурсы. Вы только увязните в этой каше. не покроют все возможные заблокированные ресурсы. Вы только увязните в этой каше.
tpws tpws
----- -----
@ -701,7 +700,7 @@ tpws - это transparent proxy.
--bind-linklocal=no|unwanted|prefer|force --bind-linklocal=no|unwanted|prefer|force
; no : биндаться только на global ipv6 ; no : биндаться только на global ipv6
; unwanted (default) : предпочтительно global, если нет - LL ; unwanted (default) : предпочтительно global, если нет - LL
; prefer : предпочительно LL, если нет - global ; prefer : предпочтительно LL, если нет - global
; force : биндаться только на LL ; force : биндаться только на LL
--bind-iface4=<iface> ; слушать на первом ipv4 интерфейса iface --bind-iface4=<iface> ; слушать на первом ipv4 интерфейса iface
--bind-iface6=<iface> ; слушать на первом ipv6 интерфейса iface --bind-iface6=<iface> ; слушать на первом ipv6 интерфейса iface
@ -724,7 +723,7 @@ tpws - это transparent proxy.
--maxfiles=<max_open_files> ; макс количество файловых дескрипторов (setrlimit). мин требование (X*connections+16), где X=6 в tcp proxy mode, X=4 в режиме тамперинга. --maxfiles=<max_open_files> ; макс количество файловых дескрипторов (setrlimit). мин требование (X*connections+16), где X=6 в tcp proxy mode, X=4 в режиме тамперинга.
; стоит сделать запас с коэффициентом как минимум 1.5. по умолчанию maxfiles (X*connections)*1.5+16 ; стоит сделать запас с коэффициентом как минимум 1.5. по умолчанию maxfiles (X*connections)*1.5+16
--max-orphan-time=<sec>; если вы запускаете через tpws торрент-клиент с множеством раздач, он пытается установить очень много исходящих соединений, --max-orphan-time=<sec>; если вы запускаете через tpws торрент-клиент с множеством раздач, он пытается установить очень много исходящих соединений,
; большая часть из которых отваливается по таймату (юзера сидят за NAT, firewall, ...) ; большая часть из которых отваливается по таймауту (юзера сидят за NAT, firewall, ...)
; установление соединения в linux может длиться очень долго. локальный конец отвалился, перед этим послав блок данных, ; установление соединения в linux может длиться очень долго. локальный конец отвалился, перед этим послав блок данных,
; tpws ждет подключения удаленного конца, чтобы отослать ему этот блок, и зависает надолго. ; tpws ждет подключения удаленного конца, чтобы отослать ему этот блок, и зависает надолго.
; настройка позволяет сбрасывать такие подключения через N секунд, теряя блок данных. по умолчанию 5 сек. 0 означает отключить функцию ; настройка позволяет сбрасывать такие подключения через N секунд, теряя блок данных. по умолчанию 5 сек. 0 означает отключить функцию
@ -766,9 +765,9 @@ tpws - это transparent proxy.
; список читается 1 раз при старте и хранится в памяти в виде иерархической структуры для быстрого поиска. ; список читается 1 раз при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
; по сигналу HUP список будет перечитан при следующем принятом соединении ; по сигналу HUP список будет перечитан при следующем принятом соединении
; список может быть запакован в gzip. формат автоматически распознается и разжимается ; список может быть запакован в gzip. формат автоматически распознается и разжимается
; списков может быть множество, они обьединяются. пустой общий лист = его отсутствие ; списков может быть множество, они объединяются. пустой общий лист = его отсутствие
; хосты извлекаются из Host: хедера обычных http запросов и из SNI в TLS ClientHello. ; хосты извлекаются из Host: хедера обычных http запросов и из SNI в TLS ClientHello.
--hostlist-exclude=<filename> ; не применять дурение к доменам из листа. может быть множество листов, они обьединяются --hostlist-exclude=<filename> ; не применять дурение к доменам из листа. может быть множество листов, они объединяются
--hostlist-auto=<filename> ; обнаруживать автоматически блокировки и заполнять автоматический hostlist (требует перенаправления входящего трафика) --hostlist-auto=<filename> ; обнаруживать автоматически блокировки и заполнять автоматический hostlist (требует перенаправления входящего трафика)
--hostlist-auto-fail-threshold=<int> ; сколько раз нужно обнаружить ситуацию, похожую на блокировку, чтобы добавить хост в лист (по умолчанию: 3) --hostlist-auto-fail-threshold=<int> ; сколько раз нужно обнаружить ситуацию, похожую на блокировку, чтобы добавить хост в лист (по умолчанию: 3)
--hostlist-auto-fail-time=<int> ; все эти ситуации должны быть в пределах указанного количества секунд (по умолчанию: 60) --hostlist-auto-fail-time=<int> ; все эти ситуации должны быть в пределах указанного количества секунд (по умолчанию: 60)
@ -885,7 +884,7 @@ tpws поддерживает эту возможность асинхронно
структуры данных. В случае отсутствия SNI разбиение отменяется. структуры данных. В случае отсутствия SNI разбиение отменяется.
--tlsrec-pos режет на указанной позиции. Если длина блока данных TLS меньше указанной позиции, режем на позиции 1. --tlsrec-pos режет на указанной позиции. Если длина блока данных TLS меньше указанной позиции, режем на позиции 1.
Параметр сочетается с --split-pos. В этом случае происходит сначала разделение на уровне TLS record layer, потом на уровне TCP. Параметр сочетается с --split-pos. В этом случае происходит сначала разделение на уровне TLS record layer, потом на уровне TCP.
Самая изорщенная атака --tlsrec, --split-pos и --disorder вместе. Самая изощрённая атака --tlsrec, --split-pos и --disorder вместе.
--tlsrec ломает значительное количество сайтов. Криптобиблиотеки (openssl, ...) на оконечных http серверах --tlsrec ломает значительное количество сайтов. Криптобиблиотеки (openssl, ...) на оконечных http серверах
без проблем принимают разделенные tls сегменты, но мидлбоксы - не всегда. К мидлбоксам можно отнести CDN без проблем принимают разделенные tls сегменты, но мидлбоксы - не всегда. К мидлбоксам можно отнести CDN
или системы ddos-защиты. Поэтому применение --tlsrec без ограничителей вряд ли целесообразно. или системы ddos-защиты. Поэтому применение --tlsrec без ограничителей вряд ли целесообразно.
@ -994,7 +993,7 @@ ipset, это длительная операция на больших лист
Список РКН уже достиг внушительных размеров в сотни тысяч IP адресов. Поэтому для оптимизации ipset Список РКН уже достиг внушительных размеров в сотни тысяч IP адресов. Поэтому для оптимизации ipset
применяется утилита ip2net. Она берет список отдельных IP адресов и пытается интеллектуально создать из него подсети для сокращения применяется утилита ip2net. Она берет список отдельных IP адресов и пытается интеллектуально создать из него подсети для сокращения
количества адресов. ip2net отсекает неправильные записи в листах, гарантируя осутствие ошибок при их загрузке. количества адресов. ip2net отсекает неправильные записи в листах, гарантируя отсутствие ошибок при их загрузке.
ip2net написан на языке C, поскольку операция ресурсоемкая. Иные способы роутер может не потянуть. ip2net написан на языке C, поскольку операция ресурсоемкая. Иные способы роутер может не потянуть.
Можно внести список доменов в ipset/zapret-hosts-user-ipban.txt. Их ip адреса будут помещены Можно внести список доменов в ipset/zapret-hosts-user-ipban.txt. Их ip адреса будут помещены
@ -1070,7 +1069,7 @@ ip2net фильтрует входные данные, выкидывая неп
Альтернативой ipset является использование tpws или nfqws со списком доменов. Альтернативой ipset является использование tpws или nfqws со списком доменов.
Оба демона принимают неограниченное количество листов include (--hostlist) и exclude (--hostlist-exclude). Оба демона принимают неограниченное количество листов include (--hostlist) и exclude (--hostlist-exclude).
Все листы одного типа обьединяются, и таким образом остаются только 2 листа. Все листы одного типа объединяются, и таким образом остаются только 2 листа.
Прежде всего проверяется exclude list. При вхождении в него происходит отказ от дурения. Прежде всего проверяется exclude list. При вхождении в него происходит отказ от дурения.
Далее при наличии include list проверяется домен на вхождение в него. При невхождении в список отказ от дурения. Далее при наличии include list проверяется домен на вхождение в него. При невхождении в список отказ от дурения.
Пустой список приравнивается к его отсутствию. Пустой список приравнивается к его отсутствию.
@ -1228,7 +1227,7 @@ force дает максимум проверок даже в случаях, к
из списка. из списка.
ПРОВЕРКА НА ЧАСТИЧНЫЙ IP block ПРОВЕРКА НА ЧАСТИЧНЫЙ IP block
Под частичным блоком подразумевается ситуация, когда конект на порты есть, но по определенному транспортному Под частичным блоком подразумевается ситуация, когда коннект на порты есть, но по определенному транспортному
или прикладному протоколу всегда идет реакция DPI вне зависимости от запрашиваемого домена. или прикладному протоколу всегда идет реакция DPI вне зависимости от запрашиваемого домена.
Эта проверка так же не выдаст автоматического вердикта/решения, потому что может быть очень много вариаций. Эта проверка так же не выдаст автоматического вердикта/решения, потому что может быть очень много вариаций.
Вместо этого анализ происходящего возложен на самого пользователя или тех, кто будет читать лог. Вместо этого анализ происходящего возложен на самого пользователя или тех, кто будет читать лог.
@ -1240,7 +1239,7 @@ force дает максимум проверок даже в случаях, к
Ошибка сертификата может говорить как о реакции DPI с MiTM атакой (подмена сертификата), так и Ошибка сертификата может говорить как о реакции DPI с MiTM атакой (подмена сертификата), так и
о том, что принимающий сервер неблокированного домена все равно принимает ваш TLS handshake с чужим доменом, о том, что принимающий сервер неблокированного домена все равно принимает ваш TLS handshake с чужим доменом,
пытаясь при этом выдать сертификат без запрошенного домена. Требуется дополнительный анализ. пытаясь при этом выдать сертификат без запрошенного домена. Требуется дополнительный анализ.
Если на заблокированный домен есть реакция на всех IP адресах, значит есть блокировака по домену. Если на заблокированный домен есть реакция на всех IP адресах, значит есть блокировка по домену.
Если на неблокированный домен есть реакция на IP адресах блокированного домена, значит имеет место блок по IP. Если на неблокированный домен есть реакция на IP адресах блокированного домена, значит имеет место блок по IP.
Соответственно, если есть и то, и другое, значит есть и блок по IP, и блок по домену. Соответственно, если есть и то, и другое, значит есть и блок по IP, и блок по домену.
Неблокированный домен первым делом проверяется на доступность на оригинальном адресе. Неблокированный домен первым делом проверяется на доступность на оригинальном адресе.
@ -1392,14 +1391,14 @@ NFQWS_OPT_DESYNC_QUIC6="--dpi-desync=hopbyhop"
Если NFQWS_OPT_DESYNC_QUIC6 не задано, то берется NFQWS_OPT_DESYNC_QUIC. Если NFQWS_OPT_DESYNC_QUIC6 не задано, то берется NFQWS_OPT_DESYNC_QUIC.
Настройка системы управления выборочным traffic offload (только если поддерживается) Настройка системы управления выборочным traffic offload (только если поддерживается)
donttouch : выборочное управление отключено, используется системная настройка, простой инсталятор выключает системную настройку, если она не совместима с выбранным режимом donttouch : выборочное управление отключено, используется системная настройка, простой инсталлятор выключает системную настройку, если она не совместима с выбранным режимом
none : выборочное управление отключено, простой инсталятор выключает системную настройку none : выборочное управление отключено, простой инсталлятор выключает системную настройку
software : выборочное управление включено в режиме software, простой инсталятор выключает системную настройку software : выборочное управление включено в режиме software, простой инсталлятор выключает системную настройку
hardware : выборочное управление включено в режиме hardware, простой инсталятор выключает системную настройку hardware : выборочное управление включено в режиме hardware, простой инсталлятор выключает системную настройку
FLOWOFFLOAD=donttouch FLOWOFFLOAD=donttouch
Параметр GETLIST указывает инсталятору install_easy.sh какой скрипт дергать Параметр GETLIST указывает инсталлятору install_easy.sh какой скрипт дергать
для обновления списка заблокированных ip или хостов. для обновления списка заблокированных ip или хостов.
Он же вызывается через get_config.sh из запланированных заданий (crontab или systemd timer). Он же вызывается через get_config.sh из запланированных заданий (crontab или systemd timer).
Поместите сюда название скрипта, который будете использовать для обновления листов. Поместите сюда название скрипта, который будете использовать для обновления листов.
@ -1574,16 +1573,16 @@ tpws к http и nfqws к https. При этом поддерживаются у
install_easy.sh автоматизирует ручные варианты процедур установки (см manual_setup.txt). install_easy.sh автоматизирует ручные варианты процедур установки (см manual_setup.txt).
Он поддерживает OpenWRT, linux системы на базе systemd или openrc и MacOS. Он поддерживает OpenWRT, linux системы на базе systemd или openrc и MacOS.
Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров". Для более гибкой настройки перед запуском инсталлятора следует выполнить раздел "Выбор параметров".
Если система запуска поддерживается, но используется не поддерживаемый инсталятором менеджер пакетов Если система запуска поддерживается, но используется не поддерживаемый инсталлятором менеджер пакетов
или названия пакетов не соответствуют прописанным в инсталятор, пакеты нужно установить вручную. или названия пакетов не соответствуют прописанным в инсталлятор, пакеты нужно установить вручную.
Всегда требуется curl. ipset - только для режима iptables, для nftables - не нужен. Всегда требуется curl. ipset - только для режима iptables, для nftables - не нужен.
Для совсем обрезанных дистрибутивов (alpine) требуется отдельно установить iptables и ip6tables, либо nftables. Для совсем обрезанных дистрибутивов (alpine) требуется отдельно установить iptables и ip6tables, либо nftables.
В комплекте идут статические бинарики для большинства архитектур. Какой-то из них подойдет В комплекте идут статические бинарники для большинства архитектур. Какой-то из них подойдет
с вероятностью 99%. Но если у вас экзотическая система, инсталятор попробует собрать бинарики сам с вероятностью 99%. Но если у вас экзотическая система, инсталлятор попробует собрать бинарники сам
через make. Для этого нужны gcc, make и необходимые -dev пакеты. Можно форсировать режим через make. Для этого нужны gcc, make и необходимые -dev пакеты. Можно форсировать режим
компиляции следующим вызовом : компиляции следующим вызовом :
@ -1591,8 +1590,8 @@ install_easy.sh автоматизирует ручные варианты пр
Под openwrt все уже сразу готово для использования системы в качестве роутера. Под openwrt все уже сразу готово для использования системы в качестве роутера.
Имена интерфейсов WAN и LAN известны из настроек системы. Имена интерфейсов WAN и LAN известны из настроек системы.
Под другими системами роутер вы настраиваете самостоятельно. Инсталятор в это не вмешивается. Под другими системами роутер вы настраиваете самостоятельно. инсталлятор в это не вмешивается.
Инсталятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы. инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
Нужно понимать, что заворот проходящего трафика на tpws в прозрачном режиме происходит до выполнения маршрутизации, Нужно понимать, что заворот проходящего трафика на tpws в прозрачном режиме происходит до выполнения маршрутизации,
следовательно возможна фильтрация по LAN и невозможна по WAN. следовательно возможна фильтрация по LAN и невозможна по WAN.
Решение о завороте на tpws локального исходящего трафика принимается после выполнения маршрутизации, Решение о завороте на tpws локального исходящего трафика принимается после выполнения маршрутизации,
@ -1600,7 +1599,7 @@ install_easy.sh автоматизирует ручные варианты пр
Заворот на nfqws происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN. Заворот на nfqws происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN.
Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера. Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера.
Деинсталяция выполняется через uninstall_easy.sh Деинсталляция выполняется через uninstall_easy.sh
Простая установка на openwrt Простая установка на openwrt
@ -1617,7 +1616,7 @@ install_easy.sh автоматизирует ручные варианты пр
После успешной установки можно удалить zapret из tmp для освобождения RAM : После успешной установки можно удалить zapret из tmp для освобождения RAM :
rm -r /tmp/zapret rm -r /tmp/zapret
Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров". Для более гибкой настройки перед запуском инсталлятора следует выполнить раздел "Выбор параметров".
Система простой инсталяции заточена на любое умышленное или неумышленное изменение прав доступа на файлы. Система простой инсталяции заточена на любое умышленное или неумышленное изменение прав доступа на файлы.
Устойчива к репаку под windows. После копирования в /opt права будут принудительно восстановлены. Устойчива к репаку под windows. После копирования в /opt права будут принудительно восстановлены.
@ -1685,7 +1684,7 @@ echo nameserver 1.1.1.1 >/etc/resolv.conf
который как правило присутствует по умолчанию. В ядре android нет nftables. который как правило присутствует по умолчанию. В ядре android нет nftables.
ls -la $(which iptables) ls -la $(which iptables)
Линк должен указывать на legacy вариант. Линк должен указывать на legacy вариант.
Если нет, значит устанавливайте нужные пакеты вашего дестрибутива, и убеждайтесь в правильности ссылок. Если нет, значит устанавливайте нужные пакеты вашего дистрибутива, и убеждайтесь в правильности ссылок.
iptables -S iptables -S
Так можно проверить, что ваш iptables увидел то, что туда насовал android. iptables-nft выдаст ошибку. Так можно проверить, что ваш iptables увидел то, что туда насовал android. iptables-nft выдаст ошибку.
Далее качаем zapret в /opt/zapret. Обычные действия с install_prereq.sh, install_bin.sh, blockcheck.sh. Далее качаем zapret в /opt/zapret. Обычные действия с install_prereq.sh, install_bin.sh, blockcheck.sh.
@ -1708,7 +1707,7 @@ Wifi сеть - обычно wlan0.
Устройства типа E3372, E8372, E5770 разделяют общую идеологию построения системы. Устройства типа E3372, E8372, E5770 разделяют общую идеологию построения системы.
Имеются 2 вычислительных ядра. Одно ядро выполняет vxworks, другое - linux. Имеются 2 вычислительных ядра. Одно ядро выполняет vxworks, другое - linux.
На 4pda имеются модицифированные прошивки с telnet и adb. Их и нужно использовать. На 4pda имеются модифицированные прошивки с telnet и adb. Их и нужно использовать.
Дальнейшие утверждения проверены на E8372. На других может быть аналогично или похоже. Дальнейшие утверждения проверены на E8372. На других может быть аналогично или похоже.
Присутствуют дополнительные аппаратные блоки для offload-а сетевых функций. Присутствуют дополнительные аппаратные блоки для offload-а сетевых функций.
@ -1723,7 +1722,7 @@ nfqueue поломан. можно собрать фиксящий модуль
С помощью этих исходников умельцы могут собрать модуль unfuck_nfqueue.ko. С помощью этих исходников умельцы могут собрать модуль unfuck_nfqueue.ko.
После его применения NFQUEUE и nfqws для arm работают нормально. После его применения NFQUEUE и nfqws для arm работают нормально.
Чтобы избежать проблемы с offload-ом при использвании nfqws, следует комбинировать tpws в режиме tcp proxy и nfqws. Чтобы избежать проблемы с offload-ом при использовании nfqws, следует комбинировать tpws в режиме tcp proxy и nfqws.
Правила NFQUEUE пишутся для цепочки OUTPUT. Правила NFQUEUE пишутся для цепочки OUTPUT.
connbytes придется опускать, поскольку модуля в ядре нет. Но это не смертельно. connbytes придется опускать, поскольку модуля в ядре нет. Но это не смертельно.
@ -1754,7 +1753,7 @@ connbytes придется опускать, поскольку модуля в
на небольшое количество хостов. на небольшое количество хостов.
Некоторые наброски скриптов присутствуют в files/huawei. Не готовое решение ! Смотрите, изучайте, приспосабливайте. Некоторые наброски скриптов присутствуют в files/huawei. Не готовое решение ! Смотрите, изучайте, приспосабливайте.
Здесь можно скачать готовые полезные статические бинарики для arm, включая curl : https://github.com/bol-van/bins Здесь можно скачать готовые полезные статические бинарники для arm, включая curl : https://github.com/bol-van/bins
FreeBSD, OpenBSD, MacOS FreeBSD, OpenBSD, MacOS
@ -1773,7 +1772,7 @@ Windows
--------------- ---------------
Для статических бинариков не имеет значения на чем они запущены : PC, android, приставка, роутер, любой другой девайс. Для статических бинариков не имеет значения на чем они запущены : PC, android, приставка, роутер, любой другой девайс.
Подойдет любая прошивка, дистрибутив linux. Статические бинарики запустятся на всем. Подойдет любая прошивка, дистрибутив linux. Статические бинарники запустятся на всем.
Им нужно только ядро с необходимыми опциями сборки или модулями. Им нужно только ядро с необходимыми опциями сборки или модулями.
Но кроме бинариков в проекте используются еще и скрипты, в которых задействуются некоторые Но кроме бинариков в проекте используются еще и скрипты, в которых задействуются некоторые
стандартные программы. стандартные программы.
@ -1859,7 +1858,7 @@ VPN провайдер предоставляет _простую_ и _дост
Возможен китайский расклад, при котором DPI выявляет vpn протоколы и динамически банит IP серверов, Возможен китайский расклад, при котором DPI выявляет vpn протоколы и динамически банит IP серверов,
предоставляющих нелицензированный VPN. Но имея знания, голову, вы всегда можете обфусцировать предоставляющих нелицензированный VPN. Но имея знания, голову, вы всегда можете обфусцировать
vpn трафик или применить другие типы VPN, более устойчивые к анализу на DPI или просто менее широкоизвестные, vpn трафик или применить другие типы VPN, более устойчивые к анализу на DPI или просто менее широкоизвестные,
а следовательно с меньшей вероятностью обнаруживамые регулятором. а следовательно с меньшей вероятностью обнаруживаемые регулятором.
У вас есть свобода делать на вашем VPS все что вы захотите, адаптируясь к новым условиям. У вас есть свобода делать на вашем VPS все что вы захотите, адаптируясь к новым условиям.
Да, это потребует знаний. Вам выбирать учиться и держать ситуацию под контролем, когда вам ничего запретить Да, это потребует знаний. Вам выбирать учиться и держать ситуацию под контролем, когда вам ничего запретить
не могут, или покориться системе. не могут, или покориться системе.