linzus
Anmeldungsdatum: 31. Dezember 2015
Beiträge: Zähle...
|
Hi, ich habe einen Bind9 Server auf meinem Mailserver installiert. Postfix befragt hierbei Listen von spamhause.org ab.
Leider funktioniert die Abfrage nicht. Versuche ich ein bekomme ich ein 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | ; <<>> DiG 9.11.3-1ubuntu1.10-Ubuntu <<>> zen.spamhaus.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 29787
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: f1dd2d607eb5def68529e3925dd0096175fe35aafefe9d82 (good)
;; QUESTION SECTION:
;zen.spamhaus.org. IN A
;; Query time: 4001 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Nov 16 15:36:17 CET 2019
;; MSG SIZE rcvd: 73
|
Frage ich die Domäne von irgendeinem anderen Host aus ab, so ist die Auflösung erfolgreich. Komisch ist, dass nur (Sub-)Domänen bei Spamhaus.org fehlschlagen. Ein 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 | dig zen.spamhaus.org -ddd
dig_startup()
lock_lookup ../../../bin/dig/dighost.c:4446
success
start_lookup()
setup_lookup(0x561b7c746528)
resetting lookup counter.
cloning server list
clone_server_list()
make_server(127.0.0.1)
make_server(::1)
using root origin
recursive query
AD query
add_question()
starting to render the message
add_opt()
done rendering
create query 0x7fd1aadb4018 linked to lookup 0x561b7c746528
create query 0x7fd1aadb4298 linked to lookup 0x561b7c746528
do_lookup()
send_udp(0x7fd1aadb4018)
bringup_timer()
have local timeout of 1
working on lookup 0x561b7c746528, query 0x7fd1aadb4018
sockcount=1
recving with lookup=0x561b7c746528, query=0x7fd1aadb4018, sock=0x7fd1aadb6010
recvcount=1
sending a request
unlock_lookup ../../../bin/dig/dighost.c:4448
lock_lookup ../../../bin/dig/dighost.c:2854
success
send_done()
sendcount=0
check_if_done()
list empty
unlock_lookup ../../../bin/dig/dighost.c:2885
connect_timeout()
lock_lookup ../../../bin/dig/dighost.c:3222
success
trying next server...
send_udp(0x7fd1aadb4298)
bringup_timer()
have local timeout of 5
working on lookup 0x561b7c746528, query 0x7fd1aadb4298
sockcount=2
recving with lookup=0x561b7c746528, query=0x7fd1aadb4298, sock=0x7fd1aadb6270
recvcount=2
sending a request
unlock_lookup ../../../bin/dig/dighost.c:3247
lock_lookup ../../../bin/dig/dighost.c:2854
success
send_done()
sendcount=0
check_if_done()
list empty
unlock_lookup ../../../bin/dig/dighost.c:2885
^Cdestroy
cancel_all()
lock_lookup ../../../bin/dig/dighost.c:4462
success
canceling pending query 0x7fd1aadb4018, belonging to 0x561b7c746528
canceling pending query 0x7fd1aadb4298, belonging to 0x561b7c746528
unlock_lookup ../../../bin/dig/dighost.c:4503
destroy_libs()
freeing task
freeing taskmgr
recv_done()
lock_lookup ../../../bin/dig/dighost.c:3806
success
recvcount=1
lookup=0x561b7c746528, query=0x7fd1aadb4018
no longer pending. Got operation canceled
clear_query(0x7fd1aadb4018)
sockcount=1
check_next_lookup(0x561b7c746528)
still have a worker
unlock_lookup ../../../bin/dig/dighost.c:3834
recv_done()
lock_lookup ../../../bin/dig/dighost.c:3806
success
recvcount=0
lookup=0x561b7c746528, query=0x7fd1aadb4298
no longer pending. Got operation canceled
clear_query(0x7fd1aadb4298)
sockcount=0
check_next_lookup(0x561b7c746528)
try_clear_lookup(0x561b7c746528)
destroy
freeing server 0x7fd19c000b28 belonging to 0x561b7c746528
freeing server 0x7fd19c001348 belonging to 0x561b7c746528
start_lookup()
unlock_lookup ../../../bin/dig/dighost.c:3834
lock_lookup ../../../bin/dig/dighost.c:4535
success
flush_server_list()
freeing commctx
freeing socketmgr
freeing timermgr
destroy DST lib
detach from entropy
unlock_lookup ../../../bin/dig/dighost.c:4588
Destroy the messages kept for sigchase
Removing log context
Destroy memory
|
liefert mir keine Hinweise wieso die Auflösung fehlschlägt. Any hints? VG
|
sebix
Moderator, Webteam
Anmeldungsdatum: 14. April 2009
Beiträge: 5336
|
|
linzus
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2015
Beiträge: Zähle...
|
DNS-Logs: | (54.219.234.185.zen.spamhaus.org): query failed (SERVFAIL) for 54.219.234.185.zen.spamhaus.org/IN/A at ../../../bin/named/query.c:8402
|
Postfix-Logs: | warning: dnsblog_query: lookup error for DNS query 54.219.234.185.zen.spamhaus.org: Host or domain name not found. Name service error for name=54.219.234.185.zen.spamhaus.org type=A: Host not found, try again
|
|
Cranvil
Anmeldungsdatum: 9. März 2019
Beiträge: 990
|
Was sagt dig denn, wenn du die genaue Abfrage aus den Logs wiederholst und zwar genau von dem Host, der die Abfragen stellt? Benutzt du das kostenfreie Angebot und kommst mit der Anzahl deiner Verbindungen bzw. Abfragen in einen Bereich, der dich begrenzt (DNSBL Usage Termins)?
|
linzus
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2015
Beiträge: 147
|
Wenn ich per
| dig @8.8.8.8 zen.spamhaus.org
|
Frage funktioniert die Anfrage :-/
|
Cranvil
Anmeldungsdatum: 9. März 2019
Beiträge: 990
|
Deine Logs sagen, dass die Server nach 54.219.234.185.zen.spamhaus.org fragen und nicht nach zen.spamhaus.org .
|
linzus
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2015
Beiträge: 147
|
Cranvil schrieb: Deine Logs sagen, dass die Server nach 54.219.234.185.zen.spamhaus.org fragen und nicht nach zen.spamhaus.org .
Ja du hast Recht, es geht um sämtliche Anfragen zu subdomänen von spamhaus.org. Keine funktioniert Ich habe das Problem nun lösen können, indem ich Bind gesagt habe, es möge google nameserver zum forwarden benutzten...?
|
Cranvil
Anmeldungsdatum: 9. März 2019
Beiträge: 990
|
linzus schrieb: Ich habe das Problem nun lösen können, indem ich Bind gesagt habe, es möge google nameserver zum forwarden benutzten...?
Ich habe ein paar Probleme mit dieser Zeile. Fangen wir konstruktiv an und wandern später für die Probleme ab in Richtung meiner persönlichen Ansichten. 😉 Google verwendet auf seinen öffentlichen DNS-Server Rate Limiting. Das könnte dazu führen, dass der von dir gefundene Workaround zeitweise nicht funktioniert, weil du zu viele Anfragen in einem bestimmten Zeitfenster stellst. Da es sich um einen öffentlich erreichbaren Mailserver zu handeln scheint, könnte das Limit unter Umständen schneller erreicht sein als dir lieb ist. Du löst das Problem also nicht, sondern riskierst sogar, dass es zu noch weniger gut nachvollziehbarem Verhalten kommt. Wenn wir also das Problem lösen wollen, bevor du dich mit später Google rumschlagen musst und wieder hier landest, sollten wir das nochmal gründlich und von vorn anfangen. Hierzu ist es nach wie vor interessant, die Ausgaben von dig zu sehen, die von dem Host mit dem Problem aus gestartet wurden - und das mit den vollständigen Hostnamen. Nutzen wir doch gleich die Gelegenheit, nochmal auf deine Server-Konfiguration zu schauen.
Wie ist die DNS-Auflösung des Mailservers konfiguriert? Verwendet der Mailserver bzw. der Host wirklich den lokal installierten Bind9? Wie ist der Bind9 konfiguriert? Ist ein ISP-DNS eingetragen bzw. war vor deinem Google-Eintrag ein anderer Forwarder eingetragen? Wenn es einen anderen Forwarder gegeben hat, wo hat er hingezeigt (anderer eigener Host, Hoster, ISP, externer Dienst)?
Funktioniert es besser/schlechter mit/ohne die Option forward only ?
So, das war's erstmal mit dem konstruktiven Teil, nun zum Meinungsteil. Da ich mich täglich mit Störungen, Problemen und Workarounds beschäftige, bin ich etwas sensibel, wenn jemand etwas unter den Teppich kehrt und es dann als Problemlösung betrachtet. Jeder weiß erstmal, was im Kontext gemeint ist, andererseits wird's eben spätestens dann schwierig, wenn der Teppich weggenommen wird oder jemand über den Huckel im Teppich stolpert. Plötzlich kochen die Emotionen hoch, Kinder schlagen ihre Eltern und dergleichen mehr. Kurzum: Wenn ich nicht weiß, was zu der Störung geführt hat, kann ich nicht bewerten, ob das Problem gelöst ist. Ich kann mich nicht kurz fassen - das ist meine Sünde. Was mir Schwierigkeiten bereitet ist die beliebig wirkende Verwendung von Satz(ende)zeichen. Stellst du uns die Frage, dass dein Problem gelöst ist? Willst du damit ausdrücken, dass du unsicher bist, ob das Problem jetzt gelöst ist? Da wir nicht die Anforderungen definieren, können wir die eine Frage nicht beantworten. Und der Klarheit halber würde bei der zweiten Frage helfen, den Workaround zu benennen und dann ein "Wie seht ihr das? Passt das so?" anzuhängen, anstatt den Satz mit ? zu beenden. Ich mag Ellipsen (…) in Beiträgen in Chats und Foren nicht besonders. Ich setze sie nur spärlich ein und dann meistens, um eine Art Naserümpfen zu kommunizieren oder um analog zu usw. anzudeuten, dass es noch mehr zu sagen gibt, ich es aber erstmal beim bisher gesagten zu belassen. Und ich beschränke diese Verwendung noch mehr, indem ich … in Beiträgen bzw. Abschnitten verwende. In einem Frage- und Antwortspiel zur Lösung eines Problems haben sie aus meiner Sicht nichts zu suchen. Damit aber genug überheblicher Sabbelei. Ich hoffe, wir kommen mit den Fragen aus dem konstruktiven Teil dieses Beitrags voran. ☺
|
linzus
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2015
Beiträge: 147
|
Hi @Cranvil, hehe, danke für den konstruktiven als auch den persönlichen Teil deines Feedbacks!
Du hast Recht, ich habe einige Teile unter den Teppich gekehrt und möchte mich entschuldigen! Die Konfiguration zuerst (nicht funktionierend) war folgende (IP geschwärzt): 1
2
3
4
5
6
7
8
9
10
11
12 |
#/etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens4:
addresses:
- x.y.z.z/32
nameservers:
addresses: [213.133.100.100]
|
und eine Bind-Konfig ohne forwarder.
Das System hat also den DNS-Server 213.133.100.100 verwendet (mit welchem Spamhaus-Subdomänen nicht auflösbar sind). Im Anschluss habe ich den Host umkonfiguriert zu: 1
2
3
4
5
6
7
8
9
10
11
12 |
#/etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens4:
addresses:
- x.y.z.z/32
nameservers:
addresses: [127.0.0.1]
|
Und im Bind den Forwarder-Eintrag auf den Google-DNS-Server gesetzt. Der lokale Resolver also befragt nun den Bind-NS, welcher wiederum für rekursive Anfragen den Google-NS verwendet. Am liebsten wäre es mir, der lokale Bind würde alle Anfragen einfach selbst iterativ auflösen, allerdings weiss ich nicht wie ich dies konfigurieren kann. Kannst du mir helfen? Die Ausgabe von dig hängt ganz am Anfang der Anfrage. Meine Bind9-Config sieht (nun aktuell) folgendermassen aus: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | options {
directory "/var/cache/bind";
listen-on port 53 { 127.0.0.1; x.y.z.x; };
allow-query { any; };
allow-recursion { 127.0.0.1; };
allow-query-cache { 127.0.0.1; };
// ermöglicht recursive dnssec auflösung
// dnssec-validation auto;
// lets bind deliver dnssec-entries by default (and not only on request)
dnssec-enable no;
auth-nxdomain no;
listen-on-v6 { none; };
filter-aaaa-on-v4 yes;
// gibt additional & weitere RRs nur auf Anfrage aus -> Performance
minimal-responses yes;
querylog yes;
forwarders { 8.8.8.8; };
};
|
|
Cranvil
Anmeldungsdatum: 9. März 2019
Beiträge: 990
|
Wenn du die Option forwarders entfernst, sollte bind von allein die richtigen DNS-Server fragen. Du kannst noch in /etc/bind/named.conf.local nachschauen. Wenn du die Datei nach der Installation nicht verändert hast, sollte am Anfang ein Abschnitt mit dem Verweis auf die Datei mit den root-Hints zu finden sein. Forwarders herausnehmen, bind neustarten, testen.
|
sebix
Moderator, Webteam
Anmeldungsdatum: 14. April 2009
Beiträge: 5336
|
Cranvil schrieb: Benutzt du das kostenfreie Angebot und kommst mit der Anzahl deiner Verbindungen bzw. Abfragen in einen Bereich, der dich begrenzt (DNSBL Usage Termins)?
Falls das das Problem ist, koennte https://www.spamhaustech.com/dqs/ helfen, damit bist du eventuelle Rate-Limits seitens Spamhaus los. Denn es kann sein, dass andere Server in deinem IP-Addressbereich deren API zu oft befragen. Nur als Info am Rande.
|
linzus
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2015
Beiträge: 147
|
Hi Cranvil, habe ich gemacht, funktioniert. Bedeutet das, dass Bind jeden Namen, den er nicht im Cache liegen hat selbst autoritativ auflöst, sprich den Root-Server nach "de" fragt, dann den DE-Server nach "my-domain" usw.? Auf meinem Secondary DNS-Server (Slave), kann ich (aber bereits vor der Änderung so) nun die Domäne des Primarys nicht mehr auflösen, aber das Problem bestand davor schon und gehört nicht hier her 😀 VG
|
Cranvil
Anmeldungsdatum: 9. März 2019
Beiträge: 990
|
linzus schrieb: habe ich gemacht, funktioniert.
Gut
Bedeutet das, dass Bind jeden Namen, den er nicht im Cache liegen hat selbst autoritativ auflöst, sprich den Root-Server nach "de" fragt, dann den DE-Server nach "my-domain" usw.?
Er macht grob das, was du sagst, allerdings nennt sich dieses Vorgehen iterativ, weil er die Domain (wie beschrieben) schrittweise auflöst. Es gibt noch die rekursive Namensauflösung. Hier bittet man den DNS-Server, der die Abfrage erhält, doch bitte den vollständig aufgelösten Namen bereitzustellen. Ein autoritativer DNS-Server ist im sogenannten SOA-Eintrag (Start of Authority) vermerkt. Jede Zone hat so einen Eintrag und der referenzierte DNS-Server gilt als Quelle des Wahren Wissens. Alle anderen DNS-Server können sich nur auf Hörensagen berufen.
Auf meinem Secondary DNS-Server (Slave), kann ich (aber bereits vor der Änderung so) nun die Domäne des Primarys nicht mehr auflösen, aber das Problem bestand davor schon und gehört nicht hier her 😀
Es wird dich niemand daran hindern, dieses Problem hier in einem eigenen Thread zu schildern und eine Lösung dafür zu finden. Edit: Wenn das Problem für dich verstanden und gelöst ist, vergiss nicht die Markierung als solches. Jeder mag grüne Häkchen! 😉
|
linzus
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2015
Beiträge: 147
|
Hi @Cranvil, mist, nein, das Problem ist zurück. Status-Quo liefert die Abfrage jeglicher Subdomäne von Spamhaus.org wieder einen <Servfail>.
|
Cranvil
Anmeldungsdatum: 9. März 2019
Beiträge: 990
|
Das @ hat hier im Forum keine syntaktische Auswirkung. Wenn du einen Benutzerlink anlegen möchtest, kannst du das Makro \[user:Benutzername:] verwenden. Wichtig: Im Gegensatz zu Systemen, die mit Mentions arbeiten, wird der betroffene Benutzer nicht benachrichtigt. Zusammengefasst: Lass das @ weg, da es keinen Mehrwert bietet. 😉 Hast du dich schon mit sebix' Vorschlag befasst? Wenn es eine Zeit lang funktioniert und dann wieder nicht, sieht das durchaus nach Rate Limiting aus. Der Verdacht ließe sich erhärten, wenn du die Blacklist eine Weile nicht mehr abfragst und es nach Reaktivierung der Abfragen wieder funktioniert - und dann wieder nicht.
|