How to Wiki Database (change log)
http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
6.1 KiB
153 lines
6.1 KiB
====== 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/) |
|
|
|
<code>wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.deb</code> |
|
|
|
Устанавливаем: |
|
|
|
<code>sudo dpkg -i cloudflared-stable-linux-arm.deb</code> |
|
|
|
Либо так: |
|
|
|
**cloudflared для arm64 (64-bit Raspberry Pi)** |
|
<code>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</code> |
|
|
|
**cloudflared для armhf (32-bit Raspberry Pi)** |
|
<code>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</code> |
|
|
|
===== Настройка автозапуска cloudflared ===== |
|
|
|
==== Ручная настройка ==== |
|
|
|
Создаем пользователя для запуска демона cloudflared |
|
|
|
<code>sudo useradd -s /usr/sbin/nologin -r -M cloudflared</code> |
|
|
|
Создаем конфигурационный файл: |
|
|
|
<code>sudo nano /etc/default/cloudflared</code> |
|
|
|
Копируем в конфигурационный файл следующие строки: |
|
|
|
<code># 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</code> |
|
|
|
Задаем права для конфигурационного файла: |
|
|
|
<code>sudo chown cloudflared:cloudflared /etc/default/cloudflared |
|
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared</code> |
|
|
|
Создаем юнит systemd: |
|
|
|
<code>sudo nano /etc/systemd/system/cloudflared.service</code> |
|
|
|
Копируем в юнит текст: |
|
|
|
<code>[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</code> |
|
|
|
Запускаем демон и включаем автозагрузку: |
|
|
|
<code>sudo systemctl enable cloudflared |
|
sudo systemctl start cloudflared |
|
sudo systemctl status cloudflared</code> |
|
|
|
==== Автоматическая настройка ==== |
|
|
|
**Внимание:** в этом случае устанвка будет произведена c правами root. |
|
|
|
Создаем конфигурационный файл для установщика: |
|
|
|
<code>sudo mkdir /etc/cloudflared/ |
|
sudo nano /etc/cloudflared/config.yml</code> |
|
|
|
Копируем в него текст: |
|
|
|
<code>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</code> |
|
|
|
Запускаем установку командой: |
|
|
|
<code>sudo cloudflared service install --legacy</code> |
|
|
|
Запускаем сервис и проверяем его статус: |
|
|
|
<code>sudo systemctl start cloudflared |
|
sudo systemctl status cloudflared</code> |
|
|
|
Проверить, что все работает можно такой командой: |
|
|
|
<code>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</code> |
|
|
|
===== Настройка 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/\\ |