Настройка DNS over HTTPS на VPS: делаем свои запросы безопасными

ГлавнаяНастройка DNS over HTTPS на VPS: делаем свои запросы безопасными

Содержание

Когда я только начала копаться в настройках DNS, казалось, что это какая-то закулисная магия. Просто прописываешь IP-шники — и всё работает. Но как только я углубилась, оказалось, что DNS — это чуть ли не первое, что можно перехватить и подменить. А если на сервере крутится что-то важное (а у нас же всегда крутится), то безопасность должна начинаться именно с него. Так что сегодня — про то, как настроить DNS over HTTPS (DoH) на VPS и перестать зависеть от публичных DNS с сомнительной прозрачностью.


Что такое DNS over HTTPS простыми словами?

DNS over HTTPS (DoH) — это технология, которая шифрует DNS-запросы и отправляет их по HTTPS. Обычно, когда вы вводите сайт (допустим,

example.com
), ваш компьютер делает запрос к DNS-серверу, чтобы узнать IP-адрес сайта. Проблема в том, что обычные DNS-запросы не шифруются, и любой, кто сидит между вами и интернетом, может их подслушивать или даже подменить.

С DoH — всё иначе. DNS-запросы идут по тому же безопасному каналу, что и HTTPS, и даже провайдеру сложно понять, какие домены вы запрашиваете. А это уже уровень безопасности, достойный и для личных проектов, и для клиентов.


Зачем поднимать свой DoH-прокси?

Многие просто прописывают

1.1.1.1
(Cloudflare),
9.9.9.9
(Quad9) или
94.140.14.14
(AdGuard DNS), и всё. Но если вы:

  • используете VPS как прокси или туннель;
  • парсите сайты, и важно, чтобы DNS-запросы тоже шли шифрованными;
  • или просто не хотите, чтобы даже DNS-шлюз знал, что вы делаете, —

то лучше всего поднять свой DNS-прокси через DoH. Именно так я и сделала. У меня на VPS теперь крутится

dnsproxy
, а вся телеметрия завязана на
AdGuard
,
Cloudflare
и резервный
Quad9
.


Что потребуется

  • VPS с Ubuntu 22.04 (или другой Linux — команда подстроится);
  • root-доступ;
  • установленный
    dnsproxy
    или
    dnscrypt-proxy
    ;
  • желательно —
    systemd
    для автозапуска сервиса.

Установка dnsproxy на VPS (Ubuntu)

Я выбрала

dnsproxy
от AdGuard — он лёгкий, понятный и поддерживает как DNS over HTTPS, так и DNS over TLS, если вдруг вы захотите переключиться.

  1. Скачиваем последнюю версию:
wget https://github.com/AdguardTeam/dnsproxy/releases/latest/download/dnsproxy-linux-amd64 -O dnsproxy chmod +x dnsproxy sudo mv dnsproxy /usr/local/bin/
  1. Создаём конфиг-файл:
sudo nano /etc/dnsproxy.conf

Пример содержимого:

listen=127.0.0.1:5353 upstream=https://dns.adguard.com/dns-query upstream=https://1.1.1.1/dns-query fallback=https://9.9.9.9/dns-query timeout=10s
  1. Сервис для systemd:
sudo nano /etc/systemd/system/dnsproxy.service

Содержимое:

[Unit] Description=DNSProxy After=network.target [Service] ExecStart=/usr/local/bin/dnsproxy --config-path /etc/dnsproxy.conf Restart=on-failure [Install] WantedBy=multi-user.target
  1. Активируем:
sudo systemctl daemon-reexec sudo systemctl enable --now dnsproxy

Проверка работы

Теперь у вас запущен локальный DoH-прокси. Чтобы направить на него запросы:

sudo nano /etc/systemd/resolved.conf

Добавьте или измените строку:

DNS=127.0.0.1

Перезапустите:

sudo systemctl restart systemd-resolved

Проверяем:

dig google.com @127.0.0.1 -p 5353

Если всё работает — поздравляю, вы только что настроили DNS over HTTPS-сервер на своём VPS.


Таблица сравнения популярных DNS-серверов для DoH

DNS-провайдерIP-адресПоддержка DoHПриватностьЗамедления
Cloudflare
1.1.1.1
ОтличнаяНизкие
AdGuard
94.140.14.14
Высокая (фильтрация)Средние
Quad9
9.9.9.9
Отличная, без логовСредние
Google
8.8.8.8
СомнительнаяНизкие

Почему не стоит доверять публичным DNS вслепую

Я не параноик, но видела, как Cloudflare временно откатывал изменения, а Google DNS может подменить ответы в некоторых юрисдикциях. С

AdGuard
— фильтрация работает отлично, но не все запросы проходят (особенно по API). Поэтому:

  • для личного использования — AdGuard или Quad9;
  • для парсинга — свой VPS с dnsproxy;
  • для высокой скорости — Cloudflare.

Дополнительные советы

  • Используйте
    tcpdump
    или
    dig
    для диагностики.
  • Rclone можно настроить с
    --dns
    опцией, чтобы использовать конкретный DoH-прокси.
  • Если ваш роутер поддерживает dns-over-https, можно перенаправить весь трафик с домашней сети через ваш VPS.

Итого…

Да, это не настройка «в один клик», но если вы хотя бы раз сталкивались с подменой DNS или у вас случались проблемы при деплое, то вы знаете, насколько важно, чтобы запрос

dns.adguard.com
не шёл открытым текстом. VPS легко справляется с этой задачей. А вместе с
dnsproxy
и парой минут настроек — у вас появляется персональный DoH-сервер, которому вы можете доверять.

Делаем год чуть длиннее

365 дней VPS? А как насчёт 395?

Месяц в подарок
COPIED
NEWCOMM COPIED