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

By | 16/12/2021

Last Updated on 27/12/2021 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

Pokud Vám tento článek pomohl a rádi byste podpořili tento web a mou tvorbu, můžete tak provést zasláním libovolné částky na číslo účtu 1558701011/3030

Nebo můžete dar poslat kliknutím na tento odkaz Podpořit tento WEB , který Váš 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 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 *