PiHole – Eigener Werbeblocker und mehr

Wir betreiben schon recht lange unseren eigenen Werbeblocker im Heimnetz. Dazu dient ein Raspberry Pi3B, den wir komplett mit Gehäuse und Netzteil erworben hatten, und die Software PiHole. Die ganze Zeit lief der Pi auf Raspbian. Da dies nicht mehr das neueste und für den Zweck auch total überladen ist, wurde es Zeit, den Teil auch auf DietPi umzustellen.

Im FlightRadar-Artikel habe ich schon beschrieben, wie man zu DietPi kommt. Die Einrichtung dauert etwas. Ich hatte das Problem, dass er sich nicht im Netzwerk anmeldete. Warum auch immer funktionierte es mit einer anderen Speicherkarte.

Ich würde noch empfehlen, wenn dann irgendwann die Frage kommt, das Passwort des Hauptnutzers zu ändern und nicht auf dem Standard zu lassen.

PiHole Installieren

Während der Einrichtung von DietPi wird auch gefragt, ob zusätzliche Software installiert werden soll.

Dort lässt sich auch PiHole auswählen.

Das tun wir aber nicht, denn es führt, zumindest bei mir, zu einer Fehlermeldung.

Nach Abschluss der Installation von DietPi landen wir auf der Konsole.

Wir installieren mit

curl -sSL https://install.pi-hole.net | bash

Das dauert dann wieder etwas.

Das klingt doch schon mal gut.

Bei der Abfrage nach Upstream DNS Provider kann im normalen Fall einfach Google oder Cloudflare verwendet werden. Diese sind mit die schnellsten. Wir haben die IP unseres Routers angegeben, damit wir den DNS unseres Providers nutzen. Externe haben immer den Nachteil, dass sie Euren Datenverkehr mitloggen können.

Update: Im Nachhinein habe ich die von Google wieder genommen. Die ist deutlich schneller als die unseres Providers.

Die Blocklisten werden einfach übvernommen.

Ebenso dann auch die IPv4/IPv6-Abfrage und die IP-Bestätigung. Dann kommt ein wichtiger Punkt.

Wir möchten natürlich, dass unser PiHole immer die gleiche IP im internen Netz hat. Er soll ja immer erreichbar sein, auch wenn er mal neu startet.

Natürlich wollen wir das Web-Interface.

Weiter wird alles bestätigt.

Zum Abschluss werden die IP-Adressen angezeigt, die im Router als DNS eingetragen werden müssen. Und das Passwort für das Web-Interface.

In meiner Fritz ist das unter Internet -> Zugangsdaten -> DNS-Server zu finden.

Bitte hier nicht vom Bild abschreiben sondern die Daten aus der PiHole eintragen.

Unter Heimnetz -> Netzwerk ->Netzwerkeinstellungen befindet sich ganz unten der Punkt IP-Konfiguration. Da muss bei uns der DNS auch noch eingetragen werden. Sowohl für IPv4 und für IPv6. Nicht wundern, das Feld für die IPv6-Adresse ist länger als nötig.

Fertig ist der eigene Werbeblocker. Sehr schön an der Sache, man kann ihn auch anders verwenden. Über die White-/Blacklist-Funktion können auch gezielt einzelne Domains oder auch Teile davon gesperrt bzw. freigegeben werden. Damit eignet sich PiHole auch als Blocker für Kindgerechtes Internet oder für Firmennetze, in denen nur bestimmte Adressen erreichbar sein sollen.

Von der Konsole lassen sich auch noch ein paar Dinge steuern. Z.B. das Passwort für das Web-Interface ändern:

$ pihole -a -p
Enter New Password (Blank for no password): 
Confirm Password: 
  [✓] New password set

Neuinstallation mit DietPi

Nachdem der bisherige Pi Zero WH mit Raspbian und der PiAware-Installation lief und immer wieder Software ausprobiert wurde, wurde es Zeit, eine neue saubere Installation zu machen. Dabei machte ich mich auf die Suche nach einer sparsameren Version des Betriebssystems für den Pi Zero und stolperte über DietPi.

Die Installation ging recht einfach nach der Anleitung auf der Website. Image auf die SD-Karte und Konfiguration in den Files auf der SD-Karte für das WLAN anpassen.

