Показать сообщение отдельно
Старый 27.12.2025, 08:57   #8
kosmos17
Зам.Админ

 
Аватар для kosmos17
 
kosmos17 вне форума
Регистрация: 22.11.2013
Страна: Ukraine
Возраст: 54
Сообщений: 4.268
Сказал(а) спасибо: 8.620
Поблагодарили 18.920 раз(а) в 4.619 сообщениях
Репутация: 65290
По умолчанию Re: Обновления Enigma2 в имидже openATV

dnscrypt-proxy в OpenATV – понятный обзор + важные настройки

О чём идёт речь?
dnscrypt-proxy — это локальный DNS-прокси. Он принимает DNS-запросы от устройства и отвечает на них либо из локального кэша, либо пересылает их в зашифрованном виде выбранным DNS-серверам (DNSCrypt/DoH). При желании он может блокировать или разрешать доступ к определённым доменам/IP-адресам.

Важно для OpenATV
  • Файл конфигурации: /etc/dnscrypt-proxy/dnscrypt-proxy.toml
  • Запуск: Служба запускается как демон с помощью скрипта инициализации.
  • Системный DNS: Сервер имен статически установлен на 127.0.0.1:53.
  • Важно: Если dnscrypt-proxy не запущен или неправильно настроен, разрешение имен, как правило, будет завершаться с ошибкой.

Какие преимущества для обычных пользователей?
  • Повышенная конфиденциальность: DNS-запросы больше не передаются по сети в виде открытого текста.
  • Повышенная безопасность: манипуляции с DNS в сети становятся сложнее.
  • Дополнительно: блокировка рекламных/трекерных/вредоносных доменов с помощью черного списка.
  • Дополнительно: контроль доступа по времени (например, разрешение/блокировка веб-сайтов только в определенное время).

Чем dnscrypt-proxy не является:
  • Это не VPN: Он шифрует DNS, но не автоматически весь интернет-трафик.
  • Не гарантирует защиту от географических ограничений: Многие географические ограничения основаны на вашем публичном IP-адресе, а не на DNS.

================================================== =============================
Географическая защита, блокировки по странам/провайдерам и что DNS может (и чего не может) решить.
================================================== =============================

1) Географические ограничения (например, медиатеки/стриминг «только в стране X»)
Геоблокировка обычно определяется на основе вашего публичного IP-адреса. Использование другого DNS-сервера не изменит ваш IP-адрес. Поэтому:
  • dnscrypt-proxy может шифровать DNS и переключаться на другие DNS-серверы,
  • но это не снимет типичные географические ограничения.

2) Блокировка по IP-адресу или стране (общие сведения)
«Блокировка» не всегда одинакова. Существуют различные методы:
  • Блокировка на основе DNS (манипуляции/перенаправление DNS, черный список DNS у провайдера)
  • Блокировка на основе IP-адреса (блокируется целевой IP-адрес)
  • Фильтрация HTTPS/SNI или DPI (глубокий анализ пакетов)
Что dnscrypt-proxy может (обычно) делать:
  • Зашифрованный DNS может помочь против чистой манипуляции DNS, поскольку DNS-запрос больше не отправляется провайдеру в открытом виде.
Что dnscrypt-proxy не может делать:
  • Если блокировка происходит на уровне IP/SNI/DPI, использование другого DNS-резолвера само по себе обычно не помогает.
Примечание относительно незаконного контента:
Это руководство предназначено для законного использования (конфиденциальность/родительский контроль/ложная блокировка). Оно не включает шаги по обходу блокировок для доступа к контенту, нарушающему авторские права или иным образом незаконному.

3) Варианты действий в случае некорректной блокировки легитимных веб-сайтов

3.1 Выбор резолвера без фильтров
Многие резолверы имеют собственные фильтры (родительский контроль, фильтры безопасности, рекламные фильтры). Для максимально «нейтральной» работы DNS:
  • Резолверы можно фильтровать по свойствам в конфигурации.
  • Пример: `require_nofilter = true` означает «только резолверы, которые не объявляют свой собственный список блокировки».

3.2 Проверка локальных списков блокировки
Если в образе включены списки блокировки, запись может непреднамеренно заблокировать страницу.
  • Временно отключите списки блокировки (или удалите правила) — только для целей тестирования.
  • Лучше: используйте список разрешенных сайтов (см. ниже).

3.3 Списки разрешенных адресов (исключения) вместо «смягчения» списков блокировки
dnscrypt-proxy поддерживает списки разрешенных адресов, которые специально обходят блокировку, — но только в рамках ваших локальных фильтров (т. е., если вы блокируете себя сами).
  • blocked_names блокирует домены.
  • allowed_names может определять исключения, которые обходят фильтры имен/IP-адресов.

