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.
Das aktuelle light Image von der RPi Downloadseite laden und mit Etcher oder dd auf die SDHC Karte übertragen.
Die SDHC Karte in einem PC einlegen und im Root-Dirctory der Karte eine Datei .ssh
ohne Endung anlegen.
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.
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
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
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.
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
.
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
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#
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.
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:
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.
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.
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.
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.
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:
Quellen:
Heise.de
KUKETZ Blog
Stefan's Weblog
Pi-hole documentation