====== DNS-Over-HTTPS на Pi-hole ====== DNS-Over-HTTPS - это протокол, позволяющий выпонять DNS-запросы по протоколу HTTPS, т.е., используя DNS-Over-HTTPS, вы защищаете свои DNS-запросы от просмотра и подмены. Pi-hole можно относительно легко настроить для работы с DNS-Over-HTTPS proxy от [[wpru>Cloudflare|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): {{pi-hole:dohconfig.png|Настройки вышестоящего DNS-сервера}}\\ На этом настройка завершена. Дополнительную информацию можно получить на странице руководства: https://docs.pi-hole.net/guides/dns/cloudflared/ ====== Ссылки ====== cloudflared (DoH) (EN): https://docs.pi-hole.net/guides/dns/cloudflared/\\