Ausprobiert: Netzwerkweites Adblocking mit Pi-hole

Von Pi-hole hatte ich schon hin und wieder gehört, mich aber bisher nie so recht damit befasst. Auf Twitter flog der Name nun mal wieder an mir vorbei, was ich zum Anlass nahm, die Software mal auszuprobieren.

Was ist Pi-hole?

Pi-hole ist ein Werbeblocker. Jedoch nicht zu vergleichen mit Werbeblockern wie Adblock Plus oder anderen Browser-Erweiterungen.

Pi-hole blockiert Werbung für quasi alle Geräte im Netzwerk, ohne dass dort etwas installiert oder konfiguriert werden muss.
Die Software muss auf einem Linux-Gerät im Netzwerk installiert und im Router als DNS-Server eingetragen werden.

Wird nun beispielsweise eine Website aufgerufen, geht die Anfrage an das Pi-hole, wird dort mit einer Blockliste verglichen und entsprechend beantwortet. Versucht der Browser, eine Domain aufzurufen, die auf der Blockliste steht, wird diese Anfrage geblockt und die Werbung oder das Tracking-Script nicht geladen.

Dadurch, dass es nicht nur eine Browser-Erweiterung ist, blockt es auch Werbung in Apps und sogar im Smart-TV.

Was braucht man?

Die Hardware ist fast egal. Ich nutze einen Raspberry Pi 3. Als Betriebssystem wird offiziell Debian, Ubuntu, CentOS, Fedora und Raspbian unterstützt. Ich nutze der Einfachheit halber Raspbian ohne Desktop.

Nach der Grundinstallation kann bereits die Installation von Pi-hole erfolgen, hierfür muss lediglich der Webinstaller über die Konsole aufgerufen werden:

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

Die Installation erfolgt geführt und Nutzerfreundlich und ermöglicht auch die Einstellung einer festen IP, was ja für den Betrieb als DNS-Server zwingend erforderlich ist, außerdem wird auch das Webinterface eingerichtet.

Wichtig ist, dass bei der Installation ein lighttpd auf Port 80 eingerichtet wird, hier wird das Webinterface angezeigt. Es sollte also kein anderer Dienst bereits Port 80 nutzen.

Und dann?

Nach der Installation ist das Pi-hole grundsätzlich fertig eingerichtet. Jetzt muss nur noch im Router der DNS-Server auf die IPs des Pi-hole eingestellt werden, damit alle DNS-Anfragen von diesem geprüft und beantwortet werden können.

Einstellungen? Statistiken?

Geht alles entweder über die Konsole, oder über das Webinterface. Das Passwort wird bei der Installation angezeigt.

Webinterface von Pi-hole
Webinterface von Pi-hole

Fazit

Ich habe das Gerät seit gestern Abend im Netzwerk und bin bisher echt zufrieden und habe nur zu Anfang beim Cache-Aufbau eine Verlangsamung der Anfragen gespürt. Seitdem laden Seiten deutlich schneller und sind bisher zuverlässig Werbefrei.

Ach ja, Seiten mit Adblock-Blocker wie bild.de kann man mit einem Pi-hole nicht mehr nutzen. Noch ein Vorteil.

Kreditkarten-Brute-Force

Letzte Woche, ich war gerade beruflich unterwegs, bekam ich plötzlich komische Mails von Amazon, dass Zahlungen zurückgewiesen wurden, obwohl mit den Kreditkarteneinstellungen alles stimmte. Am Freitag kam zuhause dann ein Brief an, in dem meine Bank mir mitteilte, dass meine Karte vorübergehend gesperrt sei, da seltsame Aktivitäten festgestellt wurden. Ich sah sofort auf dem Konto nach und tatsächlich gab es ein paar Tage zuvor eine Abbuchung über knapp 50€, die ich nicht zuordnen konnte und die kurz darauf wieder gutgeschrieben wurde.

Ich meldete mich bei der im Brief genannten Telefonnummer an, wenig später wusste ich, dass es genau um diesen Umsatz ging und dass der Händler aus den USA die Abbuchung 33 mal probiert hat, bevor sie beim 34. Mal tatsächlich erfolgreich war. Der Händler hatte da wohl selbst erfasst, dass da etwas nicht stimmen kann und die Gutschrift selbst veranlasst. Später, als bereits alle Zahlungen abgewiesen wurden, wurde auch noch versucht, ein Netflix-Konto zu eröffnen.

