Частный DNS-сервер с помощью Pi-hole+Unbound DNS

  • Автор темы Автор темы ADMIN
  • Дата начала Дата начала

ADMIN

Administrator
ADMIN
Регистрация
18 Окт 1989
Сообщения
1,408
Реакции
93
Баллы
48
☑ ДЕПОЗИТ
0$
9c48bf34e8ac35d4a3008.png



Pi-hole - это сетевое программное обеспечение с открытым исходным кодом для блокировки рекламы и вредоносных доменов в вашей сети, предотвращая DNS-запросы для доменов, которые связаны с вредоносными программами, рекламой, отслеживанием.

Он похож на популярные браузерные расширения Adblock Plus и uBlock Origin, которые вы не контролируете и не знаете, что они могут блокировать, а что нет. Некоторые называют блокировщики рекламы “де-факто рекламными сетями” за то, что некоторым платят за занесение их сайтов в белый список, например, Google платит Adblock Plus за показ их рекламы.

Особенности Pi-hole:

  • Прост в установке. Установка происходит в одну команду и сразу после нее Pi-hole готов к работе.
  • Удаляет рекламу и трекеры в тех местах, где традиционные браузерные плагины блокировки рекламы не могут этого сделать.
  • Pi-hole блокирует рекламу в видео на YouTube, смарт-телевизорах и мобильных приложениях. Блокировка рекламы происходит на сетевом уровне (до того, как она достигнет устройства).
  • Может выступать в качестве второй линии защиты от вредоносных программ и вирусов, поскольку он может блокировать известные вредоносные домены и серверы используемые ботнетами.
  • Блокировка рекламы распространяется на всю вашу сеть - включая смарт-телевизоры и другие интеллектуальные устройства

Установка Pi-Hole​

Воспользуемся официальным установщиком Pi-Hole:

curl -sSL https://install.pi-hole.net | bash

Начнется установка Pi-hole в процессе которой нам нужно будет настроить несколько параметров.

6ffd9b669b89f54280832.png

На этапе выбора интерфейса выбираем wg0 если вы планируете использовать свой DNS сервер вместе с Wireguard

8fc7fe47c3ad09560e823.png

Выбираем DNS-провайдера. Можете выбрать любого, например Quad9, далее мы настроим и будем использовать наш собственный сервер, так что этот параметр не столь важен.

82b12818ebbe5f44bdb21.png

Выбираем все доступные виды блокировок.

Позже через веб-интерфейс мы добавим дополнительно несколько списков для блокировки.

6b883817c81e30e1bba4f.png

Для возможности администрировать сервер через веб-интерфейс, выберите On

7463fc324b004b4ec597b.png

и устанавливаем веб сервер

4e4b404c28f5066e420e1.png

включаем или отключаем ведение логов

5df8251b3e762e1ff6966.png

Далее выбираем, какой уровень детализации нам нужен в статистике Pi-hole. Уровень конфиденциальности может быть изменен в любое время через веб интерфейс. Подробнее читайте по ссылке https://docs.pi-hole.net/ftldns/privacylevels/

d55b6d9f86466bacba452.png

На этом установка завершена и нам будет показан пароль веб-панели администратора.

7ac475ad8b77999fd768b.png

Его необходимо изменить командой:

pihole -a -p

Теперь нужно настроить unbound в качестве собственного рекурсивного DNS-сервера, который мы будем использовать вместо общедоступного DNS-сервера. Это поможет еще больше повысить конфиденциальность DNS-запросов.

Установка и настройка Unbound DNS​

Вкратце, Unbound - это рекурсивный DNS, который фокусируется на безопасности и конфиденциальности.

Установим Unbound DNS:

sudo apt install unbound unbound-host -y

Скачиваем список DNS-серверов:

curl -o /var/lib/unbound/root.hints https://www.internic.net/domain/named.cache

Открываем конфиг /etc/unbound/unbound.conf.d/pi-hole.conf и добавляем следующее:

server:
# if no logfile is specified, syslog is used
# logfile: "/var/log/unbound/unbound.log"
verbosity: 1
port: 5353

do-ip4: yes
do-udp: yes
do-tcp: yes

# may be set to yes if you have IPv6 connectivity
do-ip6: no

# use this only when you downloaded the list of primary root servers
root-hints: "/var/lib/unbound/root.hints"

# respond to DNS requests on all interfaces
interface: 0.0.0.0
max-udp-size: 3072

