DNS через HTTPS

Данное решение поможет настроить службу DNS используя протокол https.
Это решение будет полезно в случаях:
1. Фильтруется трафик по протоколу UDP или протокол UDP полностью заблокирован. Используя dns proxy трафик будет передаваться по протоколу tcp.
2. Есть потребность скрыть DNS трафик. Весь DNS трафик будет идти через защищенный протокол https.

Приступим к настройке.

1. Подготовка сервера

Проверить файл /etc/resolv.conf в котором должен быть указан локальный DNS резолвер

nameserver 127.0.0.1


Отключить все локальные DNS резолверы такие как unbound, bind.
В данном примере отключение unbound выполняется командами:

systemctl disable unbound.service
systemctl stop unbound.service


2. Настройка dnscrypt proxy для работы DNS через HTTPS

Скачиваем пакет dnscrypt-proxy-linux_x86_64-2.1.1.tar.gz

wget --no-check-certificate https://blog.vpsville.ru/uploads/dnscrypt-proxy-linux_x86_64-2.1.1.tar.gz


Распаковать архив, создать конфигурационный файл (достаточно конфигурационного файла по умолчанию) и запустить dnscrypt proxy:

tar -xf dnscrypt-proxy-linux_x86_64-2.1.1.tar.gz
cd linux-x86_64/
cp example-dnscrypt-proxy.toml dnscrypt-proxy.toml
./dnscrypt-proxy


DNS через HTTPS настроен.

PS. так же запустить dnscrypt-proxy можно в screen если этот пакет установлен в системе

/usr/bin/screen -S dnsproxy /root/linux-x86_64/dnscrypt-proxy


По умолчанию весь DNS трафик будет передаваться по защищенному протоколу https (порт 443) по протоколам udp и tcp.
Для отключения udp трафика в конфигурационном файле dnscrypt-proxy.toml нужно изменить параметр force_tcp на true.
Если требуется включить использование DNS по протоколу IPv6 параметр ipv6_servers так же установить true.

Для автоматического запуска при старте системы лучше всего настроить dnscrypt-proxy в качестве демона используя systemd.

Создаем файл и ставим ему права:

nano /etc/systemd/system/dns.service


Содержимое:
[Unit]
Description=dnscrypt-proxy
After=network.target
[Service]
Type=oneshot
User=root
ExecStart=/root/linux-x86_64/dnscrypt-proxy
[Install]
WantedBy=multi-user.target


Меняем права доступа:
chmod 664 /etc/systemd/system/dns.service


Проверяем на ошибки и запускаем:
systemctl daemon-reload
systemctl start dns.service


Добавляем сервис для автоматического запуска в systemd
systemctl enable dns.service

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.