PiHole unter Proxmox installieren

Moin!


Heute steht die Installation von PiHole in einem unpriviligierten LXC Container unter Proxmox an.
PiHole ist ein Ad- / Telemetrieblocker der auf DNS Basis arbeitet. Der entscheidene Vorteil ist, dass das PiHole von allen Clients und Geräten im Netzwerk als DNS Server genutzt werden kann und so als netzwerkweiter Ad- / Telemetrieblocker arbeiten kann. Kein nervendes Plugin mehr im Browser!

Damit dies funktionieren kann wird das PiHole mit Domainlisten gefüttert. Sollte auf diesen Listen eine Domain geblockt sein, die für euch relevant ist, könnt ihr diese über das Whitelistfeature freischalten.
Des Weiteren sind noch viele andere Features enthalten die allerdings hier den Rahmen der Erklärung sprengen würden.

Was ihr dazu benötigt:

Wir verbinden uns per SSH auf den LXC und stoßen ein Update an.

sudo apt update && sudo apt upgrade -y

Anschließend laden wir das Installationsskript von Github herunter und führen dies aus.

sudo wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh

Nun startet der GUI geführte Installer. Wir bestätigen die ersten Fenster bis wir uns für einen DNS Server entscheiden müssen. Ich wähle hier Cloudflare auf Grund des weltweit großen Netzwerks.

Im nächsten Fenster sollen wir Domainlisten auswählen, da nur eine zur Auswahl steht können wir direkt in das nächste Fenster springen.

Ein Fenster weiter werden wir gefragt ob die Blockierungen auf IPv4 und / oder IPv6 stattfinden soll. Je nach eurem Anschluss müsst ihr hier wählen. Ich entscheide mich für beide Optionen, auch wenn ich nur eine IPv4 von meinem Anbieter bekomme. Grund dafür ist, dass so bei einem Anbieterwechsel nicht das PiHole neukonfiguriert werden muss.

Nun werden wir gefragt ob wir eine statische IP setzen wollen. Dies ist sehr wichtig! Nur mit einer statischen IP ist sichergestellt, dass das PiHole immer dieselbe IP verwendet.

Wir bestätigen die Warnung und fahren fort. Im nächsten Schritt steht die Frage im Raum, ob das Webinterface mit interstalliert werden soll. Selbstverständlich wählen wir On aus.

Jetzt wird der Installer euch fragen, ob ihr den Standart Webserver mit den benötigten PHP Modulen installieren wollt. Wählt auch hier On.

Nach dem Bestätigen werdet ihr gefragt ob alle Anfragen gelogt werden sollen. Auch hier wählt ihr wieder On.

Nun könnt ihr euch entscheiden ob alle Daten während eine Anfrage gelogt werden sollen. Je nach Einstellung werden mehr oder weniger Daten gelogt. Ich wähle hier die Option „show everthing“. Hintergrund dazu ist, dass das PiHole in meinem Privatnetzwerk läuft und nicht im Server- oder Gastnetzwerk.

Ist diese Option gesetzt läuft der Installer weiter durch. Am Ende wird euch ein Adminpasswort in der GUI angezeigt. Notiert es euch! Wir bestätigen und schließen damit die Installation ab. Wir können im Browser nun das WebUI aufrufen mit der 192.168.XXX.XXX/admin. Dort angekommen loggen wir uns mit dem vorher notierten Passwort ein und ändern dies.

Nun fügen wir der Adlist einige Domainlisten hinzu. Diese Domainlisten sind meist als .txt Datei im Netz verfügbar und werden nach dem Hinzufügen vom PiHole geprüft.

Diese Listen verwende ich und komme damit auf etwa 861k geblockte Domains. Ihr könnt sie hinzufügen wenn ihr im WebUI „Group Management“ —> „Adlists“ aufruft.