# IPs authorised to access the DNS Server
access-control: 0.0.0.0/0 refuse
access-control: 127.0.0.1 allow
access-control: 10.20.20.0/24 allow

# hide DNS Server info
hide-identity: yes
hide-version: yes

# limit DNS fraud and use DNSSEC
harden-glue: yes
harden-dnssec-stripped: yes
harden-referral-path: yes

# add an unwanted reply threshold to clean the cache and avoid, when possible, DNS poisoning
unwanted-reply-threshold: 10000000

# have the validator print validation failures to the log val-log-level: 1
# don't use Capitalisation randomisation as it known to cause DNSSEC issues sometimes
# see https://discourse.pi-hole.net/t/unbound-stubby-or-dnscrypt-proxy/9378 for further details
use-caps-for-id: no

# reduce EDNS reassembly buffer size
# suggested by the unbound man page to reduce fragmentation reassembly problems
edns-buffer-size: 1472

# TTL bounds for cache
cache-min-ttl: 3600
cache-max-ttl: 86400

# perform prefetching of close to expired message cache entries
# this only applies to domains that have been frequently queried
prefetch: yes
prefetch-key: yes
# one thread should be sufficient, can be increased on beefy machines
num-threads: 1
# ensure kernel buffer is large enough to not lose messages in traffic spikes
so-rcvbuf: 1m

# ensure privacy of local IP ranges
private-address: 192.168.0.0/16
private-address: 169.254.0.0/16
private-address: 172.16.0.0/12
private-address: 10.0.0.0/8
private-address: fd00::/8
private-address: fe80::/10

Перeзагружаем сервер.

reboot

После перезагрузки проверяем, работает ли приведенная выше конфигурация.

dig pi-hole.net @127.0.0.1 -p 5353
dig sigok.verteiltesysteme.net @127.0.0.1 -p 5353

Вывод должен содержать "status: NOERROR"

dig sigfail.verteiltesysteme.net @127.0.0.1 -p 5353

Вывод должен содержать "status: SERVFAIL":

Если эти проверки прошли успешно, то мы можем перейти в веб-интерфейс и продолжить настройку там.

Настройка Pi-Hole​

Наконец, нам нужно настроить Pi-Hole для обращения к собственному DNS-серверу. Введя в браузере адрес http://<your_server_ip>/admin войдите используя пароль администратора, который вы сохранили ранее. Затем нажмите Настройки слева и DNS в верхней части страницы

d01d94254662eb846ded0.png

Убираем все галочки в левой колонке Upstream DNS Servers, а в правой Custom 1 прописываем 127.0.0.1#5353. Убедитесь, что Pi-Hole настроен только на прослушивание запросов в интерфейсе Wireguard, в противном случае вы откроете свой сервер для атак усиления DNS и других проблем.

ddc5f9b3108a070d5ced3.png

Чуть ниже ставим галочку Use DNSSEC и нажимаем Save .

Настройка списков блокировки​

Переходим в раздел Group management --> Adlist и в строку Address: вносим свои списки блокировки, например следующие:

https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt

https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts

https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt

https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts

https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.2o7Net/hosts

https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt

https://raw.githubusercontent.com/D...rsions Anti-Malware List/AntiMalwareHosts.txt

https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Risk/hosts

https://zerodot1.gitlab.io/CoinBlockerLists/hosts_browser

https://www.github.developerdan.com/hosts/lists/ads-and-tracking-extended.txt

https://v.firebog.net/hosts/Easylist.txt


В сети можно найти множество других списков блокировки под разные задачи. Например, на сайте https://firebog.net/ или как вариант, можно посмотреть какие списки использует ваш плагин для блокировки рекламы в браузере.

Подключение к VPN​

На этом этапе сервер полностью настроен. Осталось добавить в конфигурационный файл Wireguard на ПК или мобильном устройстве наш DNS. Для этого открываем файл /etc/wireguard/wg0-client.conf или редактируем конфиг в приложении на телефоне, меняем DNS на 10.20.20.1

Теперь когда Wireguard включен, мы обращаемся к нашему персональному DNS серверу.
 
Автоматический гарант это финансовая безопасность: Покупатель может быть уверен, что его деньги не попадут к продавцу до того, как он получит и проверит товар или услугу. Продавец, в свою очередь, защищен от не оплаты, так как гарант подтверждает наличие средств у покупателя до начала выполнения обязательств.
Назад
Сверху