[GELÖST] Nameserver hinter Firewall nicht mehr aus dem Internet erreichbar

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

[GELÖST] Nameserver hinter Firewall nicht mehr aus dem Internet erreichbar

Beitrag von BrotherJ » 11.05.2019 16:06:36

Hallo,

ich habe auf einem KVM-Host einen Nameserver BIND9 (192.168.1.85 intern) (192.109.24.85 extern) laufen. Alle Maschinen haben Debian Stretch installiert. Und auf dem KVM-Host läuft IPtables (Shorewall), um ein internes Netzwerk der VMs und des Hosts untereinander zu realisieren und nur bestimmte Services reinzulassen.
Der Nameserver war jetzt auch seit sechs Monaten gut erreichbar aus dem Internet. Ich hatte ihn neu konfiguriert, inzwischen aber wieder das alte Backup eingespielt. Nur seitdem ist der ns1.germany.com über DIG aus dem Internet nicht mehr erreichbar. Und somit sind Mailserver und Webserver der Domänen ebenfalls abgeklemmt.

Hier der Versuch aus dem Internet heraus:

Code: Alles auswählen

$ dig @192.109.24.85  A ns1.germany.com

; <<>> DiG 9.10.3-P4-Debian <<>> @192.109.24.85 A ns1.germany.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
Auf KVM-Host 192.168.1.66 funktioniert die Abfrage:

Code: Alles auswählen

dig @192.168.1.85  A ns1.germany.com

; <<>> DiG 9.10.3-P4-Debian <<>> @192.168.1.85 A ns1.germany.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 246
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 7, ADDITIONAL: 2

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

;; ANSWER SECTION:
ns1.germany.com.        3600    IN      A       192.109.24.84

;; AUTHORITY SECTION:
germany.com.            3600    IN      NS      ns1.germany.com.
germany.com.            3600    IN      NS      ns2.he.net.
germany.com.            3600    IN      NS      ns2.germany.com.
germany.com.            3600    IN      NS      ns3.he.net.
germany.com.            3600    IN      NS      ns1.he.net.
germany.com.            3600    IN      NS      ns5.he.net.
germany.com.            3600    IN      NS      ns4.he.net.

;; ADDITIONAL SECTION:
ns2.germany.com.        3600    IN      A       192.109.24.85

;; Query time: 0 msec
;; SERVER: 192.168.1.85#53(192.168.1.85)
;; WHEN: Sat May 11 15:46:03 CEST 2019
;; MSG SIZE  rcvd: 204
Und auf dem Nameserver selbst klappt es auch:

Code: Alles auswählen

dig @192.109.24.85  A ns1.germany.com

; <<>> DiG 9.10.3-P4-Debian <<>> @192.109.24.85 A ns1.germany.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48104
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 7, ADDITIONAL: 2
;; WARNING: recursion requested but not available

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

;; ANSWER SECTION:
ns1.germany.com.        3600    IN      A       192.109.24.84

;; AUTHORITY SECTION:
germany.com.            3600    IN      NS      ns4.he.net.
germany.com.            3600    IN      NS      ns2.germany.com.
germany.com.            3600    IN      NS      ns1.he.net.
germany.com.            3600    IN      NS      ns1.germany.com.
germany.com.            3600    IN      NS      ns3.he.net.
germany.com.            3600    IN      NS      ns5.he.net.
germany.com.            3600    IN      NS      ns2.he.net.

;; ADDITIONAL SECTION:
ns2.germany.com.        3600    IN      A       192.109.24.85

;; Query time: 1 msec
;; SERVER: 192.109.24.85#53(192.109.24.85)
;; WHEN: Sat May 11 15:55:24 CEST 2019
;; MSG SIZE  rcvd: 204
bzw.

Code: Alles auswählen

dig @192.168.1.85  A ns1.germany.com

; <<>> DiG 9.10.3-P4-Debian <<>> @192.168.1.85 A ns1.germany.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15997
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 7, ADDITIONAL: 2

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

;; ANSWER SECTION:
ns1.germany.com.        3600    IN      A       192.109.24.84

;; AUTHORITY SECTION:
germany.com.            3600    IN      NS      ns4.he.net.
germany.com.            3600    IN      NS      ns5.he.net.
germany.com.            3600    IN      NS      ns2.germany.com.
germany.com.            3600    IN      NS      ns2.he.net.
germany.com.            3600    IN      NS      ns1.he.net.
germany.com.            3600    IN      NS      ns3.he.net.
germany.com.            3600    IN      NS      ns1.germany.com.

;; ADDITIONAL SECTION:
ns2.germany.com.        3600    IN      A       192.109.24.85

;; Query time: 0 msec
;; SERVER: 192.168.1.85#53(192.168.1.85)
;; WHEN: Sat May 11 15:55:58 CEST 2019
;; MSG SIZE  rcvd: 204
Hier ist ein Blick auf die IPTables-Regeln mit DNS:

Code: Alles auswählen

iptables -L
Chain fw-loc (1 references)
target     prot opt source               destination                   
ACCEPT     udp  --  anywhere             192.168.1.66         udp dpt:domain /* DNS */
ACCEPT     tcp  --  anywhere             192.168.1.66         tcp dpt:domain /* DNS */
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain /* DNS */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain /* DNS */
LOG        all  --  anywhere             anywhere             LOG level info prefix "Shorewall:fw-loc:ACCEPT:"
ACCEPT     all  --  anywhere             anywhere            

Chain fw-net (1 references)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain /* DNS */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain /* DNS */

Chain loc-fw (1 references)
target     prot opt source               destination         
ACCEPT     udp  --  192.168.1.66         anywhere             udp dpt:domain /* DNS */
ACCEPT     tcp  --  192.168.1.66         anywhere             tcp dpt:domain /* DNS */
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain /* DNS */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain /* DNS */

Chain loc-net (1 references)
target     prot opt source               destination         
ACCEPT     udp  --  192.168.1.84         anywhere             udp dpt:domain /* DNS */
ACCEPT     tcp  --  192.168.1.84         anywhere             tcp dpt:domain /* DNS */

Chain net-fw (1 references)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain /* DNS */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain /* DNS */

Chain net-loc (1 references)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             192.168.1.84         udp dpt:domain /* DNS */
ACCEPT     tcp  --  anywhere             192.168.1.84         tcp dpt:domain /* DNS */
net steht für Internet
loc steht für lokales Netz
fw steht für die Firewall auf dem Host

Ich stehe so ziemlich auf dem Schlauch, warum plötzlich die alten IPTables-Rules nicht mehr funktionieren.

Grüße
BrotherJ

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: [GELÖST] Nameserver hinter Firewall nicht mehr aus dem Internet erreichbar

Beitrag von BrotherJ » 12.05.2019 14:17:40

Habe in der named.conf.option in der allow_query-Direktive leider falsche Werte übernommen.
Fehlermeldung sah aber auch schon so aus, dass zwar ein laufender Bind-Server entdeckt wurde, Firewallregeln aber die Verbindung kappen. Dabei war das der Bind-Server selbst.
Immerhin läuft es jetzt wieder.

BrotherJ

Antworten