Konfigurace Pi-hole a BIND (Configure BIND with Pihole)

By | 16/12/2021

Last Updated on 20/07/2022 by administrator

Konfigurace Pi-hole a BIND (Configure BIND with Pihole)

Configure BIND with Pihole

Motivace:

Tento návod popisuje, jak zprovoznit dohromady PiHole a BIND v rámci jednoho Ubuntu serveru.

Pokud instalace Pi-Hole nebo BIND nebyla provedena, je možné ji nainstalovat a nakonfigurovat díky článkům níže:

OS:

Implementace byla prakticky prováděna na Ubuntu 20.04 LTS, postup může být aplikovatelný na Ubuntu 19.10 a nižší.

Implementace [1]:

Obě aplikace Pi-Hole a BIND zpracovávají DNS požadavky, tudíž běží na sítových portech a to UDP/53 či TCP/53. Problémem je, že pouze jedna aplikace může obyčejně běžet na jednom portu pod jedním Ubuntu serverem a jednou IP adresou. Proto je nutné změnit u jedné z aplikací tento výchozí síťový port.

V tomto případě bude zachován standardní port 53 aplikace Pi-Hole a změní se port aplikace BIND.

Princip funkce:

Všechny DNS požadavky jsou DNS klientem standardně posílány na Ubuntu server na cílovém portu TCP/53 či UDP/53. Tuto DNS zprávu zachytí aplikace Pi-Hole běžící na portu TCP/53 či UDP/53 a podle nastavení tento DNS požadavek buďto vyfiltruje, nebo přepošle na cílovém portu TCP/53 či UDP/53 pro aplikaci BIND. Ta ji podle nastavení přepošle do internetu. Vše ukazuje obrázek níže:

bind and piholeNastavení aplikace BIND:

Změna portu pro BIND se provede v souboru /etc/bind/named.conf.options.

vi /etc/bind/named.conf.options

V souboru named.conf.options je nutné přepsat port 53 na libovolný, který není OS Ubuntu používán. V tomto případě bude přepsán na port 533.

options {

listen-on port 533 { any; };
listen-on-v6 port 533 { any; };

}

Restart služby BIND:

sudo service bind9 restart

Alternativně restart pomocí:

sudo systemctl restart bind9

Nastavení aplikace Pi-hole:

Přes webové rozhraní Pi-hole v cestě Settings > DNS  zaškrtnout pouze Custom 1 pod Upstream DNS Servers a nastavit 127.0.0.1#533. Díky definici 127.0.0.1#533 Pi-hole aplikace ví, že má odchozí DNS požadavky předávat aplikaci BIND, která běží na portu TCP/533 či UDP/533:

Pi-hole with BIND

Níže je pak nutné provést rozšířené nastavení při předávání DNS dotazů z Pi-hole na BIND. V tomto případě bylo odškrtnuto Never forward reverse lookups for private IP ranges a Use DNSSEC. Pod obrázkem je vysvětlení těchto dvou možností.

Pi-hole with BIND

Never forward reverse lookups for private IP ranges

Pokud je tato možnost zaškrtla (), nebudou zasílány PTR DNS dotazy do aplikace BIND, pokud reverzní DNS dotaz obsahuje IP adresu z privátního rozsahu uvedenou níže:

  • 10.0.0.0 – 10.255.255.255 (10/8 prefix)
  • 172.16.0.0 – 172.31.255.255 (172.16/12 prefix)
  • 192.168.0.0 – 192.168.255.255 (192.168/16 prefix)

Jelikož v aplikaci BIND používám reverzní zónu z privátními IP adresami, mám tuto možnost odškrtnutou, podle obrázku výše.

Use DNSSEC

Pokud je tato možnost zaškrtla (), ověřují se DNS odpovědi a cache DNSSEC dat v tomto případě mezi aplikacemi Pi-hole a BIND. Pokud DNS zóny pod BIND aplikací máte digitálně podepsané je možné ponechat možnost zaškrtlou ().

Jelikož DNS zóny pod BIND aplikací nemám digitálně podepsáné, mám tuto možnost odškrtnutou podle obrázku výše (BIND používám lokálně a nemám jej “vystrčený do internetu” – řídím si ho sám).

Pozn. Jelikož je funkce DNSSEC defaultně zapnutá pod aplikací BIND, DNS odpovědi a cache DNSSEC mezi aplikací BIND a veřejnými DNS servery v internetu jsou automaticky ověřovány.

Nakonec přes webové rozhraní Pi-hole v cestě Settings > System kliknout na Restart DNS resolver:

Pi-hole Restart DNS resolver

Alternativně je možné provést restart DNS resolveru pomocí příkazu níže:

sudo pihole restartdns

Pokud je nakonfigurovaný firewall (lze zjistit příkazem sudo ufw status), je nutné povolit provoz UDP/53 a TCP/53:

sudo ufw allow 53/udp
sudo ufw allow 53/tcp

Pozn. Není potřeba přidávat pravidlo ufw allow 533/udp, jelikoz předávání DNS požadavků se provádí mezi procesy jednoho serveru.

Řešení problémů:

1. Aktualizoval jsem DNS záznam v zóně přes BIND aplikaci, ale překlad nefunguje z klientské stanice/notebooku/PC.

a) Restart služby BIND:

sudo service bind9 restart

b) Restart restart DNS resolveru Pi-hole:

sudo pihole restartdns

c) Vymazání cache v OS Windows či OS Ubuntu

WIN:

ipconfig /flushdns

Linux:

sudo systemd-resolve --flush-caches

Zdroj:

[1] https://discourse.pi-hole.net/t/can-the-bind9-and-pihole-together-running/21973

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérký softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030

Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *