PowerDNS Recursor
Розгортаємо високопродуктивний безкоштовний DNS-сервер
All we do from sudo user!!!
“sudo su”!
В репозиторіях є зазвичай, застаріла версія, тому заглянемо на сайт https://repo.powerdns.com/
Там знаходимо стабільну версію програми і застосовуємо зміни в списку репозиторіїв
sh -c 'echo "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-rec-47 main" > /etc/apt/sources.list.d/pdns.list'
tee /etc/apt/preferences.d/pdns<<EOF Package: pdns-* Pin: origin repo.powerdns.com Pin-Priority: 600 EOF
curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/powerdns.gpg --import chmod 644 /etc/apt/trusted.gpg.d/*
apt-get update apt-get install -y pdns-recursor cp -r /etc/powerdns/ /etc/powerdns.orig/
tee /etc/powerdns/recursor.conf<<EOF setgid=pdns setuid=pdns config-dir=/etc/powerdns include-dir=/etc/powerdns/recursor.d quiet=yes security-poll-suffix= EOF
nano /etc/powerdns/recursor.d/recursor.local.conf
local-address=0.0.0.0
local-port=53
nano /etc/powerdns/recursor.d/allow-from.conf
# !!! Першою лінією має бути запис "allow-from=[ip/mask]", будь-яка інша лінія як "allow-from+=[ip/mask]" (WITH "+" before "=") !!! allow-from=0.0.0.0/0 # Allow from any allow-from+=127.0.0.1/8 # Allow from loopback allow-from+=193.0.0.1/8 # Allow from arpa (PTR) allow-from+=192.168.0.1/16 # Allow from arpa (PTR)
Далі необхідно налашувати переадресацію запитів DNS на авторитарні сервери, які безпосередньо тримають зони доменів.
Тут можна піти двома шляхами на вибір:
- Перший і правильніший - налаштувати зв'язок з кореневими DNS серверами
cd /etc/powerdns/ wget ftp://ftp.rs.internic.net/domain/root.zone.gz && gunzip root.zone.gz systemctl disable systemd-resolved systemctl stop systemd-resolved ls -lh /etc/resolv.conf mv /etc/resolv.conf /etc/resolv.old.conf echo "nameserver 127.0.0.1" > /etc/resolv.conf echo "hint-file=/etc/powerdns/root.zone" >> /etc/powerdns/recursor.conf systemctl restart pdns-recursor
- Другий простіший, але менш продуктивний - переадресувати запити на інші DNS рекурсори, наприклад Cloudflare та Google
echo "forward-zones-recurse=.=1.1.1.1;1.0.0.1;8.8.8.8;8.8.4.4;" > /etc/powerdns/recursor.d/forward-zones-recurse.conf
chown -R pdns:root /etc/powerdns/ systemctl restart pdns-recursor netstat -tap | grep pdns
dig mydomain.local @127.0.0.1 dig @127.0.0.1