https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts;showintro=0
https://raw.githubusercontent.com/GATmyIT/pihole-lists/master/notracking-hosts.txt
https://raw.githubusercontent.com/Marfjeh/coinhive-block/master/domains
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/KADhosts/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Spam/hosts
https://raw.githubusercontent.com/matomo-org/referrer-spam-blacklist/master/spammers.txt
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/UncheckyAds/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.2o7Net/hosts
https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Risk/hosts
https://raw.githubusercontent.com/Goooler/1024_hosts/master/hosts
https://v.firebog.net/hosts/Prigent-Malware.txt
https://v.firebog.net/hosts/Prigent-Phishing.txt
https://v.firebog.net/hosts/Shalla-mal.txt
https://v.firebog.net/hosts/Easyprivacy.txt
https://v.firebog.net/hosts/Prigent-Ads.txt
https://v.firebog.net/hosts/Easylist.txt
https://v.firebog.net/hosts/AdguardDNS.txt
https://v.firebog.net/hosts/static/w3kbl.txt
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt
https://bitbucket.org/ethanr/dns-blacklists/raw/8575c9f96e5b4a1308f2f12394abd86d0927a4a0/bad_lists/Mandiant_APT1_Report_Appendix_D.txt
https://phishing.army/download/phishing_army_blocklist_extended.txt
https://zerodot1.gitlab.io/CoinBlockerLists/hosts
https://tgc.cloud/downloads/hosts.txt
https://reddestdream.github.io/Projects/MinimalHosts/etc/MinimalHostsBlocker/minimalhosts
https://adaway.org/hosts.txt

Nachdem ihr die URL’s hinzugefügt habt muss das PiHole die darin enthaltenen Domains noch laden. Das kann über die WebUI erledigt werden oder über das Terminal. Ich persönlich verwende lieber das Terminal, da hier der Fortschritt geprüft werden kann.

sudo pihole -g

Nun fügen wir einige Standart Domains der Whitelist hinzu. Diese Domains sind eine generelle Empfehlung und machen euch das Leben deutlich einfacher. Es ist ärgerlich, wenn auf einmal Spotify nicht mehr läuft, weil die Domain geblockt wurde. Stichwort: Ads bei kostenlosen Accounts.

Dazu bedienen wir uns eines kleinen Skriptes von anudeepND auf Github. Dieses Skript greift auf eine Whitelist zu, welche aktiv gepflegt wird. Das Skript ermöglicht euch ein automatisiertes Update der Whitelist. Wir begeben uns ins Terminal. Dort installieren wir Python 3, laden das Skript herunter und führen es aus.

sudo apt install python3
cd /opt/
sudo git clone https://github.com/anudeepND/whitelist.git
sudo python3 whitelist/scripts/whitelist.py

Damit das ganze nun automatisiert geschehen kann erstellen wir einen CRON. So wird jeden Sonntag um 23Uhr das Skript ausgeführt und aktualisiert die Whitelist.

sudo nano /etc/crontab

0 23    * * 7   root    /opt/whitelist/scripts/whitelist.py

Nun können wir noch zusätzliche Domains hinzufügen. Dies sind Domains die ich bei meinem PiHole noch hinzugefügt habe um einwandfrei arbeiten zu können.

sudo pihole -w \
accounts.google.com \
bit.ly \
doodle.com \
ec-ns.sascdn.com \
login.aliexpress.com \
paypal.com \
pinterest.com \
s.shopify.com \
sharepoint.com \
sourceforge.net \
twitter.com \
v.shopify.com \
versus.com \
www.paypalobjects.com \

Wir müssen noch ein paar kleinere Einstellungen tätigen. Dazu rufen wir das WebUI auf und navigieren zu Settings —> DNS. Unter „Use DNSSEC“ einen Haken setzen, dann noch einen Haken bei „Use Conditional Forwarding“ setzen. Dort müsst ihr in den Feldern noch euer Netz angeben. In den meisten Fällen wird das „192.168.2.0/24 oder 192.168.178.0/24“ sein. Anschließend noch die IP des DHCP Servers eintragen. Auch hier wird das wahrscheinlich „192.168.2.1 oder 192.168.178.1“ sein.

Jetzt müssen wir eurem Router noch beibringen, dass er alle DNS Anfragen an einen anderen DNS Server weiterleiten soll. Wie ihr das bewerkstelligen könnt müsst ihr selber in Erfahrung bringen, da ich Ubiquiti verwende und dort die Konfiguration anders aussieht.

Grüße gehen aus dem Archiv!

Abonnieren
Benachrichtige mich bei
guest
4 Kommentare
Älteste
Neuste Meist Bewerteste
Inline Feedbacks
Zeige alle Kommentare
4
0
Bitte lasse uns an deinen Gedanken teilhaben und kommentier den Beitrag.x
Cookie Consent mit Real Cookie Banner