Probleme mit iOS 15 und 1Blocker

Seit dem Update auf iOS 15.1 hatte ich auf meinem iPhone ein seltsames Verhalten beobachtet. Sobald ich nur noch im Mobilfunk-Netz eingewählt war, konnten bestimmte URLs per DNS nicht mehr aufgelöst werden. Im Grunde fühlte es sich so an, als ob das halbe Internet nicht mehr erreichbar war.

Über die Einstellungen von 1Blocker kann das Problem umgangen werden

Nach einiger Analyse stellte ich dann fest, das die Probleme im Zusammenhang mit der App 1Blocker bzw. deren In-App-Tracker-Firewall, welche als lokales VPN unter iOS konfiguriert wird, standen.

‎1Blocker
Preis: Kostenlos+

Nach Auskunft des Entwicklers der App gab es unter iOS wohl einige Änderungen an den Einstellungen für mobiles Netzwerk, die auch die App betreffen. In den Einstellungen der Firewall von 1Blocker kann der Filtermodus auf HTTP Proxy gesetzt werden. Anschließend funktioniert die In-App-Tracker-Firewall auch bei mobilem Internet wieder.

DNS-Propagation überwachen

Wer einen DNS-Eintrag ändert, der weiß in den meisten Fällen das dieser nicht sofort weltweit verfügbar ist. Stattdessen, dauert es eine Weile bis die entsprechende Änderung auf allen DNS-Servern aktualisiert wurde. Im Normalfall wird von einem maximalen Aktualisierungszeitraum von 48 Stunden ausgegangen.

dnspropagation.net

Um diese DNS-Propagation zu überwachen, existieren eine Reihe von Diensten. Einer dieser Dienste ist der DNS Propagation Check, welcher unter dnspropagation.net zu finden ist. Nach Eingabe der entsprechenden Domain, werden unterschiedliche DNS-Server weltweit angefragt und deren Antworten übersichtlich aufbereitet. So kann sich der Nutzer schnell eine Übersicht verschaffen, ob die Domain mittlerweile auf die richtige IP-Adresse zeigt. Andere Dienste, die das Gleiche bieten sind unter anderem whatsmydns.net und dnschecker.org.

Genutzten DNS-Server unter macOS ermitteln

Um Domains zu ihren jeweiligen IP-Adressen aufzulösen, wird DNS genutzt. Dazu wird eine Anfrage an einen DNS-Server gestellt und dieser antwortet mit der entsprechenen IP-Adresse. Wenn unter macOS die genutzten DNS-Server ermittelt werden soll, kann dies im Terminal bewerkstelligt werden:

scutil --dns | grep nameserver

Als Antwort werden die entsprechenden DNS-Server ausgegeben:

nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8
nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8
nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8

Soll die komplette DNS-Konfiguration angezeigt werden, kann die Filterung mittels grep weggelassen werden:

scutil --dns

Damit erhält der Nutzer eine vollständigere Übersicht.

dig mit speziellem DNS-Server nutzen

Zum Abfragen von DNS-Servern kann unter Linux und macOS das Werkzeug dig genutzt werden. Unter Umständen muss dig unter Ubuntu erst installiert werden:

apt install dnsutils

Um mittels dig eine Domain aufzulösen, wird diese einfach als Parameter genutzt:

dig example.com

Anschließend wird die entsprechende Antwort geliefert:

; <<>> DiG 9.16.1-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48815
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		23658	IN	A	93.184.216.34

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Jan 26 09:07:13 CET 2021
;; MSG SIZE  rcvd: 56

Soll ein bestimmter DNS-Server abgefragt werden, so kann dies durch einen zusätzlichen Parameter mit einem vorangestellten At-Zeichen erledigt werden:

example.com @hydrogen.ns.hetzner.com.

Damit wird der entsprechende DNS-Server abgerufen:

; <<>> DiG 9.16.1-Ubuntu <<>> example.com @hydrogen.ns.hetzner.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20394
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		7200	IN	A	88.198.220.192

;; AUTHORITY SECTION:
example.com.		7200	IN	NS	ns3.second-ns.de.
example.com.		7200	IN	NS	ns.second-ns.com.
example.com.		7200	IN	NS	ns1.your-server.de.

;; Query time: 3 msec
;; SERVER: 2a01:4f8:0:1::add:1098#53(2a01:4f8:0:1::add:1098)
;; WHEN: Tue Jan 26 09:08:38 CET 2021
;; MSG SIZE  rcvd: 143

550-Inconsistent/Missing DNS PTR record

Beim Senden einer Mail an eine Mail des Anbieters Freenet erhielt ich vom Mail-Server folgende Antwort:

host emig.freenet.de[2001:748:100:40::8:115]
said: 550-Inconsistent/Missing DNS PTR record (RFC 1912 2.1)
(exammple.org) 550 [2001:db8:a0b:12f0::1]:34865 (in reply to RCPT TO command)

Der PTR Resource Record, auf den hier verwiesen wird, ist ein wichtiges Element für Durchführung von Reverse DNS-Abfragen. Für die IPv4- und die IPv6-Adresse des Servers hatte ich einen solchen Eintrag gesetzt. Deshalb war ich etwas verwundert, dass diese Meldung gesendet wurde. Bei der Nachforschung stellte ich dann fest, dass der Server eine IPv4-Adresse besitzt, aber ein ganzes IPv6-Subnetz. Das ist nicht weiter verwunderlich, allerdings sendet Postfix nicht mit einer festen IPv6-Adresse, sondern nutzt irgendeine Adresse aus dem Subnetz. Werden die Einstellungen von Postfix geöffnet:

nano /etc/postfix/main.cf

findet sich dort der Eintrag:

inet_interfaces = all

Durch diesen Eintrag ist nicht genau festgelegt welcher IP-Adresse für das Senden genutzt wird. Hier sollten die genauen IP-Adressen festgelegt werden:

inet_interfaces = 82.91.44.12,2001:db8:a0b:12f0::1

Anschließend sollte Postfix neugestartet werden:

service postfix restart

Wird nun erneut eine Mail an den Freenet-Server geschickt, so kann es passieren, dass die Fehlermeldung erneut zurückgesendet wird. In einem solchen Fall muss noch einige Minuten bis Stunden gewartet werden, bevor der Freenet-Server die Mails entgegennimmt.