Щоразу, коли ви відкриваєте сайт, комп’ютер питає в 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.