DNS-Over-HTTPS на Pi-hole

DNS-Over-HTTPS - это протокол, позволяющий выпонять DNS-запросы по протоколу HTTPS, т.е., используя DNS-Over-HTTPS, вы защищаете свои DNS-запросы от просмотра и подмены.

Pi-hole можно относительно легко настроить для работы с DNS-Over-HTTPS proxy от Cloudflare. После настройки мы получим блокировщик рекламы, который отправляет все разрешенные DNS-запросы через HTTPS. Таким образом, вы сможете скрыть свои запросы даже от своего интернет-провайдера.

Для работы с DNS-Over-HTTPS proxy от Cloudflare используется разработанная Cloudflare утилита cloudflared, её необходимо будет установить в систему, на которой работает pi-hole.

Примечание: cloudflared можно настроить для работы и с другими DoH-провайдерами, например, с Google's DNS-Over-HTTPS service (https://8.8.8.8/dns-query).

Установка cloudflared

Выбираем подходящий нам установщик со страницы: https://developers.cloudflare.com/argo-tunnel/downloads и скачиваем его:
(можно использовать репозиторий: https://pkg.cloudflare.com/)

wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.deb

Устанавливаем:

sudo dpkg -i cloudflared-stable-linux-arm.deb

Либо так:

cloudflared для arm64 (64-bit Raspberry Pi)

wget -O cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64
sudo mv cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v

cloudflared для armhf (32-bit Raspberry Pi)

wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz
tar -xvzf cloudflared-stable-linux-arm.tgz
sudo cp ./cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v

Настройка автозапуска cloudflared

Ручная настройка

Создаем пользователя для запуска демона cloudflared

sudo useradd -s /usr/sbin/nologin -r -M cloudflared

Создаем конфигурационный файл:

sudo nano /etc/default/cloudflared

Копируем в конфигурационный файл следующие строки:

# Commandline args for cloudflared, using Cloudflare DNS
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query

Задаем права для конфигурационного файла:

sudo chown cloudflared:cloudflared /etc/default/cloudflared
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared

Создаем юнит systemd:

sudo nano /etc/systemd/system/cloudflared.service

Копируем в юнит текст:

[Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target

[Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/default/cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Запускаем демон и включаем автозагрузку:

sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared

Автоматическая настройка

Внимание: в этом случае устанвка будет произведена c правами root.

Создаем конфигурационный файл для установщика:

sudo mkdir /etc/cloudflared/
sudo nano /etc/cloudflared/config.yml

Копируем в него текст:

proxy-dns: true
proxy-dns-port: 5053
proxy-dns-upstream:
  - https://1.1.1.1/dns-query
  - https://1.0.0.1/dns-query
  #Uncomment following if you want to also want to use IPv6 for  external DOH lookups
  #- https://[2606:4700:4700::1111]/dns-query
  #- https://[2606:4700:4700::1001]/dns-query

Запускаем установку командой:

sudo cloudflared service install --legacy

Запускаем сервис и проверяем его статус:

sudo systemctl start cloudflared
sudo systemctl status cloudflared

Проверить, что все работает можно такой командой:

pi@raspberrypi:~ $ dig @127.0.0.1 -p 5053 google.com

; <<>> DiG 9.11.5-P4-5.1-Raspbian <<>> @127.0.0.1 -p 5053 google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12157
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 22179adb227cd67b (echoed)
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             191     IN      A       172.217.22.14

;; Query time: 0 msec
;; SERVER: 127.0.0.1#5053(127.0.0.1)
;; WHEN: Wed Dec 04 09:29:50 EET 2019
;; MSG SIZE  rcvd: 77

Настройка Pi-hole

Необходимо указать наш сервис cloudflared в качестве вышестоящего DNS-сервера (Settings - DNS):

Настройки вышестоящего DNS-сервера

На этом настройка завершена. Дополнительную информацию можно получить на странице руководства: https://docs.pi-hole.net/guides/dns/cloudflared/

Ссылки

Только авторизованные участники могут оставлять комментарии.
pi-hole/dns-over-https.txt · Последнее изменение: 2023/10/10 18:05 — 127.0.0.1
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki