В этой статье хотелось бы рассмотреть нововведения Dnscrypt, на конкретном примере, который наверняка окажется для кого-то полезным.
Для тех, кто не знает, Dnscrypt — это уникальный протокол шифрования DNS-трафика. Он даёт возможность защитить DNS-коммуникации от перехватов и подмены, и к примеру, обойти блокировки реализуемые на уровне DNS-запросов.
Из основных возможностей новой версии, прежде всего, хочется отметить возможность коммуникации с сервером по протоколу TCP, что делает такой канал более стабильным и менее заметным.
В этой статье, воспользуемся этим преимуществом и для разнообразия/пользы ограничим доступ к рекламным доменам.
В новой версии, переписанной автором на языке Go, настройки Dnscrypt-proxy хранятся в конфигурационном файле «dnscrypt-proxy.toml». Рассмотрим только интересующие параметры:
К слову, теперь DNSCrypt кэширует запросы и обновляет список серверов без необходимости какой-либо дополнительной настройки.
Dnsmasq будет принимать обычные DNS-запросы на 53 порте протокола UDP и перенаправлять их на DNSCrypt-proxy сервер.
Заблокировать рекламу проще всего по средствам файла hosts. В интернете можно найти множество открытых источников, предоставляющих доступ к списку нежелательных доменов. Я пользуюсь вот этим репозиторием, предназаначенным для блокирования рекламы и прочего малозначимого контента. Репозиторий содержит скрипт, написанный на языке Python, который обновляет действующий hosts-файл в системе, согласно, собственно репозиторию. Чтобы автоматизировать этот процесс, достаточно создать в системе запланированное задание. Я делаю это так:
Параметр "-a" указывает скрипту исполнение в автоматическом режиме, то есть без необходимости подтверждения действий пользователем.
Параметр "-r" указывает скрипту заменять hosts-файл, действующий в системе.
Спасибо за внимание!
Для тех, кто не знает, Dnscrypt — это уникальный протокол шифрования DNS-трафика. Он даёт возможность защитить DNS-коммуникации от перехватов и подмены, и к примеру, обойти блокировки реализуемые на уровне DNS-запросов.
Из основных возможностей новой версии, прежде всего, хочется отметить возможность коммуникации с сервером по протоколу TCP, что делает такой канал более стабильным и менее заметным.
В этой статье, воспользуемся этим преимуществом и для разнообразия/пользы ограничим доступ к рекламным доменам.
Dnscrypt-proxy
В новой версии, переписанной автором на языке Go, настройки Dnscrypt-proxy хранятся в конфигурационном файле «dnscrypt-proxy.toml». Рассмотрим только интересующие параметры:
# Значение true включит проверку DNSSEC
require_dnssec = false
# Значение true позволит прокси серверу выполнять DNS-запросы по TCP.
force_tcp = false
# Здесь можно указать незашифрованный DNS-сервер, который будет использоваться в случае недоступности сервера DNSCrypt.
fallback_resolver = '9.9.9.9:53'
К слову, теперь DNSCrypt кэширует запросы и обновляет список серверов без необходимости какой-либо дополнительной настройки.
Dnsmasq
Dnsmasq будет принимать обычные DNS-запросы на 53 порте протокола UDP и перенаправлять их на DNSCrypt-proxy сервер.
/etc/dnsmasq.conf
no-resolv
# Адрес прокси-сервера DNSCrypt
server=127.0.0.1#5353
listen-address=127.0.0.1
proxy-dnssec
Блокирование рекламы
Заблокировать рекламу проще всего по средствам файла hosts. В интернете можно найти множество открытых источников, предоставляющих доступ к списку нежелательных доменов. Я пользуюсь вот этим репозиторием, предназаначенным для блокирования рекламы и прочего малозначимого контента. Репозиторий содержит скрипт, написанный на языке Python, который обновляет действующий hosts-файл в системе, согласно, собственно репозиторию. Чтобы автоматизировать этот процесс, достаточно создать в системе запланированное задание. Я делаю это так:
# crontab -e
@daily python /путь/к/репозиторию/hosts/updateHostsFile.py -ar
Параметр "-a" указывает скрипту исполнение в автоматическом режиме, то есть без необходимости подтверждения действий пользователем.
Параметр "-r" указывает скрипту заменять hosts-файл, действующий в системе.
Спасибо за внимание!