====== 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< 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< 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