Soweit war das alles ja kein Problem, die Bank hat den Betrug noch vor mir entdeckt und initiativ gehandelt, so wie es ja sein soll. Ich bekomme eine neue Karte und die Sache ist erledigt.

Heute morgen jedoch fiel mir auf dem Weg zum Bäcker etwas auf: Wieso wurde die Zahlung 33 mal abgelehnt und beim 34. Mal hat plötzlich alles geklappt? Das kam mir reichlich unlogisch vor, bis mir auffiel, dass meine Kartenprüfnummer (CVV2) die 033 war. Wenn man nun beim Bezahlen alle Kombinationen, beginnend mit 000 durchgeht, benötigt man genau 34 Versuche, um den Treffer zu landen. Natürlich ist das reine Vermutung, aber es scheint mir, als würden Kreditkartendatendiebe, die nur die Kreditkartennummer, nicht jedoch die Prüfziffer kennen, tatsächlich per Brute-Force-Attacke die Prüfziffer zu erraten versuchen. Vielleicht sollten die Banken (manche tun das offenbar) nicht nur auf seltsame Vorgänge achten, sondern die Karte bei mehrmals falsch eingegebener CVV2 direkt sperren. Prinzipiell ist ja auch hier alles gut gegangen, aber immerhin konnte der Betrüger tatsächlich eine Zahlung mit der Karte ausführen, ohne dass die vielen Falscheingaben auffielen…

ownCloud für Android hat Probleme mit Sonderzeichen

Ich betreibe seit langer Zeit ownCloud-Instanzen, um damit Daten zwischen diversen Geräten zu synchronisieren. Installation und Konfiguration sind sehr einfach und es gibt (neben WebDAV) native Clients für alle von mir genutzten Betriebssysteme.

Vor einiger Zeit habe ich ein Passwort geändert. Die Desktop-Clients unter Windows 7 und Debian funktionierten mit dem neuen Passwort anstandslos, ownCloud für Android hingegen nicht. Nach einigem Herumprobieren fand ich heraus, dass es eine hochgestellte 3 war (³), die das Problem verursachte. Ich änderte daraufhin das Passwort erneut (es enthielt weiterhin Sonderzeichen) und es funktionierte auf allen Geräten.

Seitdem ist einiges an Zeit vergangen und letztens erinnerte mich meine Passwort-Routine, das ownCloud-Passwort mal wieder zu ändern. Gesagt, getan und oh Wunder, ein Sonderzeichen funktionierte auf dem Android-Client nicht.

Dieses Mal war meine Neugier größer, ich deaktivierte die Zwangsumleitung auf HTTPS und schnitt den Netzwerkverkehr der App beim Einloggen über eine unverschlüsselte Verbindung mit. Die Login-Daten mit einigen Sonderzeichen sehen in der App so aus:

ownCloud-Login mit Sonderzeichen
ownCloud-Login mit Sonderzeichen

Im Mitschnitt sieht man schnell, wieso das Passwort nicht funktionieren kann (abgesehen davon, dass der Nutzer nicht existiert):

Netzwerk-Mitschnitt vom Login bei ownCloud mit Sonderzeichen
Netzwerk-Mitschnitt vom Login bei ownCloud mit Sonderzeichen

Halten wir also fest: Bestimmte Sonderzeichen werden von der „originalen“ ownCloud-Android-App zu Fragezeichen umgewandelt und so gesendet. Die „Standard-Sonderzeichen“ wie ?$% usw. scheinen zu funktionieren.

Da die App sowieso nicht unbedingt meine Definition einer guten Synchronisations-App erfüllt: Kann mir jemand eine gute WebDAV-App nennen, die unter Android die Verbindung mit ownCloud übernimmt und vielleicht auch mit den spezielleren Sonderzeichen klar kommt?

Sinnvolle Zivilschutzapp: Katwarn

Vor relativ kurzer Zeit fand ich auf irgendeiner Seite einen Link zu Katwarn, einem Katastrophenwarndienst. Die Warnungen wurden bisher per SMS verschickt, inzwischen gibt es aber eine App, die zu diesem Zweck am aktuellen Aufenthaltsort, sowie an frei speicherbaren weiteren Orten nach Warnungen vom Wetterdienst, lokalen Ämtern und Behörden und so weiter.

Gibt es nun für einen der gespeicherten Orte oder den Standort eine Warnung, wird der Nutzer per Benachrichtigungston und mehrmaliger Vibration auf die Gefahr aufmerksam gemacht.

