PiHole with Unbound (recursive DNS) Step-by-Step Tutorial | The internet is broken!

Seite 1 von 25 - Forum: DIY/SoC auf overclockers.at

URL: https://www.overclockers.at/diy-soc/pihole-with-unbound-recursive-dns-step-by-step-tutorial-the-internet-is-broken_255071/page_1 - zur Vollversion wechseln!


TOM schrieb am 17.01.2020 um 14:35

The internet is broken!
click to enlarge

Vorwort:

Zitat
Wir haben es geschafft.
Das Internet ist ohne Werbeblocker unbenutzbar geworden.

Beispiel derStandard.at
click to enlarge

Beispiel tomshardware.com
click to enlarge

... mal kurz auf's Klo gegangen
click to enlarge

... kein Ende in Sicht...
(kein Klick, nur im Hintergrund stehen gelassen)
click to enlarge

ohne Worte
click to enlarge

DNS performance Messung vor der Umstellung | 192.168.1.1 = Unifi USG
click to enlarge

Potenzielle Lösung
Wenn man Adblocker-Warnungen leid ist?
Funktioniert auf (*fast) allen Geräten, im Netzwerk (Smartphone, SmartKlo, SmartAI)
*fast => Devices wie Chromecast haben fixe DNS (gibt dafür aber auch Lösungen)
click to enlarge


PiHole! - Tutorial time

1.) Get a raspberry Pi
click to enlarge

2.) Raspbian Lite als OS installieren
click to enlarge

3.) System auf aktuellen Stand bringen
Code:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get autoremove
sudo apt-get autoclean

4.) PiHole installieren
Code:
curl -sSL [url]https://install.pi-hole.net[/url] | bash

PiHole Settings
Code:
- Select Upstream DNS Provider: Cloudflare (1.1.1.1 und 1.0.0.1)
- Select Lists: ich habe alle Ad- bzw. Tracking-Blocking-Listen ausgewählt
- Select Protocols: IPv4 und IPv6 (sofern eure Geräte IPv6 unterstützen)
- Do you want to use your current network settings as a static address: Hier habe ich die statische IP des Raspberry Pis und die Adresse des Routers angegeben.
- Do you wish to install the web admin interface: Ja
- Do you wish to install the web server (lighttpd): Ja
- Do you want to log queries: Ja
- Select a privacy mode for FTL: “Show everything”

6.) PiHole Admin Passwort setzen
Code:
pihole -a -p

7.) PiHole Weboberfläche aufrufen
(durch eigene IP ersetzen)
Code:
http://192.168.1.2/admin

click to enlarge

8.) DNS setzen (lokal oder via DHCP)
click to enlarge

This is it

Ergebnis

click to enlargeclick to enlargeclick to enlargeclick to enlarge

DNS Performance passt
click to enlarge

Warum hier stoppen?

Unbound Installation
Wir installieren unseren eigenen DNS, mit BlackJack und Nutten!
Adé, Google/Cloudflare/ISP DNS-Server


1.) Unbound installieren
Code:
$ sudo apt install unbound
wget -O root.hints [url]https://www.internic.net/domain/named.root[/url] 
sudo mv root.hints /var/lib/unbound/

2.) Konfigurationsfile erstellen
Code:
sudo vi /etc/unbound/unbound.conf.d/pi-hole.conf

3.) Inhalt Konfigurationsfile
Code:
server:
    # If no logfile is specified, syslog is used
    # logfile: "/var/log/unbound/unbound.log"
    verbosity: 0

    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"

    # Trust glue only if it is within the servers authority
    harden-glue: yes

    # Require DNSSEC data for trust-anchored zones, if such data is absent, the zone becomes BOGUS
    harden-dnssec-stripped: yes

    # Don't use Capitalization randomization as it known to cause DNSSEC issues sometimes
    # see [url]https://discourse.pi-hole.net/t/unbound-stubby-or-dnscrypt-proxy/9378[/url] 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

    # Perform prefetching of close to expired message cache entries
    # This only applies to domains that have been frequently queried
    prefetch: yes

    # One thread should be sufficient, can be increased on beefy machines. In reality for most users running on small networks or on a single machine it should be unnecessary to seek performance enhancement by increasing num-threads above 1.
    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

3.) Service restart
Code:
sudo service unbound start

4.) IP in PiHole Weboberfläche setzen
click to enlarge
DNS Performance passt auch

Blacklist & Whitelist management

click to enlargeclick to enlarge

Blacklist:
https://v.firebog.net/hosts/lists.php?type=tick

Whitelist:
https://github.com/anudeepND/whitelist (https://raw.githubusercontent.com/a...s/whitelist.txt)
https://firebog.net/ (unten)

Quellen:
https://community.ui.com/questions/...3d-0b55320101dc
https://medium.com/@natterstefan/mi...ss-5f087a13ff5a
https://www.mielke.de/blog/Mit-dem-...inrichten--488/
https://firebog.net/
https://docs.pi-hole.net/guides/unbound/
https://dougrathbone.com/blog/2018/...on-raspberry-pi
https://www.myhelpfulguides.com/201...g-edgerouter-x/