================================================== =============================
Защита детей / Контроль времени – выборочная блокировка или разрешение доступа
================================================== =============================

Если плагины на устройстве больше не обеспечивают надежное управление временем/родительский контроль, надежной альтернативой может стать уровень DNS. Пока устройства/приложения отправляют DNS-запросы через настроенный DNS-сервер, эти правила применяются независимо от отдельных приложений.

1) Основной принцип
  • Блок-лист: Заблокированные домены (или шаблоны).
  • Расписание: Правила блокировки могут быть активны только в определенное время.
  • Разрешенный список: Целевые исключения (например, «Всегда разрешать школьную платформу»).

2) Определение расписаний (пример)
В файле /etc/dnscrypt-proxy/dnscrypt-proxy.toml:
Код:
[schedules]
  [schedules.time-to-sleep]
  mon = [{after='21:00', before='07:00'}]
  tue = [{after='21:00', before='07:00'}]
  wed = [{after='21:00', before='07:00'}]
  thu = [{after='21:00', before='07:00'}]
  fri = [{after='22:00', before='07:00'}]
  sat = [{after='22:00', before='09:00'}]
  sun = [{after='21:00', before='07:00'}]
3) Список заблокированных пользователей с указанием времени (пример)
В файле blocked-names.txt:
  • *.youtube.* @time-to-sleep
  • *.tiktok.* @time-to-sleep

4) Полная блокировка (всегда)
В файле blocked-names.txt без расписания:
  • example.com
  • *.example.com

5) Белый список (исключения)
В файле allowed-names.txt:
  • =schule.example
  • *.bildungsportal.example

Примечание: Списки разрешенных элементов становятся особенно важными, когда списки заблокированных элементов очень широкие (правила использования подстановочных символов/подстрок).

6) DNS-фильтрация не заменяет контентную фильтрацию
DNS может блокировать только на уровне домена/IP-адреса. DNS не может фильтровать контент в пределах разрешенного домена (например, отдельные видео) на "детальном" уровне.

================================================== =============================
Готовые списки блокировки (реклама, отслеживание, вредоносное ПО/фишинг) – рекомендуемые источники
================================================== =============================

dnscrypt-proxy отлично работает с предварительно созданными списками блокировки доменов. Это позволяет блокировать рекламу, трекеры и известные вредоносные/фишинговые домены на уровне DNS.

Важное замечание:
  • DNS-списки блокируют только домены, а не контент внутри домена.
  • Чем больше/агрессивнее список, тем выше риск того, что легитимные веб-сайты/приложения перестанут корректно работать (ложные срабатывания).
  • Поэтому всегда включайте список разрешенных имен (allowed-names.txt) для правильного определения исключений.

Рекомендуемые списки/проекты
  • DNSCrypt "mybase"
Большой, предварительно созданный список доменов из экосистемы DNSCrypt.
URL:
Код:
https://download.dnscrypt.info/blacklists/domains/mybase.txt
  • OISD
Очень распространённый DNS-список блокировки, ориентированный на минимизацию сбоев. Обычно хороший выбор для приёмников/семейных пользователей.
Домашняя страница:
Код:
https://oisd.nl/
  • StevenBlack/hosts
Известный проект по сбору мусора (на основе хостов, множество вариаций). Довольно «мощный» и потенциально более ресурсоемкий в плане обслуживания, в зависимости от выбранной вариации.
Проект:
Код:
https://github.com/StevenBlack/hosts
Какой из них мне выбрать? (Практическая рекомендация)
  • Если вам нужна минимальная поддержка: сначала протестируйте OISD.
  • Если вам нужна большая универсальная база данных: mybase — это хорошая отправная точка.
  • Если вам нужна максимальная частота блокировок и вы готовы мириться с ложными срабатываниями: StevenBlack/hosts (а затем добавьте список разрешенных хостов).

Интеграция в образ OpenATV (основной принцип)
Вы настроили переадресацию DNS на 127.0.0.1:53. Обычно этого достаточно:
  • Сохраните один или несколько списков в локальный файл (например, /etc/dnscrypt-proxy/blocked-names.txt).
  • Активируйте этот файл в dnscrypt-proxy.toml (см. раздел «Списки блокировки/разрешения»).
  • Перезапустите службу (скрипт инициализации), чтобы список был перезагружен.

Примечание относительно обновлений:
Списки блокировки регулярно меняются. Рекомендуется использовать простой механизм обновления (например, периодически через cron/скрипт), который обновляет файл, а затем перезапускает dnscrypt-proxy. Важно: Обновления могут привести к появлению новых ложных срабатываний, поэтому список разрешенных адресов необходим, если система должна оставаться безопасной для семейного использования.