Katwarn Unwetterwarnung für die aktuelle Position
Katwarn Unwetterwarnung für die aktuelle Position

Wenn man die Warnung nach oben wischt, kommen dann auch weitere Details zur Warnung, in diesem Falle die amtliche Unwetterwarnung.

Katwarn zeigt die Details der Warnung
Katwarn zeigt die Details der Warnung

Wer im aktuellen Gebiet Warnungen ausgibt, sieht man übrigens oben rechts im Bild, in meinem Fall der Deutsche Wetterdienst und der Landkreis Gießen.

Interessante App, die sicher vor Schaden schützen und warnen kann, in meinem Fall wusste ich also gestern beim Einkaufen schon, dass vermutlich die Polster der Gartenmöbel nass sein werden, wenn ich zuhause ankomme. War dann auch so.

Die App gibt es für iOS, Android und Windows.

Was soll eigentlich der neue Spam per SMS?

Vielleicht gehts euch ja wie mir, ich habe in der letzten Zeit häufiger SMS mit offensichtlichem Spam-Inhalt bekommen. Meistens besteht der Inhalt aus einem kurzen Satz und einem Link, der einem irgendetwas verspricht.

Ich bekam bisher vor allem „Kontaktanfragen“ von gutaussehenden Damen (deren Aussage), die mich gerne kennenlernen wollten und mir zu diesem Zwecke einen Link zu ihrem Profil schickten.
Wie schon bei dermaßen plumpem E-Mail-Spam dachte ich mir auch hier bisher, dass da ja kaum jemand drauf klicken wird, doch das ist offensichtlich falsch.

Alex von 1337core hat einfach mal die Bitly-Statistiken zu einem solchen Link angesehen, bisher hat da ein Link knapp 17.500 Klicks, der Nutzer hat aber noch viele, viele andere Links in seinem Profil. In diesem Fall geht es offensichtlich darum, Benutzer mit Gewinnspielen auf eine Seite zu locken, um die Links zu maskieren wird eben der Link-Kürzer Bitly verwendet.

Mit bit.ly maskierter SMS-Spamlink
Mit bit.ly maskierter SMS-Spamlink

Falls ihr euch also mal wieder sagt „Das kann sich doch überhaupt nicht lohnen, da klickt eh niemand drauf“, wird die Antwort vermutlich „doch“ heißen.

Fritz!Box zurücksetzen ohne Netzwerkzugriff

Ich brauchte heute einen Switch, um mehrere Geräte mit statischen IPs zu verbinden. Da ich keinen solchen frei hatte, nahm ich eine alte Fritz!Box Fon WLAN 7390, die ich mal zu einem VDSL-Vertrag bekam. Leider nutzte ich diese Box zuletzt als Switch ohne DHCP an einer anderen Fritz!Box und aus irgendeinem Grund fand ich keinerlei Möglichkeit mehr, auf die Administrationsoberfläche zuzugreifen.

Ich durchstöberte also die AVM-Hilfeseiten und fand eine Möglichkeit, die Box (die übrigens keinen Hardware-Resettaster mehr hat) ohne Zugriff auf das Netzwerk zurückzusetzen. Das freute mich natürlich, weil ich so nicht weiter nach Möglichkeiten für ein Reset suchen musste, wunderte mich andererseits, weil es eine ziemlich offene Tür in ziemlich viele Fritz!Boxen sein dürfte.

Zuerst: Durch eine saubere Konfiguration lässt sich das ganze schnell aus der Welt schaffen. Aber wer macht denn sowas? Und: Die Möglichkeit besteht nur, wenn die DECT-Funktion der Box aktiviert ist.

Es ist ganz einfach: Die Box kann als Basisstation für DECT-Telefone genutzt werden. Und das wird sie vermutlich auch recht häufig. Wieso ein Kabel zur Basisstation des Telefons legen, wenn man selbiges auch gleich an der Fritz!Box anmelden kann?
Ist diese Funktion aktiv, kann man sich irgendein DECT-Telefon nehmen und die Basis suchen. Hat das Telefon die Box gefunden, fragt es nach der PIN. Diese Pin ist in der Fritz!Box standardmäßig auf 0000 eingestellt. Man kann sie ändern. Man wird dazu allerdings nicht aufgefordert und wörtlich steht dort zur PIN:

Damit Sie mit Ihren Schnurlostelefonen über die FRITZ!Box telefonieren können, müssen diese an der FRITZ!Box angemeldet sein. Für die Anmeldung benötigen Sie eine PIN. Diese legen Sie hier fest und geben sie während der Anmeldung im Telefon ein.
Vorbelegt ist die PIN 0000. Sie können diese PIN beibehalten oder eine andere PIN eingeben.

Wenn Sie ein FRITZ!Fon mithilfe der „automatischen Anmeldung“ anmelden möchten, darf die vorbelegte PIN nicht verändert werden.

Soweit so gut. Ich würde vermuten, dass die PIN an fast allen Geräten auf 0000 steht. Man tippt also am DECT-Mobilteil die 0000 ein und kann sich mit der Fritz!Box verbinden. Nun kann man verschiedene Dinge tun:

Einerseits ist des angemeldete Telefon nun teil des Systems und man kann Anrufe entgegennehmen und ausgehende tätigen, andererseits kann man über die Tastencodes einige Dinge an der Box verstellen: WLAN ein-/ausschalten, die Box neu starten, den Anrufbeantworter anrufen, auf allen Geräten „Bier holen!“ anzeigen lassen, die Box neustarten oder eben auf Werkseinstellungen zurücksetzen.

Falls man beispielsweise das WLAN-Passwort kennt, die Funktion aber ausgeschaltet ist, kann man sie so einfach einschalten. Kennt man das WLAN-Passwort, welches werksseitig vergeben wurde, nicht aber das geänderte aktuelle, setzt man die Box zurück und kann sich mit dem alten Passwort mit dem Netzwerk verbinden.

Wieso Copy & Paste böse sein kann

Tutorials sind toll. Wenn man etwas kompliziertes noch nicht gemacht hat, schaut man schnell man bei Google, ob jemand anders das nicht vielleicht schon mal gemacht und darüber geschrieben hat. Meistens werden in solchen Tutorials dann auch gleich die entsprechenden Befehle und Zeilen zum Kopieren und Einfügen mitgeliefert, was dem Suchenden natürlich eine Menge Arbeit spart.

Gut, der Lerneffekt bleibt dabei etwas auf der Strecke, aber manchmal möchte man etwas ja auch gar nicht können, sondern nur erledigen. Das ist ja auch okay.

Es gibt aber ein viel größeres Problem (auf das ich gerade erst stieß): Nicht immer ist das, was man sichtbar markiert auch das, was man kopiert. Wir wollen beispielsweise in ein Verzeichnis wechseln, das ich hier freundlicherweise gleich zum kopieren anbiete und das deshalb selbstverständlich nicht abgetippt wird:

cd /
ls > ~/rootverzeichnis.txt cd
/etc/dkms/template-dkms-mkdeb/debian

Sieht ja an sich super aus, oder? Das Problem dabei: Kopiert ihr diesen Befehl ins Terminal, habt ihr schon ins Root-Verzeichnis gewechselt, alle dort liegenden Dateien und Ordner aufgelistet und die Liste in der Datei rootverzeichnis.txt in eurem Home-Ordner abgelegt. Kopiert habt ihr folgendes:

cd /
ls > ~/rootverzeichnis.txt
cd /etc/dkms/template-dkms-mkdeb/debian

Da gehen natürlich noch ganz andere Dinge. Bei einem Tutorial zum Bearbeiten der /etc/fstab fällt es zum Beispiel nicht auf, wenn der Nutzer sich vorher mit sudo su Root-Rechte geben muss. Wie funktioniert das ganze? Ganz einfach: Alles zwischen dem ersten cd und dem Pfad wird ganz woanders angezeigt, nämlich 1000px über und 1000px links neben der Seite, außerhalb des Monitors also. Die Zeilenumbrüche sorgen dafür, dass die eingeschmuggelten Befehle auch sofort beim Einfügen ausgeführt werden:

cd /
ls > ~/rootverzeichnis.txt cd
/etc/dkms/template-dkms-mkdeb/debian

Bei Heise gibt es mehr dazu, gefunden habe ich das über einen Beitrag im Server Support Forum.

Also: Achtet darauf, von welcher Seite ihr Code kopiert. Wenn ihr der Seite nicht vertraut, haut nicht gleich das Kopiergut ins Terminal, sondern schaut es euch in einem Texteditor vorher noch einmal an. Das ganze klappt natürlich auch mit jedem anderen Betriebssystem mit Befehlszeile. Nur nutzt man die beispielsweise unter Windows weniger häufig.