What's new #1716
Replies: 23 comments
-
|
Регулярно возникает такой вопрос.
Для nftables основная схема процессинга nfqws - POSTNAT. nfqws не видит исходных адресов локальной сети, потому даже если вписать дополнительные условия в правила, это не сработает, если надо отсеивать отдельные клиенты в локалке. Пример команд для nftables : Здесь дурится
Осталось это куда-нибудь красиво поместить. На openwrt лучше всего использовать файлы в /etc/nftables.d . В этой директории пишутся файлы, содержащие не команды nft, а файлы описания цепочек внутри таблицы fw4 Перепись того же самого в файл /etc/nftables/99-my.nft А если надо только wifi ? Тут вам придется переиграть стандартную lan/wan схему в openwrt. Есть и другой способ решить поставленную задачу. См custom script |
Beta Was this translation helpful? Give feedback.
-
|
Добавлен новый фулинг ts. ts прибавляет к значению TSval таймштампа tcp значение ts increment (по умолчанию -600000). Сервера отбрасывают пакеты с TSval в определенных пределах. По практическим тестам инкремент должен быть где-то от -100 до -0x80000000. timestamps генерирует клиентская ОС. В linux таймштампы включены по умолчанию, в windows выключены по умолчанию. Можно включить через команду netsh interface tcp set global timestamps=enabled. ts fooling требует, чтобы таймштампы были включены, иначе работать не будет. Включать надо на каждом клиентском устройстве. TSecr оставляется без изменений. Так же требуется, чтобы сервер понимал timestamps, но это в большинстве случаев так. Вроде неплохой фулинг. Со всеми ОС работает, где есть timestamps. |
Beta Was this translation helpful? Give feedback.
-
|
Делаю поддержку более корректной работы с хостами типа “vk.com:8000” , “1.1.1.1”, “[fda6:1800::5]:8000” Такие хосты приходят в хедере Host: в http. В TLS в случае запроса по IP обычно не вставляется SNI extension. Порт так же не вставляется, если запрос идет по домену на нестандартный порт |
Beta Was this translation helpful? Give feedback.
-
|
В связи с попытками давить на голосовой трафик воцап/телеги добавил custom script 50-stun4all. |
Beta Was this translation helpful? Give feedback.
-
|
Возрождаем кастом для дискорда. Если кратко : останавливаем zapret, убираем из Почти все меняют стратегию в скрипте. Это просто и понятно. |
Beta Was this translation helpful? Give feedback.
-
|
В Пример инстанса для пробития медиапотоков в discord : В zapret-win-bundle из preset_russia убран discord. Теперь он + stun на все порты идут в Для wireguard готовый батник Вопрос "можно ли было сделать одним инстансом" ? Легко. Запишите через |
Beta Was this translation helpful? Give feedback.
-
|
Сразу же возникли умельцы - комбинаторы параметров. |
Beta Was this translation helpful? Give feedback.
-
|
В ядре linux 6.17 появилась опция. https://cateee.net/lkddb/web-lkddb/NETFILTER_XTABLES_LEGACY.html Во многих дистрибутивах она может быть not set. Решение - использовать nftables или хотя бы iptables-nft. |
Beta Was this translation helpful? Give feedback.
-
|
Некоторые ругаются на то, что пустые хостлисты равнозначны их отсутствию. Какой у этого юз кейз ? Конечно, в процессе разработки были и неоднозначные решения, которые вроде хотелось бы и переделать, но это сломает уже устоявшуюся схему и конфиги. Конкретно по этому случаю. Хостлисты - автоматически перечитываемые по изменению файлы. Скрипты запуска предполагают наличие /opt/zapret/ipset/{zapret-hosts-user.txt,zapret-hosts-user-exclude.txt}. Как сделать так, чтобы можно было не удаляя файлы переключаться между режимами черного и белого списков ? Сейчас этот вопрос решается именно этой “багофичей”. Если вам нужны только исключения, вы оставляете zapret-hosts-user.txt пустым, что равнозначно его НЕуказанию в командной строке nfqws/tpws. Но если вы не перезапуская инстанс туда что-то внесете или оттуда вынесити , изменения подхватятся автоматом, режим белого/черного списка переключится при переключении между состояниями “zapret-hosts-user.txt пуст” и “zapret-hosts-user.txt не пуст”. Если файл удалять, то кто потом знает какое имя правильное и где он должен быть ? Или придется городить еще настройки в конфиге типа учитывать один файл, не учитывать другой. Изменение потребует перезапуска инстанса. Другой момент состоит в том, что nfqws/tpws при запуске требуют наличие всех указанных листов. Они не умеют подразумевать и ожидать появление файла, если вдруг его захотят создать. Скрипты добавляют в командную строку только листы, файлы которых есть. Если потом файл добавят, то nfqws/tpws о нем ничего не знают. Потребуется перезапуск инстанса. Если файл удалят в процессе, то список в памяти останется, он не очистится автоматом. nfqws/tpws будут пытаться проверять наличие файла, и при его появлении вновь его перечитают. Если даже сделать функцию ожидания файла, то это чревато разными очепятками. Параметр принимается, в имени файла пропущена буква, создают файл, ничего не работает. Сейчас же идет сразу отлуп. Как по критерию наличия файла, так и по правам доступа. Считаю, что сразу тыкать носом в ошибки - это лучшая стратегия, чем куча криво настроенных чайниками инстансов, которые волшебно-шамански работают, но по сути полны ерунды. Такая ерунда случалась, когда не было проверки на права доступа под сброшенными привилегиями сразу. У людей работало, но при попытке перечитать реально были ошибки, функция перечитки не работала. При апгрейде, когда была сделана проверка на права, у них “просто перестал работать zapret”. Догадались почему ? Это тычок носом, который они не поняли, в проблему, которая была и раньше, но теперь прога отказалась работать с этой проблемой. Напоминаю, что zapret состоит из ядра - демонов nfqws и tpws, и они НИЧЕГО не знают о файле config. Они работают только с командной строкой. Скрипты запуска суть обертка, чтобы выставить нужные ip/nf tables и поднять nfqws/tpws с нужными параметрами. Сделано так, как сделано. Если вы знаете этот момент и делаете для себя, вам не составит труда при опустошении списка добавить туда бредостроку, чтобы он оставался не пустым. Сборщикам тоже по умолчанию стоит это делать. Добавьте “строку_не_удалять” в файл, если он изначально ожидается пустым, но требует функционала включающего списка. Теперь отвечу почему в автохостлисте "сделана затычка", которая автоматически делает его непустым. |
Beta Was this translation helpful? Give feedback.
-
|
Оказалось, что userspace прога nft поддерживает негласно Замена nft на 1.1.1 на openwrt 22 не помогает. Возвращается ошибка “not supported”, которая, очевидно, лезет с ядра. Если же запустить nft 1.0.2 на новом ядре, Минимальная версия LTS убунты, на которой все сразу из коробки работает, 22.04 LTS На 20.04 можно поискать в репах обновы ядра, а nft собрать с исходников. Или откатиться на iptables Владельцам openwrt 22 рекомендуется апгрейд |
Beta Was this translation helpful? Give feedback.
-
|
Не касается zapret, но все же может быть полезным. И получается что-то вроде амнезии-wg-лайт чисто на nftables без софта. |
Beta Was this translation helpful? Give feedback.
-
|
К следующей версии расширяются возможности встроенного конструктора windivert фильтров.
Зачем это надо ? Чтобы вы не запутались в полных фильтрах на 2-3 кб и чтобы не пришлось их потом сопровождать собственными силами. Чтобы не запускать несколько инстансов winws, когда можно легко обойтись одним. Пример Фильтрация windivert производится в ядре. Это несравнимо легче по ресурсам, чем перенаправлять пакеты в пространство user mode, чтобы winws принимал решение. Поэтому пользуйтесь по максимуму возможностями windivert. |
Beta Was this translation helpful? Give feedback.
-
|
Новая вариация fakedsplit - hostfakesplit.
В результате испытаний выяснено, что на большинстве доменов без специальных правил блокировки, при отсутствии разреза midhost , позволяет побороть защиту от TTL и md5sig, а так же открыть TLS1.2 без отдельного фейка. Дебаг логи применений : |
Beta Was this translation helpful? Give feedback.
-
|
Небольшое дополнение к предыдущему. Можно переопределить шаблон генерации с помощью |
Beta Was this translation helpful? Give feedback.
-
|
Еще одно дополнение к hostfakesplit. оригинал до хоста, фейк хоста, оригинал после хоста, оригинал хоста (+опционально нарезка маркером midhost). |
Beta Was this translation helpful? Give feedback.
-
|
Вариации fakedsplit с разным количеством фейков. некоторые фейки могут ломать обход. особенно РКНовцы не любят фейки, идущие первыми
Режим задается в параметре
Дополнительная фишка --dpi-desync-fake-tls=!+offset . |
Beta Was this translation helpful? Give feedback.
-
|
Многие параметры, загружающие двоичные данные из файлов, поддерживают загрузку из hex-строки или из файла. hex строка начинается с “0x”. Имя файла можно писать как есть или использовать префикс “@”. Если перед префиксом “@” указано “+<число>”, то это означает смещение полезных данных внутри файла. Файл может загружаться целиком с нулевой позиции, к нему могут применяться модификации, требующие полного файла (TLS), но передача пойдет с позиции offset. offset должен быть меньше длины файла. Если к блоку данных применяется мод, который уменьшает размер данных, и offset окажется не меньше новой длины данных, будет ошибка. |
Beta Was this translation helpful? Give feedback.
-
|
После некоторого перерыва добил, наконец, порядок ip_id во всех вариантах сплита.
Режимы altorder для
Режимы altorder для
Режимы altorder для
Итоговое число |
Beta Was this translation helpful? Give feedback.
-
|
Как и обещал, preset_russia покинул win bundle. Что здесь примечательного. Мы одним инстансом дурим как обычный tcp веб, так и wireguard на любых портах, и stun на любых портах, и discord media на портах 50000..50099, и даже quic на любых портах. При этом произошел отказ от полного перехвата udp портов. А это значит не будет лишней нагрузки на проц. Для этого и был создан |
Beta Was this translation helpful? Give feedback.
-
|
Небольшой ситуативный фикс для блокчека на тему 16 кб блоков.
Пример : Однако, в случае с 16 кб блоком обычно имеет место белый список по SNI и/или протоколам. Поэтому голый блокчек с такими опциями может вообще ничего не выдать. Все будет с ошибкой. Нужно подсовывать дополнительные опции (конкретные фейки, SNI, ...) через EXTRA параметры. Нововведение пока в исходниках. Для применения к релизу скопировать |
Beta Was this translation helpful? Give feedback.
-
|
Первый ознакомительный релиз zapret2. |
Beta Was this translation helpful? Give feedback.
-
|
MDIG cache был давно сломан в blockcheck1, проблема перешла и в blockcheck2 |
Beta Was this translation helpful? Give feedback.
-
|
Прощаемся с zapret-info и rublacklist. Убираются скрипты ipset get_reestr_resolve.sh и get_reestr_hostlist.sh как работающие напрямую с z-i. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
В этом топике буду дублировать блог из топика "whats new" с ntc.party
Исходная ссылка https://ntc.party/t/zapret-whats-new/61
На момент написания ntc.party доступен только по ipv6.
Напомню, что даже если у вас нет native ipv6 от провайдера, есть множество способов его получить путем тунеллирования. Гуглите.
Beta Was this translation helpful? Give feedback.
All reactions