================================================== =============================
Ключевые параметры конфигурации (dnscrypt-proxy.toml) – для OpenATV
================================================== =============================

A) Слушатель
В вашей конфигурации сервер имен фиксирован на 127.0.0.1:53. Следовательно, dnscrypt-proxy должен прослушивать этот сервер:
Код:
listen_addresses = ['127.0.0.1:53']
B) Выбор резолвера
Если параметр server_names оставлен пустым, dnscrypt-proxy автоматически выберет подходящие резолверы из включенных источников.
Код:
# server_names = ['cloudflare', 'scaleway-fr']
Важные фильтры (типичные значения по умолчанию, в зависимости от цели):
Код:
ipv4_servers = true
ipv6_servers = false
dnscrypt_servers = true
doh_servers = true

require_nolog = true
require_nofilter = true
require_dnssec = false
C) Начальная загрузка (для запуска/загрузки списков)
Для первоначального запуска и обновления списков резолверов dnscrypt-proxy может потребоваться использование «обычных» DNS-серверов в качестве начальных. Это не ваши фактические резолверы.
Код:
bootstrap_resolvers = ['9.9.9.11:53', '8.8.8.8:53']
ignore_system_dns = true
netprobe_timeout = 60
netprobe_address = '9.9.9.9:53'
D) Кэш (для повышения производительности)
Код:
cache = true
cache_size = 4096
E) Активировать списки блокировки/разрешения (файлы)
Укажите файлы в конфигурации:
Код:
[blocked_names]
blocked_names_file = '/etc/dnscrypt-proxy/blocked-names.txt'

[allowed_names]
allowed_names_file = '/etc/dnscrypt-proxy/allowed-names.txt'
================================================== =============================
Интерфейс мониторинга (веб-интерфейс) – Доступ, имя пользователя/пароль
================================================== =============================



dnscrypt-proxy может предоставлять веб-интерфейс для мониторинга (статус, кэш и, при необходимости, журнал запросов). Эта функция отключена по умолчанию и должна включаться только по желанию пользователя.

Пример конфигурации:
Код:
[monitoring_ui]
enabled = true
listen_address = "0.0.0.0:9012"
username = "root"
password = "enigma2"
tls_certificate = ""
tls_key = ""
enable_query_log = true
privacy_level = 1
Важные примечания:
  • Если установлено значение username = "", аутентификация отключена (не рекомендуется).
  • Необходимо изменить учетные данные для входа по умолчанию.
  • listen_address = "0.0.0.0:9012" означает: доступ из локальной сети разрешен.
  • privacy_level:

◦ 0 = Полная информация (включая IP-адреса клиентов)
◦ 1 = IP-адреса клиентов анонимизированы (по умолчанию)
◦ 2 = Только агрегированная статистика (максимальная конфиденциальность)
  • Параметр enable_query_log отображает последние запросы в пользовательском интерфейсе — это полезно для отладки, но является конфиденциальной информацией (для защиты данных).

================================================== =============================
Практические советы по поддержке/устранению неполадок
================================================== =============================

Если "ничего больше не работает" (нет разрешения имен):
  • Проверьте, запущен ли демон dnscrypt-proxy (скрипт инициализации/статус службы).
  • Проверьте журналы на наличие ошибок (например, "недоступен резолвер", "ошибка синтаксиса конфигурации").
  • Если затронуты только отдельные веб-сайты: проверьте списки блокировки/фильтры и, при необходимости, создайте список разрешенных сайтов.
  • Включайте IPv6 только в том случае, если он надежно доступен.

================================================== =============================
Ссылки на исходный код (для технических специалистов)
================================================== =============================

Проект: https://github.com/DNSCrypt/dnscrypt-proxy
Документация: https://dnscrypt.info/doc
Списки блокировки (DNSCrypt): https://download.dnscrypt.info/blacklists/
Пользовательский интерфейс мониторинга: https://github.com/DNSCrypt/dnscrypt.../monitoring-UI
Вики/Документация: https://github.com/DNSCrypt/dnscrypt-proxy/wiki
Конфигурация (Вики): https://github.com/DNSCrypt/dnscrypt-proxy/configure
Списки/источники резолверов: https://github.com/DNSCrypt/dnscrypt-proxy/on-Sources
Публичные резолверы (веб-просмотр): https://dnscrypt.info/public-servers
Списки резолверов (репозиторий): https://github.com/DNSCrypt/dnscrypt-resolvers
Статус/Мониторинг (публичный): https://status.dnscrypt.info

Последний раз редактировалось kosmos17; Вчера в 18:07.
  Ответить в расширенном режиме
2 пользователя(ей) сказали cпасибо:
petrimail (Вчера), любитель ств (27.12.2025)
 
Время генерации страницы 0.21259 секунды с 12 запросами