Puncte:0

Imposibil de rezolvat zona dns privată prin vpn cu DNS bind9

drapel ca

Problema

Am un VPC în care trebuie să accesez serverele folosind FQDN-uri private. VPC-ul este accesibil printr-un VPN wireguard. Serverul VPN servește și ca server DNS care rulează BIND9. Am setat serverul DNS cu o zonă privată în conformitate cu aceasta tutorial. Din interiorul VPC-ului, DNS-ul funcționează conform așteptărilor și pot ajunge la servere prin FQDN-urile definite în zona DNS.

Când mă conectez la VPC prin tunelul VPN, nu pot rezolva acele FQDN-uri, deși mi-am configurat clientul VPN pentru a utiliza serverul meu DNS privat. Știu că clientul VPN folosește serverul meu DNS privat pentru că atunci când rulez nslookup google.com Văd adresa IP a DNS-ului meu, după cum puteți vedea rezultatul de mai jos:

Server: 10.118.0.2
Adresă: 10.118.0.2#53
...

Dacă rulez nslookup myprivate.domain.com de la o mașină conectată la VPC prin tunelul VPN, primesc un NXDOMAIN, același lucru este valabil și pentru ping, eșuează cu eroarea Numele sau serviciul nu este cunoscut. Cu toate acestea, dacă rulez ping pe adresa IP privată de la VPC, funcționează. Astfel, dacă myprivate.domain.com este găzduit pe server la10.118.0.3, ping-ul reușește pe adresa IP, dar eșuează pe FQDN.

În plus, vedeți rezultatele săpăturii când sunteți în VPC vs atunci când de la o mașină conectată prin VPN: dig dev.myprivatedomain.com ns: DE LA VPC:

;; ->>HEADER<<- opcode: QUERY, stare: NOERROR, id: 51703
;; steaguri: qr aa rd ra; ÎNTREBARE: 1, RĂSPUNS: 1, AUTORITATE: 0, SUPLIMENTARE: 1

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 4096
; COOKIE: 9dccc02158dee7f70100000061a7e0a1ce2597e377b9c301 (bine)
;; SECȚIUNEA DE ÎNTREBĂRI:
;dev.myprivatedomain.com. ÎN NS

;; SECȚIUNEA AUTORITATE:
nabuinternal.com. 604800 ÎN SOA ns1.myprivatedomain.com. ...

;; Timp de interogare: 0 ms
;; SERVER: 10.118.0.2#53(10.118.0.2)
;; CÂND: miercuri 01 decembrie 20:52:49 UTC 2021
;; MSG SIZE rcvd: 93

DE LA VPN:

;; Am răspuns:
;; ->>HEADER<<- opcode: QUERY, stare: NXDOMAIN, id: 57158
;; steaguri: qr rd ra; ÎNTREBARE: 1, RĂSPUNS: 0, AUTORITATE: 1, SUPLIMENTARE: 1

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 1232
;; SECȚIUNEA DE ÎNTREBĂRI:
;dev.myprivatedomain.com. ÎN NS

;; SECȚIUNEA AUTORITATE:
com. 900 ÎN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1638392201 1800 900 604800 86400

;; Timp de interogare: 44 ms
;; SERVER: 10.118.0.2#53(10.118.0.2)
;; CÂND: miercuri, 01 decembrie, 15:57:05 EST 2021
;; MSG SIZE rcvd: 122

Observ că ambele folosesc același server DNS, dar când sunt solicitate de la VPN, autoritatea pentru domeniul meu privat nu este returnată.

In concluzie, după mai multe ore de cercetare, nu reușesc să aflu ce lipsește clienților care se conectează la VPC prin VPN pentru a putea rezolva FQDN-urile definite de DNS-ul meu privat.

