URLs auszuschliessen mit Pi-Hole

Pi-hole (ursprünglich für den Raspberry-PI geschrieben) ist eine Linux-Software zwecks Tracking- und Werbeblocking. Im Prinzip wird der DNS-Dienst der Routers de-aktiviert und dafür ein performanterer DNS-Dienst vom Pi-hole genutzt. Siehe DNS (Port-Beschreibungen) Über eine Blacklist kann ich dann alle unerwünschten Anfragen ins Leere laufen lassen. Im Vergleich zur Blacklist im Router, habe ich keine Begrenzung auf ca. 500 Einträge. Bzw. über eine Whitelist kann ich eine URL, welche in der Blacklist aufgeführt ist, doch aufrufen. Damit das ordentlich funktioniert ist ein 24/7 Linux-PC oder Rasberry nötig.

Zur Installation z.B. kuketz-blog.de Schwarzes Loch für Werbung
Kurzanleitung: heise.de Pi-hole einrichten
Erfahrungsbericht: datenschutz.ekd.de Erfahrungsbericht

URLs ausschliessen mit Lokal-Horst ;-)

Die lokale hosts Datei, Vorläufer vom DNS, ist zwar ein Relikt vergangener Tage, aber befindet sich so gut wie auf jedem System und ist daher auch ein guter Ansatz lästige URLs auszusperren. Da man hier auch auf gefälsche URLs verweisen kann (Hosts file Hijack von Kleinweich;-), ist die Datei ziemlich kritisch und nur mit Administrator Rechten bearbeitbar. Alles was hier aussortiert wird, wird gar nicht mehr den PC verlassen, egal welcher DNS folgt.

Windows hosts-Datei

Die hosts-Datei befindet sich unter dem Pfad %windir%\system32\drivers\etc , welchen man einfach in die Kopfzeile des Explorers einfügen kann und mit Return bestätigt. Den Inhalt kann man sich angucken, wenn man mit rechter Maus auf der hosts-Datei den "öffnen mit" Dialog anwählt und einen Editor auswählt.

Die Standard hosts-Datei sieht wie folgt aus:
   
	# Copyright (c) 1993-2009 Microsoft Corp. 										
	# 
	# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.		
	# 
	# This file contains the mappings of IP addresses to host names. Each	
	# entry should be kept on an individual line. The IP address should		
	# be placed in the first column followed by the corresponding host name.
	# The IP address and the host name should be separated by at least one	
	# space.	
	# 
	# Additionally, comments (such as these) may be inserted on individual	
	# lines or following the machine name denoted by a '#' symbol.				
	# 
	# For example:	
	# 
	# 102.54.94.97    rhino.acme.com # source server
	#  38.25.63.10    x.acme.com     # x client host
	#
	# localhost name resolution is handled within DNS itself.					
	# 127.0.0.1   localhost 
	# ::1         localhost # für IPv6 
Normalerweise kann man darunter weitere Zeilen einfügen in Form von 0.0.0.0  URL oder 127.0.0.1  URL.
Die Wirkung ist gleich, der Unterschied ist 127.0.0.1 = localhost und zeigt somit auf sich selbst (loopback) und 0.0.0.0 ist eine invalide nicht erreichbare Adresse.

Für das Einfügen ist zunächst ein Text-Editor im Admin-Modus zu starten.

z.B. im Total-Commander mit rechter Maus auf das Editor-Symbol gehen und "als Administrator" auswählen.
Im Datei > Öffnen   Fenster in der Fußzeile "Alle Dateien" auswählen.
Dann in der Kopfzeile die Adresse %windir%\system32\drivers\etc   hinein kopieren. Nach dem Return, kann die Datei hosts ausgewählt werden. Nun beispielsweise folgende Zeilen ergänzen.
# ip-adresse   Domainname=FQDN  [Rechnername=hostname]   # Kommentar
  0.0.0.0   googletagmanager.com 
  0.0.0.0   ajax.googleapis.com
  0.0.0.0   gstatic.com		
  0.0.0.0   youtube.com		
  0.0.0.0   www.youtube.com
  0.0.0.0   m.youtube.com 	
# 0.0.0.0   telemetry.microsoft.com  # kann nicht ausgeklammert werden, da MS das extra behandelt
Ich hoffe man kann an der Struktur erkennen das keine Platzhalter möglich sind und wie auskommentiert wird.

Testen kann man via Win-Taste > cmd > ping URL. z.B. ping youtube.com
Es sollte dann die Meldung kommen "...konnte nicht finden"

Eine zusätzliche Sicherheit ist es, wenn man selbst für den Administrator die Datei hosts auf Read-Only setzt.
Sinnvoll ist auch mit Win-Taste, dann Regedit den Pfad zu überprüfen.
Siehe \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
Der DataBasePath sollte auf %SystemRoot%\System32\drivers\etc stehen.

Weitere Details z.B. windowspro.de hosts-Datei bearbeiten.
English winhelp2002.mvps.org/hosts.htm
English someonewhocares.org hosts

DEB-Linux hosts

In Debian-Systemen oder Debian-Derivaten z.B. Linux-Mint und wahrscheinlich in allen übrigen Linuxsystemen ebenso, befindet sich die hosts-Datei unter /etc.

ls -la ho* 
-rw-r--r-- 1 root root   9 Aug  7  2006 host.conf
-rw-r--r-- 1 root root   4 Aug 16  2018 hostname
-rw-r--r-- 1 root root 183 Aug 16  2018 hosts 
-rw-r--r-- 1 root root 411 Aug 16  2018 hosts.allow
-rw-r--r-- 1 root root 711 Aug 16  2018 hosts.deny 
Die Hosts-Datei sieht geringfügig anders aus als unter Windows.
   
127.0.0.1  localhost	
127.0.1.1  ab1			

# The following lines are desirable for IPv6 capable hosts 
::1     localhost ip6-localhost ip6-loopback 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters

# ip-adresse   Domainname  [Rechnername]   # Kommentar
ab1 ist hier der Name des Computers, welcher auch in der Datei Hostname eingetragen ist.
Wie bereits erwähnt, sind nur Buchstaben, Zahlen, der Punkt und Minus erlaubt. Wildcards sind nicht möglich. Es wird exakt nur das geblockt was eingegeben wird. Einen Geschwindigkeitsvorteil hat man wenn man 0.0.0.0 statt 127.0.0.1 verwendet.

Sinnvoller ist es einen Proxy-Server zu verwenden, wie er in manchen Firewalls eingebaut ist oder einen DNS (z.B. dnsmasq) wie er mit Pi-hole realisiert wird. Dnsmasq lässt ich auch lokal auf einem DEB-System benutzten...

Blacklist

malwaredomains.com Blacklist in verschiedenen Formaten für Pi-hole, hosts, etc.
der-pcfuchs.de Pi-hole Blacklist
firebog.net oder https://wally3k.github.io/ Blacklist collection
winhelp2002.mvps.org hosts.txt Datei

© 2020, letzte Änderung am 16.02.20