DNS през HTTPS на Linux

DNS над HTTPS (DoH) е експериментален протокол, който в момента се тества от големи компании, включително Google, Mozilla и CloudFlare. Протоколът помага да се предотврати прихващане и подправяне на DNS отговори.
В момента броят на публичните сървъри за доверие е много ограничен, както и броят на клиентите, поддържащи DoH. Въпреки това, ентусиастите вече могат да изпробват протокола в действие, който ще бъде разгледан по-долу.
Поддръжката за DNS през HTTPS е налична в браузъра Mozilla Firefox за Windows, Linux и Android. В допълнение, в хранилищата на Ubuntu 18.04 има dnss прокси сървър, който ви позволява да организирате DNS заявки до DoH сървъра (и обратно, но за това някой друг път). Няма да конфигурираме Firefox, тъй като това е прекалено голям сценарий, но ние сме заинтересовани да пренасочим всички заявки към DoH сървъра от Google. Затова инсталирайте dnss:
sudo apt install dnssВеднага след инсталирането получаваме грешка: по подразбиране dnss сокетът вече е взет от resolvd процеса от systemd. За да се реши този проблем, dnss трябва да се презареди в друг сокет. Първо копирайте системния блок:
sudo cp /lib/systemd/system/dnss.socket /etc/systemd/system/dnss.socketСлед това отворете нов файл в редактора:
sudo nano -w /etc/systemd/system/dnss.socketИ го направете във формат:
[Socket]
ListenDatagram=127.0.0.255:53
ListenStream=127.0.0.255:53
[Install]
WantedBy=sockets.targetПрепоръчително е да оставите порта 53, а IP адресът – всеки свободен в интерфейса на обратната връзка. След това препрочитаме системната конфигурация:
systemctl daemon-reloadСлед това рестартирайте dnss:
systemctl restart dnss.socketСлед това остава да зададете IP адреса „127.0.0.255“ (или този, който сте избрали) в настройките на интернет връзката. След това можете да го използвате. Статистиката за използването на dnss е достъпна на адрес „http://127.0.0.1:9981“. Този адрес може да бъде променен във файла „/etc/default/dnss“.

В случай на проблеми може да ги видите с командата:
journalctl -xe -u dnss.service




