Pi-Hole auf dem Raspberry Pi einrichten

Die Voraussetzung für die Installation ist ein lauffähiger Raspberry mit einer LAN-Anbindung und einer fixen IP-Adresse. Für die Administration ist ein SSH-Zugriff von Vorteil. Besondere Systemleistung ist nicht notwendig, daher ist ein RPi ab der Version 2 verwendbar, und auch möglich, den RPi parallel zu anderen Diensten zu verwenden.

Image auf die Karte spielen

Das aktuelle light Image von der RPi Downloadseite laden und mit Etcher oder dd auf die SDHC Karte übertragen.

Datei .ssh am Pi erstellen

Die SDHC Karte in einem PC einlegen und im Root-Dirctory der Karte eine Datei .ssh ohne Endung anlegen.

IP-Adresse feststellen

Entweder an einem angeschlossenen Bildschirm, am Router oder mit dem Advanced IP Scanner die IP-Adresse feststellen und mit Putty an die Konsole des Pi verbinden.

Fixe IP am RPi einstellen

Die statische IP-Adresse wird in der /etc/dhcpcd.conf eingetragen.

sudo nano /etc/dhcpcd.conf

Am Ende der Datei folgendes eintragen (natürlich mit Werten für das eigene Netzwerk):

# eigenes Netzwerk
interface eth0
static ip_address=192.168.20.18/24
static routers=192.168.20.20
static domain_name_servers=192.168.20.20

System Updaten

Um auf den letzten Stand des Betriebssystems zu kommen, ein Update durchführen und alle Pakete entfernen, die nicht mehr benötigt werden::

sudo apt-get update -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y
sudo apt update -y && apt full-upgrade -y && apt autoremove -y

Nach dem Aktualisieren –> neu starten

sudo reboot

Passwort ändern

Entweder mit raspi-config oder an der Konsole das Passwort ändern:

sudo raspi-config

oder

sudo passwd pi
Geben Sie ein neues Passwort ein:
Geben Sie das neue Passwort erneut ein:
passwd: Passwort erfolgreich geändert

Das Passwort muss "blind" eingegeben und anschließend bestätigt werden. „Blind“ bedeutet, dass kein Tastendruck dargestellt wird. Auch keine Sternchen oder Pünktchen.

authorized_keys

Um mit Putty mit oder ohne Eingabe eines Usernamens und eines Passwortes eine SSH Verbindung aufzubauen, muss ein Keypaar vorhanden und am Pi und am SSH Client (Putty) eingetragen sein. Falls noch kein Keypaar vorhanden, nach dieser Anleitung anlegen.

SSHD Konfigurieren

~ $ sudo nano /etc/ssh/sshd_config

In der sshd_config folgenden Eintrag kontrollieren und eventuell vornehmen

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

und dann den sshd neu starten:

~ $ sudo /etc/init.d/ssh restart

Falls bereits vorhanden, die authorized_keys (mit FileZilla) Datei nach ~/.ssh/authorized_keys kopieren.
Der Eintrag in Putty kann kopiert werden, indem man eine bestehende Verbindung lädt und unter einem neuen Namen und den neuen Parametern wieder speichert.
Die beiden Dateien sind hier vorhanden auf data/media/putty.

Hostnamen ändern

An der Konsole

sudo raspi-config

eingeben, Punkt 2.Network Options/N1 Hostname auswählen und den neuen Hostnamen eingeben. Hier PiHole.
Anschließend muss der Pi neu gestartet werden:

sudo reboot

Beim nächsten Start hat der Pi die neu eingetragene IP-Adresse 192.168.20.18

Pi-Hole installieren

Die Installation von Pi-Hole erfolgt entweder lokal über das Terminal, oder über eine Putty-Verbindung bei einem Headless-Betrieb. Der Terminal-Befehl für die Installation lautet:

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

Der Pi startet nun den Download und die Installation. Nachdem der Download abgeschlossen ist, startet der Einrichtungsassistent.

[i] Web Interface password: 4xoq0PRv
[i] This can be changed using 'pihole -a -p'
[i] View the web interface at http://pi.hole/admin or http://192.168.20.18/admin
[i] You may now configure your devices to use the Pi-hole as their DNS server
[i] Pi-hole DNS (IPv4): 192.168.20.18
[i] If you set a new IP address, please restart the server running the Pi-hole
[i] The install log is located at: /etc/pihole/install.log
Installation Complete!
root@PiHole:/home/pi#

Passwort am PiHole ändern

An der Konsole den PiHole Passwortmanager aufrufen

sudo pihole -a -p

und ein neues Passwort (StdK) eingeben.