dietpi.txt

# Keyboard Layout eg: "gb" / "us" / "de" / "fr"
AUTO_SETUP_KEYBOARD_LAYOUT=de

# Timezone eg: "Europe/London" / "America/New_York" | Full list (TZ*): https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
AUTO_SETUP_TIMEZONE=Europe/Berlin

##### Networking Options #####
# Enable Ethernet or WiFi adapter: 1=enable | 0=disable
# - If both Ethernet and WiFi are enabled, WiFi will take priority and Ethernet will be disabled.
# - If using WiFi, please edit dietpi-wifi.txt to pre-enter credentials.
AUTO_SETUP_NET_ETHERNET_ENABLED=0
AUTO_SETUP_NET_WIFI_ENABLED=1

dietpi-wifi.txt

# - WiFi SSID: required, case sensitive
aWIFI_SSID[0]='WLAN-NAME'
# - WiFi key: If no key/open, leave this blank
aWIFI_KEY[0]='Passwort'

Nachdem die SD-Karte in im Pi war und der gebootet hatte, suchte ich mir in den Einstellungen der Fritz die IP des Pi heraus und loggte mich mit

ssh root@ip-adresse

ein.

Standard ist User „root“ und Passwort „dietpi“.

Automatisch startete die Erstkonfiguration von DietPi, was ich sehr gut gemacht fand. Kurz die Konfiguration durchgehen, viel ist hier nicht mehr zu machen, und fertig ist das System

Eigener Flightradar

Wer die Beiträge auf der Seite hier gelesen hat, weiss, dass ich hin und wieder Probleme mit dump1090 hatte. Mal lief es nicht, mal lieferte es keine Daten. Vor kurzem fand ich über ein Reddit-Post einen Ersatz. Die Installation geht mit:

sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/wiedehopf/adsb-scripts/master/readsb-install.sh)"

Unter http://Pi-IP/radar ist dann schon die eigene Seite mit Karte und allem zu finden. Leider nicht mit richtigen Location. Die muss erst Konfiguriert werden.

sudo readsb-set-location long lat

Wobei long und lat durch die Koordinaten ersetzt werden. Nach einem Neustart mit

sudo systemctl restart readsb

lieferte es allerdings keine Daten. Aus den Logfiles erfuhr ich, dass der USB-Stick zwar vom System erkannt, aber nicht für readsb genutzt wurde. Aber ich fand Abhilfe:

sudo wget -O /etc/udev/rules.d/rtl-sdr.rules "https://raw.githubusercontent.com/osmocom/rtl-sdr/master/rtl-sdr.rules"

Eine Karte mit mehr Informationen und mehr Features ist tar1090. Installiert wird sie mit:

sudo bash -c "$(wget -nv -O - https://raw.githubusercontent.com/wiedehopf/tar1090/master/install.sh)"

ADSBExchange

Jetzt müssen die Daten zu ADSB-Exchange. Da es eine nicht-kommerzielle Seite ist, die nicht filtert und keine Flüge in der Anzeige blockt, ist sie für mich Pflicht. Die Installation geht mit:

curl -o /tmp/feed.sh https://raw.githubusercontent.com/adsbxchange/adsb-exchange/master/install.sh
sudo bash /tmp/feed.sh

Das dauerte sehr lange. Wenn es fertig ist wird noch adsbexchange-stats installiert. Dann habe ich meine Seite mit Karte auch online.

wget -O /tmp/axstats.sh https://raw.githubusercontent.com/adsbxchange/adsbexchange-stats/master/stats.sh
sudo bash /tmp/axstats.sh

Im Abschluss zeigt das Installationsscript eine URL zur eigenen Seite bei ADSB-Exchange.

graphs1090

Ich habe es noch ein mal probiert. Graphs1090 brachte die alte Installation dauernd zu reboots. Mit der neuen scheint es zu funktionieren.

sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/wiedehopf/graphs1090/master/install.sh)"

Andere Websites

Ich habe mich an die Anleitung auf dieser Website gehalten. Dort ist auch erklärt, wie der Feed auf andere Websites wie Flightradar24 und FlightAware kommt.