Obermotz schrieb am 17.01.2020 um 14:45

Danke, möcht ich auch schon lange machen für das ganze Netzwerk. Trotz Adblocker am Rechner hat man den Kas ja auch am Fernseher/Handy/Whereever.
Ich möcht mir nur dazu kein eigenes Kastl aufstellen, sondern idealerweise einfach einen Docker Container aufm Synology laufen lassen..


UnleashThebeast schrieb am 17.01.2020 um 14:56

Guter Tipp dazu noch:
DHCP am am Router ausschalten und vom PiHole mitmachen lassen. Dann sieht man auch gleich sehr schön, welches Device welche Anfragen schickt.


salsa schrieb am 17.01.2020 um 14:59

Whoa, thx.

Das weitere Kastl stört mich nicht, kommt einfach in den Routerschrank, zum restlichen Router/Homekit Zeug. Vl. versuch ich mich wirklich mal an sowas. :)


Indigo schrieb am 17.01.2020 um 15:02

Zitat aus einem Post von Obermotz
Ich möcht mir nur dazu kein eigenes Kastl aufstellen, sondern idealerweise einfach einen Docker Container aufm Synology laufen lassen..

hab ebenfalls als docker container laufen in einer hyper-v vm, funktioniert klaglos :thumbsup:


charmin schrieb am 17.01.2020 um 15:05

Hehe cooles Tutorial. Hab den pihole auch schon seit nem Jahr als DHCP und DNS in Verwendung :) :thumbsup:


Redphex schrieb am 17.01.2020 um 15:15

Ich mach's ähnlich, spare mir aber Pihole und hab die Blacklists direkt im unbound


Earthshaker schrieb am 17.01.2020 um 15:24

Extra nur den Raspberry dafür angeschafft.
Muss einfach sein.

Machen wir auch mittlerweile in der Firma so :D


davebastard schrieb am 17.01.2020 um 17:04

habs auch in einem docker container aufm openmediavault homeserver,
den da: https://hub.docker.com/r/pihole/pihole


TOM schrieb am 17.01.2020 um 18:45

Danke für's Feedback!

Falls ihr bei Euren PiHole Installation noch Tipps/Tricks habt, nur her damit!
Thema wie Backup muss ich erst noch angehen (https://www.linux-tips-and-tricks.de/de/raspibackup/) - ist Proof of Concept mit einer Analyse, ob es performant genug ist bzw. reinfühlen ob's painless ist (false positives)

Eine autom. Gravity List Aktualisierung (Blacklist) wär noch nice - macht das jemand von Euch?

Docker am Synology hat's bei mir leider nicht gespielt - da ist die DS414 scheinbar zu alt dafür

Blocklisten direkt am USG verwalten hab ich mir auch angesehen, war mir dann aber nicht modular genug.
Spinnt der Gateway durch Fehlkonfigurationen oder Probleme bei Updates => Dann hängt das Internet komplett.
Spinnt allerdings der Pi, dann ist ein alternativer DNS ein guter/schneller failover ohne hands on

Am Pi kommt dann noch der Unifi Controller drauf... gebt Bescheid wenn ein Tutorial dafür auch interessant wäre.


Viper780 schrieb am 17.01.2020 um 19:16

Coole Sache Parker.

DNS und blacklist kannst aber auch am Usg bzw Edge Router einrichten.
Ich wollte kein weiteres Kastl haben und das NAS sollte nicht 24/7 laufen jetzt hab ich eine "Light" Variante am Edge Router und strikte Blacklists (wo auch Soziale Netze gesperrt sind) im Browser bzw auf den einzelnen devices


hynk schrieb am 17.01.2020 um 19:39

Danke für den Thread!

Hab schon länger vor das mal anzugehen und jetzt juckts mich in den Fingern :)
Wollt eh schon lang ESXi am Router installieren und die pfSense drauf virtualisieren. Jetzt gibts einen weiteren guten Grund.


davebastard schrieb am 17.01.2020 um 19:46

das webinterface ist wirklich sehr übersichtlich gehalten mit sinnvollen default werten, statistiken, graphen usw. ich war in ein paar min mit dem konfigurieren fertig :) Stabilität ist auch erste Sahne, der Docker Container ist mir afair noch nie abgestürzt.
ist wirklich zu empfehlen. ;)


spunz schrieb am 17.01.2020 um 20:10

Zitat aus einem Post von hynk
Danke für den Thread!

Hab schon länger vor das mal anzugehen und jetzt juckts mich in den Fingern :)
Wollt eh schon lang ESXi am Router installieren und die pfSense drauf virtualisieren. Jetzt gibts einen weiteren guten Grund.

Bei pfsense o.ä. Systemen kannst du die Filterlisten aber auch direkt einbinden. Pihole wäre dazu nicht zwingend erforderlich.


davebastard schrieb am 17.01.2020 um 20:18

firewall/router virtalisieren würd ich übrigens auch ned wollen. das fügt nur weitere fehlerquellen hinzu. esxi sollt ma alle paar monat mal updaten usw. usf.
router/firewall ist imho das was am meisten wehtut wenns ausfallt...




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024