Wenn der RPi direkt per Ethernet mit dem Router verbunden ist, kann man sich im nächsten Schritt über den Browser mit der Adresse 192.168.20.18 anmelden und mit dem vergebenen Passwort einloggen.

Öffentlichen DNS-Server festlegen

Vom Chaos Computer Club alternativen DNS-Anbietern und von OpenNIC bekommt man eine Liste alternativer und frei verwendbarer DNS-Server. Folgende sind es zum Zeitpunkt der Erstellung dieses Dokumentes:

212.82.226.212 (ClaraNet, Deutschland)

204.152.184.76 (f.6to4-servers.net, ISC, USA)

2001:4f8:0:2::14 (f.6to4-servers.net, IPv6, ISC)

194.150.168.168 (dns.as250.net; Berlin/Frankfurt)

195.10.195.195 (ns31.de)

193.183.98.66 (ns1.lom.it)

51.15.98.97 (ns12.nh.nl)

94.247.43.254 (ns8.he.de)

2a00:f826:8:2::195 (ns31.de)

2a00:dcc0:dead:b242::42 (ns1.lom.it)

2a00:6d40:40:4bb0::1 (ns3.it)

2a00:f826:8:1::254 (ns8.he.de)

Damit Pi-Hole aufgerufene Webseiten weiterleiten kann, müssen Sie einen öffentlichen DNS-Server festlegen. Dazu muss Settings/Dns aufgerufen werden und aus der obigen Liste die DNS Server eingetragen werden.

Pi-Hole als DNS-Server einrichten

Nach der Installation läuft Pi-Hole automatisch auf dem Raspberry Pi. Damit nun Werbung gefiltert werden kann, muss am Windows- oder Linux-Rechner der RPi als DNS-Server eingetragen werden.

Konfiguration anpassen

Sobald der Traffic über Pi-Hole läuft, sollte keine Online-Werbung mehr zu sehen sein. Für Einzelfälle ist die Konfiguration des Servers anzupassen. Dazu im Browser die Adresse des Pi-Hole eintragen (zB. 192.168.20.200/admin). Hier mit dem (hoffentlich) notierten Passwort einloggen.

Auf der Webseite können nun eine Reihe von Einstellungen vorgenommen und Statistiken eingesehen werden.

Sicherung der Konfigurationsdateien

Pi-Hole bietet mit dem Befehl pihole -a teleporter die Möglichkeit an, die wichtigsten Dateien in ein tar.gz-Archiv im Home-Verzeichnis vom User pi zu sichern. entweder mit Filezilla sichern oder mit einem Script von Stefan Strobel automatisch versenden.

Pi-Hole Commandos

Mit dem Kommando

pihole -h

wird die Befehlsübersicht eingeblendet:

Usage: pihole [options]
Example: 'pihole -w -h'
Add '-h' after specific commands for more information on usage
Whitelist/Blacklist Options:
-w, whitelist Whitelist domain(s)
-b, blacklist Blacklist domain(s)
--wild, wildcard Wildcard blacklist domain(s)
--regex, regex Regex blacklist domains(s)
Add '-h' for more info on whitelist/blacklist usage
Debugging Options:
-d, debug Start a debugging session
Add '-a' to enable automated debugging
-f, flush Flush the Pi-hole log
-r, reconfigure Reconfigure or Repair Pi-hole subsystems
-t, tail View the live output of the Pi-hole log
Options:
-a, admin Web interface options
Add '-h' for more info on Web Interface usage
-c, chronometer Calculates stats and displays to an LCD
Add '-h' for more info on chronometer usage
-g, updateGravity Update the list of ad-serving domains
-h, --help, help Show this help dialog
-l, logging Specify whether the Pi-hole log should be used
Add '-h' for more info on logging usage
-q, query Query the adlists for a specified domain
Add '-h' for more info on query usage
-up, updatePihole Update Pi-hole subsystems
Add '--check-only' to exit script before update is performed.
-v, version Show installed versions of Pi-hole, Web Interface & FTL
Add '-h' for more info on version usage
uninstall Uninstall Pi-hole from your system
status Display the running status of Pi-hole subsystems
enable Enable Pi-hole subsystems
disable Disable Pi-hole subsystems
Add '-h' for more info on disable usage
restartdns Restart Pi-hole subsystems
checkout Switch Pi-hole subsystems to a different Github branch
Add '-h' for more info on checkout usage

Beispiele:

pihole -up –check-only: Update kontrollieren

pihole -g: Blockierlisten der Adware-Domains updaten

Quellen:
Heise.de
KUKETZ Blog
Stefan's Weblog
Pi-hole documentation