informatii suplimentare

  • Serverul este Ubuntu 20.04 LTS
  • Legatura 9: BIND 9.16.1-Ubuntu (Versiune stabilă)
  • apărătoare de sârmă: Wireguard-Tools v1.0.20200513 instalat prin wirespeed
  • UFW activat

IP-ul serverului VPN și DNS din VPC este 10.118.0.2.

Pool-ul de adrese VPN este 10.99.0.0/16 și am setat configurațiile BIND9 în felul următor:

acl „de încredere” {
    10.118.0.2; # serverul vpn și dns
    ...
    10.99.0.0/16; # pool de adrese VPN
    
};
Opțiuni {
    directorul „/var/cache/bind”;
    listen-on-v6 { orice; };
    recursivitate da;
    allow-recursion { de încredere; };
    ascultare pe { 10.118.0.0/20; 10.99.0.0/16; };  
    permit-transfer { niciunul; };
    expeditori {
            8.8.8.8;
            8.8.4.4;
    };
};

Zona este configurată astfel:

604800 USD TTL
@ ÎN SOA ns1.myprivatedomain.com. admin.myprivatedomain.com. (
                              9; Serial
                         604800; Reîmprospăta
                          86400; Reîncercați
                        2419200; Expira
                         604800); Cache negativ TTL
;                         
; servere de nume - înregistrări NS
    ÎN NS ns1.myprivatedomain.com.

; servere de nume - A înregistrează
ns1.myprivatedomain.com. ÎN A 10.118.0.2

; 10.118.0.0/20 - A înregistrează
dev.myprivatedomain.com. ÎN A 10.118.0.4
staging.myprivatedomain.com. ÎN A 10.118.0.3

și fișierul cu zona inversă:

604800 USD TTL
@ ÎN SOA ns1.myprivatedomain.com. admin.myprivatedomain.com. (
                              7; Serial
                         604800; Reîmprospăta
                          86400; Reîncercați
                        2419200; Expira
                         604800); Cache negativ TTL
;
; servere de nume - înregistrări NS
    ÎN NS ns1.myprivatedomain.com.

; Înregistrări PTR
2.0 ÎN PTR ns1.myprivatedomain.com. ; 10.118.0.2
4.0 ÎN PTR dev.myprivatedomain.com. ; 10.118.0.4
3.0 ÎN PTR staging.myprivatedomain.com. ; 10.118.0.3

UFW este setat să permită portul 53 atât pentru TCP, cât și pentru UDP.

De asemenea, UFW are reguli înainte de a permite traficul de la VPN:

*nat
: POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.99.0.0/16 -o eth1 -j MASQUERADE

Regula anterioară a fost configurată pentru a permite unui client să se conecteze la tunelul VPN și să utilizeze serverul DNS privat. Fără această regulă, nu pot accesa internetul decât dacă setez adresa DNS la una publică precum cea a google. Am găsit această regulă în timpul cercetării mele, totuși nu sunt încă foarte familiarizat cu configurațiile firewall și nu înțeleg încă pe deplin implicația acesteia. M-a ajutat să mă apropii de obiectivul meu, dar trebuie să citesc în continuare despre el.

Mai jos este configurația clientului wireguard VPN:

[Interfață]
...
DNS = 10.118.0.2
Adresa = 10.99.0.2/16

[Peer]
...
IP-uri permise = 10.99.0.0/16, 10.118.0.0/20

drapel cn
Bob
Configurația dvs. de legare afișează numai expeditori, dar nicio dovadă că este autoritară pentru (sub)domeniul dvs. privat. De obicei, atunci când rulați un server DNS personalizat, trebuie, de asemenea, să configurați una sau mai multe zone cu înregistrările DNS private (sau publice)
Arnaud Songa-Côté avatar
drapel ca
@Bob Mi-am actualizat postarea pentru a include fișierele de zonă și zona inversă care îmi configurează subdomeniile private.
djdomi avatar
drapel za
ascultare este setat greșit, ar trebui să fie IP-ul sau interfața serverului

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.