Як увімкнути DNS over TLS у systemd-resolved

Як увімкнути DNS over TLS у systemd-resolved
Категорії: Безпека та захист

Щоразу, коли ви відкриваєте сайт, комп’ютер питає в DNS-сервера, яка адреса за цією назвою ховається. DNS — це «телефонна книга» інтернету. Звичайні запити летять відкритим текстом, тож провайдер чи власник Wi-Fi бачить усі сайти, які ви відвідуєте. DNS over TLS шифрує ці запити. У Ubuntu, Linux Mint і Fedora за DNS відповідає служба systemd-resolved, і налаштувати DNS на шифрування в ній можна кількома рядками.

Крок 1. Перевірте службу

Відкрийте термінал (вікно, в яке вводять команди) і введіть:

systemctl is-active systemd-resolved
resolvectl status

Перша команда має відповісти active. Друга покаже, які DNS-сервери зараз використовує система. Якщо служби немає, ця інструкція вам не підійде.

Крок 2. Виберіть DNS-сервер із підтримкою шифрування

Підтримують шифрований DNS багато відомих сервісів:

  • Cloudflare: 1.1.1.1#cloudflare-dns.com
  • Google: 8.8.8.8#dns.google
  • Quad9: 9.9.9.9#dns.quad9.net

Частина після знака # — це назва сервера: за нею система перевіряє, що вона розмовляє саме з ним, а не з підробкою.

Крок 3. Створіть файл налаштувань

sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/dot.conf

Вставте в нього такі рядки, взявши, наприклад, сервери Cloudflare:

[Resolve]
DNS=1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com
Domains=~.
DNSOverTLS=yes

Що означають рядки: DNS — сервери, DNSOverTLS=yes — вимагати шифрування, а Domains=~. — використовувати ці сервери для всіх адрес, а не лише тих, що прислав роутер. Збережіть файл (Ctrl+O, Enter) і вийдіть (Ctrl+X).

Крок 4. Перезапустіть службу

sudo systemctl restart systemd-resolved

Крок 5. Перевірте, що шифрування працює

resolvectl status
resolvectl query kernelka.com.ua

У розділі Global має бути рядок Protocols із позначкою +DNSOverTLS, а в переліку серверів — назви на кшталт 1.1.1.1#cloudflare-dns.com. Друга команда покаже адресу сайту: якщо вона відповіла, шифрований DNS працює.

Режими DNSOverTLS

  • yes — лише шифрований зв’язок. Якщо сервер недоступний, сайти не відкриються.
  • opportunistic — спершу спроба з шифруванням, а якщо не вийшло, звичайний запит.
  • no — без шифрування.

Деякі мережі блокують порт 853, який використовує DNS over TLS. Якщо після увімкнення інтернет зник, замініть yes на opportunistic.

Як усе скасувати

sudo rm /etc/systemd/resolved.conf.d/dot.conf
sudo systemctl restart systemd-resolved

Поширені запитання

Інтернет зник після змін

Швидше за все, мережа блокує шифрований DNS. Поставте opportunistic або видаліть файл і перезапустіть службу, як показано вище.

Налаштування не діють

Перевірте, що файл /etc/resolv.conf веде до служби systemd-resolved: команда ls -l /etc/resolv.conf має показати посилання на stub-resolv.conf. Якщо там щось інше, програми питають DNS не через цю службу.

Чи шифрує це весь інтернет-трафік?

Ні, лише DNS-запити. Адреси сайтів ховаються від провайдера та власника Wi-Fi, але сервер DNS, який ви вибрали, їх бачить, тож обирайте сервіс, якому довіряєте.

Браузер усе одно ходить своїм DNS

Так буває: у Firefox і Chrome є власний захищений DNS (DNS over HTTPS). Він налаштовується окремо в налаштуваннях браузера й не залежить від системи.

Порада від Kernelka

Спершу ввімкніть режим opportunistic і подивіться, чи все працює. Коли переконаєтеся, що в усіх ваших мережах відкриваються сайти, замініть його на yes: так шифрування стане обов’язковим.

Підсумок

  • DNS over TLS шифрує запити до DNS-сервера, і їх не бачать провайдер та власник Wi-Fi.
  • Налаштування лежить у файлі /etc/systemd/resolved.conf.d/dot.conf.
  • Потрібні рядки: DNS=, Domains=~. і DNSOverTLS=yes.
  • Після змін перезапустіть systemd-resolved.
  • Результат перевіряє команда resolvectl status: шукайте +DNSOverTLS.

Прокоментувати

На сайті відображається лише твоє ім'я та коментар. Електронна пошта використовується виключно для зв'язку з тобою за потреби.