diff --git a/docs/readme.txt b/docs/readme.txt index e636429..34f5aa3 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -9,6 +9,9 @@ For english version refer to docs/readme.eng.txt ----------------- Автономно, без задействования сторонних серверов, обойти блокировки веб сайтов http и https на DPI. +Проект нацелен прежде всего на маломощные embedded устройства - роутеры, работающие под openwrt, +но так же поддерживается и большинство классических дистрибутивов linux, использующих systemd. +В некоторых случаях возможна самостоятельная прикрутка решения к различным прошивкам. Как это работает ---------------- @@ -38,6 +41,9 @@ For english version refer to docs/readme.eng.txt Существует и более продвинутая магия, направленная на преодоление DPI на пакетном уровне. +Подробнее про DPI : + https://habr.com/ru/post/335436 + https://geneva.cs.umd.edu/papers/geneva_ccs19.pdf Как это реализовать на практике в системе linux ----------------------------------------------- @@ -178,7 +184,8 @@ nfqws Там обычно "GET / ..." или TLS ClientHello. Мы дропаем этот пакет, заменяя чем-то другим. Это может быть поддельная версия с безобидным, но валидным запросом http или https (вариант fake), пакет сброса соединения (варианты rst, rstack), разбитый на части оригинальный пакет с перепутанным -порядком следования сегментов + фейк-сегмент посередине (disorder). +порядком следования сегментов + обрамление первого сегмента фейками (disorder), +то же самое без перепутывания порядка сегментов (split). В литературе такие атаки еще называют TCB desynchronization и TCB teardown. Надо, чтобы фейковые пакеты дошли до DPI, но не дошли до сервера. На вооружении есть следующие возможности : установить низкий TTL, посылать пакет с инвалидной чексуммой, @@ -282,7 +289,7 @@ tpws - это transparent proxy. --maxconn= ; максимальное количество соединений от клиентов к прокси --maxfiles= ; макс количество файловых дескрипторов (setrlimit). мин требование (X*connections+16), где X=6 в tcp proxy mode, X=4 в режиме тамперинга. ; стоит сделать запас с коэффициентом как минимум 1.5. по умолчанию maxfiles (X*connections)*1.5+16 - --max-orphan-time=; если вы запускате через tpws торрент-клиент с множеством раздач, он пытается установить очень много исходящих соединений, + --max-orphan-time=; если вы запускаете через tpws торрент-клиент с множеством раздач, он пытается установить очень много исходящих соединений, ; большая часть из которых отваливается по таймату (юзера сидят за NAT, firewall, ...) ; установление соединения в linux может длиться очень долго. локальный конец отвалился, перед этим послав блок данных, ; tpws ждет подключения удаленного конца, чтобы отослать ему этот блок, и зависает надолго. @@ -306,9 +313,11 @@ tpws - это transparent proxy. --methodspace ; добавить пробел после метода : "GET /" => "GET /" --methodeol ; добавить перевод строки перед методом : "GET /" => "\r\nGET /" --unixeol ; конвертировать 0D0A в 0A и использовать везде 0A - --hostlist= ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются. в файле должен быть хост на каждой строке. + --hostlist= ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются. + ; в файле должен быть хост на каждой строке. ; список читается 1 раз при старте и хранится в памяти в виде иерархической структуры для быстрого поиска. - ; для списка РКН может потребоваться система с 128 Mb памяти ! расчитывайте требование RAM для процесса как 3-5 кратный размер файла списка. + ; для списка РКН может потребоваться система с 128 Mb памяти ! + ; расчитывайте требование RAM для процесса как 3-5 кратный размер файла списка. ; по сигналу HUP список будет перечитан при следующем принятом соединении ; список может быть запакован в gzip. формат автоматически распознается и разжимается