- PVSM.RU - https://www.pvsm.ru -
В этой статье хотелось бы рассмотреть нововведения Dnscrypt, на конкретном примере, который наверняка окажется для кого-то полезным.
Для тех, кто не знает, Dnscrypt — это уникальный протокол шифрования DNS-трафика. Он даёт возможность защитить DNS-коммуникации от перехватов и подмены, и к примеру, обойти блокировки реализуемые на уровне DNS-запросов.
Из основных возможностей новой версии, прежде всего, хочется отметить возможность коммуникации с сервером по протоколу TCP, что делает такой канал более стабильным и менее заметным.
В этой статье, воспользуемся этим преимуществом и для разнообразия/пользы ограничим доступ к рекламным доменам.
В новой версии, переписанной автором на языке 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 будет принимать обычные 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 [1]. В интернете можно найти множество открытых источников, предоставляющих доступ к списку нежелательных доменов. Я пользуюсь вот этим репозиторием [2], предназаначенным для блокирования рекламы и прочего малозначимого контента. Репозиторий содержит скрипт, написанный на языке Python, который обновляет действующий hosts-файл в системе, согласно, собственно репозиторию. Чтобы автоматизировать этот процесс, достаточно создать в системе запланированное задание. Я делаю это так:
# crontab -e
@daily python /путь/к/репозиторию/hosts/updateHostsFile.py -ar
Параметр "-a" указывает скрипту исполнение в автоматическом режиме, то есть без необходимости подтверждения действий пользователем.
Параметр "-r" указывает скрипту заменять hosts-файл, действующий в системе.
Спасибо за внимание!
Автор: cybran24
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/275805
Ссылки в тексте:
[1] hosts: https://en.wikipedia.org/wiki/Hosts_(file)
[2] репозиторием: https://github.com/StevenBlack/hosts
[3] Источник: https://habrahabr.ru/post/351664/?utm_campaign=351664
Нажмите здесь для печати.