Problem Sonderzeichen und Umlaute exclude Webinterface

Guten Morgen,

Domainnamen, die Umlaute und Sonderzeichen enthalten, wie zum Beispiel

_ldap._tcp.dc._msdcs.nt-autorität.fritz.box

https:

lassen sich nicht in den Toplisten ausblenden.

Kann es eventuell in einer der nächsten Versionen behoben werden?

Solche Anfragen sind laut DNS-Protokoll nicht möglich, Umlaute und Sonderzeichen müssen in sog. Punycode umgewandelt werden.

Beispiel:

$ dig eineAnfrageMitUmläuten.de

kommt beim Pi-hole als

query[A] xn--eineanfragemitumluten-m2b.de from 192.168.2.2

an.

Wie sehen bei Dir die entsprechenden Zeilen in /var/log/pihole.log aus?
Kommt die Anfrage als Punycode oder (fälschlicherweise) unverändert mir Umlauten rein?

domaintäst.de :slight_smile: kommt als xn--domaintst-12a.de in den log

Und so taucht es bei mir auch in den Top Lists auf:

Guten Morgen,

in der Topliste taucht es bei mir mit ä auf:

_ldap._tcp.dc._msdcs.nt-autorität.fritz.box

Und im Logbuch?

grep "_ldap_\.tcp\.dc" /var/log/pihole.log

Mit

grep "_ldap_\.tcp\.dc" /var/log/pihole.log

bekomme ich nichts angezeigt =(

Run this to look in yesterday's log:

grep "_ldap_\.tcp\.dc" /var/log/pihole.log.1

Kein Ergebnis...

Aber:

Top Permitted Domains

_ldap._tcp.dc._msdcs.nt-autorität.fritz.box  33 Hits

Wenn ich das hier in den Browser eingebe:

_ldap._tcp.dc._msdcs.nt-autorität.fritz.box

ist das hier im Query Log vom Pi-Hole:

_ldap._tcp.dc._msdcs.xn--nt-autoritt-u8a.fritz.box

So ist es richtig.

Aber wenn ich aber z.B. über die Konsole vom Pi-Hole gehe:

dig _ldap._tcp.dc._msdcs.nt-autorität.fritz.box

bekomme ich folgende Rückantwort:

; <<>> DiG 9.9.5-9+deb8u17-Raspbian <<>> _ldap._tcp.dc._msdcs.nt-autorität.fritz.box
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30515
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_ldap._tcp.dc._msdcs.nt-autorit\195\164t.fritz.box. IN A

;; ANSWER SECTION:
_ldap._tcp.dc._msdcs.nt-autorit\195\164t.fritz.box. 2 IN A 192.168.0.10

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Mar 06 10:15:09 CET 2019
;; MSG SIZE rcvd: 89

Im Query Log und auf dem Dashboard vom Pi-Hole finde ich nun das hier wieder:

_ldap._tcp.dc._msdcs.nt-autorität.fritz.box

Das gleiche Ergebnis erhalte ich, wenn ich von der Konsole eines Synology NAS es mit nslookup probiere:

nslookup _ldap._tcp.dc._msdcs.nt-autorität.fritz.box
Server: 192.168.0.4
Address: 192.168.0.4#53

Name: _ldap._tcp.dc._msdcs.nt-autorit\195\164t.fritz.box
Address: 192.168.0.10

Wenn ich die Domain über das Webinterface zu den Exclude Top Lists hinzufügen möchte, bekomme ich folgenden Fehler:

Top Domains/Ads entry _ldap._tcp.dc._msdcs.nt-autorität.fritz.box is invalid (use only domains)!
The settings have been reset to their previous values

Ich habe es inzwischen geschafft auf diesem Wege das Query Log zu zerschießen.

Wenn ich unter Win7 über die Konsole (cmd.exe) einen nslookup mache, bekomme ich als Antwort für das ä den griechischen Buchstaben Sigma.

Wenn ich das das Query Log aufrufe, bekomme ich folgende Fehlermeldung:

Auch auf dem Dashboard werden keine Domains mehr aufgelistet. Die Pfeile drehen sich unendlich. Der Rest auf dem Dashboard funktioniert aber.

Hmm, ja, ich sehe es. Das man die Domain nicht hinzufügen kann liegt daran, dass wir PHP fragen ob die Domain nur aus gültigen Zeichen besteht. Umlaute sind laut DNS-Vorschriften keine gültigen Zeichen und sollten nicht vorkommen. Fehlerhafte Implementierungen in irgendwelchen Clients führen nun dazu, dass es doch zu solchen Queries kommt. Okay, dann müssen wir eben doch damit umgehen können (auch wenn das per Standard eigentlich ausgeschlossen ist).

Die Domain solltest Du trotzdem hinzufügen können, schau nach der Option API_EXCLUDE_DOMAINS in /etc/pihole/setupVars.conf.

Auch in der API gehen wir davon aus, dass es keine nichtzulässigen Zeichen gibt. Das könnten wir anfangen indem wir vor der Übertragung an den Browser des Nutzers alle evtl. vorkommenden Sonderzeichen suchen und durch den entsprechenden HTML-Code zu ersetzen. Ich befürchte aber dass das das Query Log um bis zu den Faktor 2 langsamer machen könnte ohne dass es in > 99% der Fälle überhaupt nötig sein sollte.

Query Log langsamer? Nein, dann lebe ich lieber mit dem Ä =)