mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-26 12:10:53 +03:00
Merge branch 'master' of https://github.com/bol-van/zapret
This commit is contained in:
commit
9e0bf35daf
@ -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 в десятки, если не сотни раз,
|
||||||
а следовательно не покупать очень дорогие решения, обойдясь чем-то существенно более дешевым.
|
а следовательно не покупать очень дорогие решения, обойдясь чем-то существенно более дешевым.
|
||||||
@ -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)
|
||||||
@ -358,11 +358,11 @@ 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.
|
Не рекомендуется для BSD систем, поскольку там нельзя ограничить количество входящих пакетов через connbytes.
|
||||||
@ -591,7 +591,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 с расшифровкой содержимого и имени хоста, то есть параметр
|
||||||
@ -670,7 +670,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
|
||||||
@ -693,7 +693,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 означает отключить функцию
|
||||||
@ -735,9 +735,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)
|
||||||
@ -854,7 +854,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 без ограничителей вряд ли целесообразно.
|
||||||
@ -963,7 +963,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 адреса будут помещены
|
||||||
@ -1039,7 +1039,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 проверяется домен на вхождение в него. При невхождении в список отказ от дурения.
|
||||||
Пустой список приравнивается к его отсутствию.
|
Пустой список приравнивается к его отсутствию.
|
||||||
@ -1197,7 +1197,7 @@ force дает максимум проверок даже в случаях, к
|
|||||||
из списка.
|
из списка.
|
||||||
|
|
||||||
ПРОВЕРКА НА ЧАСТИЧНЫЙ IP block
|
ПРОВЕРКА НА ЧАСТИЧНЫЙ IP block
|
||||||
Под частичным блоком подразумевается ситуация, когда конект на порты есть, но по определенному транспортному
|
Под частичным блоком подразумевается ситуация, когда коннект на порты есть, но по определенному транспортному
|
||||||
или прикладному протоколу всегда идет реакция DPI вне зависимости от запрашиваемого домена.
|
или прикладному протоколу всегда идет реакция DPI вне зависимости от запрашиваемого домена.
|
||||||
Эта проверка так же не выдаст автоматического вердикта/решения, потому что может быть очень много вариаций.
|
Эта проверка так же не выдаст автоматического вердикта/решения, потому что может быть очень много вариаций.
|
||||||
Вместо этого анализ происходящего возложен на самого пользователя или тех, кто будет читать лог.
|
Вместо этого анализ происходящего возложен на самого пользователя или тех, кто будет читать лог.
|
||||||
@ -1209,7 +1209,7 @@ force дает максимум проверок даже в случаях, к
|
|||||||
Ошибка сертификата может говорить как о реакции DPI с MiTM атакой (подмена сертификата), так и
|
Ошибка сертификата может говорить как о реакции DPI с MiTM атакой (подмена сертификата), так и
|
||||||
о том, что принимающий сервер неблокированного домена все равно принимает ваш TLS handshake с чужим доменом,
|
о том, что принимающий сервер неблокированного домена все равно принимает ваш TLS handshake с чужим доменом,
|
||||||
пытаясь при этом выдать сертификат без запрошенного домена. Требуется дополнительный анализ.
|
пытаясь при этом выдать сертификат без запрошенного домена. Требуется дополнительный анализ.
|
||||||
Если на заблокированный домен есть реакция на всех IP адресах, значит есть блокировака по домену.
|
Если на заблокированный домен есть реакция на всех IP адресах, значит есть блокировка по домену.
|
||||||
Если на неблокированный домен есть реакция на IP адресах блокированного домена, значит имеет место блок по IP.
|
Если на неблокированный домен есть реакция на IP адресах блокированного домена, значит имеет место блок по IP.
|
||||||
Соответственно, если есть и то, и другое, значит есть и блок по IP, и блок по домену.
|
Соответственно, если есть и то, и другое, значит есть и блок по IP, и блок по домену.
|
||||||
Неблокированный домен первым делом проверяется на доступность на оригинальном адресе.
|
Неблокированный домен первым делом проверяется на доступность на оригинальном адресе.
|
||||||
@ -1361,14 +1361,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).
|
||||||
Поместите сюда название скрипта, который будете использовать для обновления листов.
|
Поместите сюда название скрипта, который будете использовать для обновления листов.
|
||||||
@ -1543,16 +1543,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 пакеты. Можно форсировать режим
|
||||||
компиляции следующим вызовом :
|
компиляции следующим вызовом :
|
||||||
|
|
||||||
@ -1560,8 +1560,8 @@ install_easy.sh автоматизирует ручные варианты пр
|
|||||||
|
|
||||||
Под openwrt все уже сразу готово для использования системы в качестве роутера.
|
Под openwrt все уже сразу готово для использования системы в качестве роутера.
|
||||||
Имена интерфейсов WAN и LAN известны из настроек системы.
|
Имена интерфейсов WAN и LAN известны из настроек системы.
|
||||||
Под другими системами роутер вы настраиваете самостоятельно. Инсталятор в это не вмешивается.
|
Под другими системами роутер вы настраиваете самостоятельно. инсталлятор в это не вмешивается.
|
||||||
Инсталятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
|
инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
|
||||||
Нужно понимать, что заворот проходящего трафика на tpws в прозрачном режиме происходит до выполнения маршрутизации,
|
Нужно понимать, что заворот проходящего трафика на tpws в прозрачном режиме происходит до выполнения маршрутизации,
|
||||||
следовательно возможна фильтрация по LAN и невозможна по WAN.
|
следовательно возможна фильтрация по LAN и невозможна по WAN.
|
||||||
Решение о завороте на tpws локального исходящего трафика принимается после выполнения маршрутизации,
|
Решение о завороте на tpws локального исходящего трафика принимается после выполнения маршрутизации,
|
||||||
@ -1569,7 +1569,7 @@ install_easy.sh автоматизирует ручные варианты пр
|
|||||||
Заворот на nfqws происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN.
|
Заворот на nfqws происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN.
|
||||||
Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера.
|
Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера.
|
||||||
|
|
||||||
Деинсталяция выполняется через uninstall_easy.sh
|
Деинсталляция выполняется через uninstall_easy.sh
|
||||||
|
|
||||||
|
|
||||||
Простая установка на openwrt
|
Простая установка на openwrt
|
||||||
@ -1586,7 +1586,7 @@ install_easy.sh автоматизирует ручные варианты пр
|
|||||||
После успешной установки можно удалить zapret из tmp для освобождения RAM :
|
После успешной установки можно удалить zapret из tmp для освобождения RAM :
|
||||||
rm -r /tmp/zapret
|
rm -r /tmp/zapret
|
||||||
|
|
||||||
Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров".
|
Для более гибкой настройки перед запуском инсталлятора следует выполнить раздел "Выбор параметров".
|
||||||
|
|
||||||
Система простой инсталяции заточена на любое умышленное или неумышленное изменение прав доступа на файлы.
|
Система простой инсталяции заточена на любое умышленное или неумышленное изменение прав доступа на файлы.
|
||||||
Устойчива к репаку под windows. После копирования в /opt права будут принудительно восстановлены.
|
Устойчива к репаку под windows. После копирования в /opt права будут принудительно восстановлены.
|
||||||
@ -1654,7 +1654,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.
|
||||||
@ -1677,7 +1677,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-а сетевых функций.
|
||||||
@ -1692,7 +1692,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 придется опускать, поскольку модуля в ядре нет. Но это не смертельно.
|
||||||
|
|
||||||
@ -1723,7 +1723,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
|
||||||
@ -1742,7 +1742,7 @@ Windows
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
Для статических бинариков не имеет значения на чем они запущены : PC, android, приставка, роутер, любой другой девайс.
|
Для статических бинариков не имеет значения на чем они запущены : PC, android, приставка, роутер, любой другой девайс.
|
||||||
Подойдет любая прошивка, дистрибутив linux. Статические бинарики запустятся на всем.
|
Подойдет любая прошивка, дистрибутив linux. Статические бинарники запустятся на всем.
|
||||||
Им нужно только ядро с необходимыми опциями сборки или модулями.
|
Им нужно только ядро с необходимыми опциями сборки или модулями.
|
||||||
Но кроме бинариков в проекте используются еще и скрипты, в которых задействуются некоторые
|
Но кроме бинариков в проекте используются еще и скрипты, в которых задействуются некоторые
|
||||||
стандартные программы.
|
стандартные программы.
|
||||||
@ -1828,7 +1828,7 @@ VPN провайдер предоставляет _простую_ и _дост
|
|||||||
Возможен китайский расклад, при котором DPI выявляет vpn протоколы и динамически банит IP серверов,
|
Возможен китайский расклад, при котором DPI выявляет vpn протоколы и динамически банит IP серверов,
|
||||||
предоставляющих нелицензированный VPN. Но имея знания, голову, вы всегда можете обфусцировать
|
предоставляющих нелицензированный VPN. Но имея знания, голову, вы всегда можете обфусцировать
|
||||||
vpn трафик или применить другие типы VPN, более устойчивые к анализу на DPI или просто менее широкоизвестные,
|
vpn трафик или применить другие типы VPN, более устойчивые к анализу на DPI или просто менее широкоизвестные,
|
||||||
а следовательно с меньшей вероятностью обнаруживамые регулятором.
|
а следовательно с меньшей вероятностью обнаруживаемые регулятором.
|
||||||
У вас есть свобода делать на вашем VPS все что вы захотите, адаптируясь к новым условиям.
|
У вас есть свобода делать на вашем VPS все что вы захотите, адаптируясь к новым условиям.
|
||||||
Да, это потребует знаний. Вам выбирать учиться и держать ситуацию под контролем, когда вам ничего запретить
|
Да, это потребует знаний. Вам выбирать учиться и держать ситуацию под контролем, когда вам ничего запретить
|
||||||
не могут, или покориться системе.
|
не могут, или покориться системе.
|
||||||
|
Loading…
Reference in New Issue
Block a user