Blacklisting von Domains + Subdomains per Regex

Bitte beachte diese Vorlage, damit wir dir bestmöglich helfen können!

Beobachtetes und erwartetes Verhalten

Moin, nutze hier Pi-hole v5.18.3, FTL v5.25.2, Web Interface v5.21 und möchte u. a. paar Onlinegame-Domains blocken. Dazu nutze ich die Funktion Add domain as wildcard:

Dennoch bleiben die Domains erreichbar :confused: . Ohne Regex wird zwar erwartungsgemäß geblockt, für jede denkbare Subdomain würde das aber einen extra Eintrag bedeuten. Was mache ich hier falsch?

Danke für eure Hilfe.

Nimm mal folgende Regex:

^(.+\.)?poki\.com$

1 Like

Das Vorgehen ist schon richtig.

Wenn nichts geblockt wird, könnte das darauf hindeuten, dass noch andere Domänen im Spiel sind, oder dass im Group Management etwas nicht richtig eingestellt ist, oder dass Pi-hole umgangen wird.

Ist z.B. DoH im Browser deaktiviert?

DoH ist nicht deaktiviert, bei Group Assignment war all selected. Ansonsten funktioniert Pi-hole erwartungsgemäß und zur vollsten Zufriedenheit.

@stonerl Regex-Tipp ist die Lösung, danke dafür. Kann es demnach sein, dass die Add domain as wildcard Funktion kein erwünschtes Ergebnis liefert?

Die Add domain as wildcard-Funktion funktioniert.
Ich habe die selbe Version laufen und soeben getestet. Domain und Subdomains werden wie erwartet geblockt.

Dein beobachtetes Verhalten kommt ermutlich daher, dass

  • der Browser via DoH den Pi-hole umgeht

oder

  • die Domain zuvor schon vom Browser oder System zwischengespeichert wurde (DNS Cache) und daher nicht erneut beim Pi-hole angefragt wurde.

Um sicher zu gehen, kannst du um Query Log nachschauen, welche Anfragen eingehen und wie Pi-hole diese beantwortet:


Regex blocked domain


Query Log

1 Like

Dann solltest Du das umgehend im Browser abschalten.
Solange das aktiviert ist, umgeht Dein Browser Pi-hole über DoH.

Kurz noch zu der Regex.

Diese hier (\.|^)poki\.com$ matcht nur bis zum ersten Subdomain Level oder die Basedomain.

  • poki.com
  • .poki.com

Aber nicht:

z. B.:

  • www.poki.com
  • 2.www.poki.com

Während diese ^(.+\.)?poki\.com$ jegliches Subdomainlevel matcht.

Das ist falsch.

Der Ausdruck findet vielmehr sowohl genau poki.mon als auch alle Domänen, die auf .poki.mon enden, also auch die genannten Beispiele.

Dann gib den Ausdruck mal auf https://regex101.com/ ein. Dort matched es nicht auf Subdomains sondern nur auf poki.com oder .poki.com.

Das sagt doch auch die Gruppe aus.

(\.|^) entweder es fängt mit Punkt an und endet auf poki.com oder es fängt mit poki.com, daher ^.

In der Regex steht nichts was auf irgendwas vor dem Punkt matched.

Nein.

Der Ausdruck sagt 'Finde die Zeichenkette .poki.mon am Ende (einer Domäne)'.

Dementsprechend liefert regex101:

Das zusätzliche Fragezeichen in Deinem Vorschlag bedeutet, dass die vorher stehende Gruppe ein- oder mehrmals vorkommen darf. Sie ändert damit nichts an der eigentlichen Suchvorgabe.

1 Like

Versuche es doch nochmal mit der automatisch erzeugten Regex, leere die DNS-Caches im Browser und vom System und schaue dann mal ins Query Log, ob Pi-hole die Anfragen bekommen und wie es geantwortet hat :wink:

@Bucking_Horn ich glaube, du hast mich hier komplett missverstanden. Ich habe nicht geschrieben, dass die Regex (\.|^)poki\.com exklusiv nur die Strings poki.com und .poki.com matcht.

Natürlich matcht es dies auch bei www.poki.com, aber nur den Teilstring .poki.com und nicht den Teilstring www. Das sieht man auch an den Einfärbungen in deinem Screenshot.

Bei meinem Vorschlag ist der Unterschied, dass auch der Teilstring vor .poki.com gematcht wird, sprich der gesamte String.

Wenn Pi-hole zum Blocken, nur einen Domain-Substring benötigt, könnte man auch einfach folgende Regex nehmen poki\.com$. Das hat dann denselben Effekt.

Da ich aber nicht weiß, was Pi-hole genau benötigt, sprich, ob eine Teilstring ausreicht oder man den gesamten String matchen muss, kann ich auch nicht sagen, ob es mit (\.|^)poki\.com grundsätzlich funktionieren sollte. Euren Aussagen nach sollte das so sein. Ändert habe nichts daran, wie die Regex arbeiten.

Du hast geschrieben:

Und auf meine Anmerkung, dass der von Pi-hole generierte RegEx-Ausdruck sehr wohl auch diese Beispiele findet, hast Du mir die Überprüfung bei regex101 empfohlen - welche nochmals bestätigt hat, dass der RegEx-Ausdruck matcht.

Es kommt hier nur auf den RegEx-Match an.

Pi-hole wertet den regulären Ausdruck in Bezug auf die angefragte Domäne aus.
Für eine solche zu testende Domäne liefert der reguläre Ausdruck eindeutig, ob er zutrifft (match) oder nicht (no match).

Sowohl Pi-holes als auch Dein Ausdruck matchen, aber Deiner muss dafür ggf. mehr überprüfen.

Dieser Ausdruck würde auch okipoki.com matchen, und damit zuviel. :wink:

Ich glaube da haben wir aneinander vorbeigeredet bzw. ich habe mich missverständlich ausgedrückt. :pensive_face:

Okay, danke für die Erklärung. Mich wundert nur warum dann der ursprüngliche Ausdruck nicht blockiert, der angepasste aber. Kann es sein, dass es einfach Zufall war und ein Neuanlegen der Regeln dasselbe Ergebnis gebracht hätte?

Das stimmt :joy:.

Errata: Es sollte heißen, DoH ist nicht aktiviert.

Der Hinweis von @TheME, den DNS Cache lokal zu löschen, hat's dann gebracht. Danke! Im Sinne von Homer Simpson als an mich adressiertes Wortspiel: Doh! :man_facepalming: :smile_cat:

1 Like

Weil ich im Forum max. zwei User im Post erwähnen darf, hier noch:
Danke auch an @stonerl und @Bucking_Horn für den Regex-Exkurs!

1 Like

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.