Tõstsite WireGuardi üles, tunnel laseb liiklust läbi ja sisemine nimi ei lahendu ikka. Järgmine samm on tavaliselt otsida WireGuardi konfiguratsioonist DNS-i seadet, nagu saaks peer resolverit saata, nii nagu mõned teised VPN-id teevad. Ei saa. Kätlus kannab võtmeid, liidese aadresse ja lubatud IP-sid ning sellel pole välja DNS-serverite ega otsingudomeenide jaoks. Resolveri poliitika elab kliendil ja sinna kuulub parandus.

Tunnel ja resolver on eraldi lepingud

WireGuard on meelega väike. See liigutab pakette teie loetletud aadresside jaoks ja autendib peere; kõik sellest kihist kõrgemal on teie disain. OpenVPN suudab dhcp-option DNS saata, sest selle juhtkanal kannab konfiguratsiooni, ja see erinevus komistab neid, kes kahe vahel liiguvad.

Nii et töötav tunnel ei ütle teile nime lahendamisest midagi. Kliendil võib olla täiuslik marsruut aadressile 10.90.0.1 ja ta võib ikkagi saata oma päringud avalikule resolverile, mistõttu sümptom näeb välja nagu “VPN rikkus DNS-i”, kuigi DNS-i ei olnud kunagi VPN-ile suunatud.

Teenindage tsooni ilma rekursiivseks resolveriks muutumata

Serveripool on väike autoriteetne tsoon, mitte üldine resolver. Selles näites on lüüs 10.90.0.1, kliendid on 10.90.0.0/24 ja rakendus, mis teile loeb, vastab aadressil 10.60.0.20.

Sulandage need seaded olemasolevasse options plokki, mitte ärge looge teist:

options {
    listen-on { 127.0.0.1; 10.90.0.1; };
    listen-on-v6 { none; };
    allow-query { 127.0.0.1; 10.90.0.0/24; };
    allow-transfer { none; };
    recursion no;
};

Seejärel deklareerige tsoon ja selle fail:

zone "corp.example" {
    type primary;
    file "/etc/bind/db.corp.example";
};
$TTL 300
@ IN SOA ns.corp.example. hostmaster.corp.example. ( 1 3600 600 604800 300 )
@      IN NS ns.corp.example.
ns     IN A  10.90.0.1
portal IN A  10.60.0.20

Valideerige enne uuesti laadimist, sest süntaksiviga laadimise ajal võtab maha kogu serveri iga tsooni jaoks, mida see teenindab:

named-checkconf
named-checkzone corp.example /etc/bind/db.corp.example

Avage UDP ja TCP 53 ainult VPN-i liidesel. Privaatse autoriteedi avaldamine avalikul liidesel kutsub esile nii päringud kui ka loendamise, ja allow-transfer peaks jääma suletuks, kui sekundaarne seda tõesti ei vaja.

Suunake klient sellele, lingi kaupa

Eeldage, et ühendust omab NetworkManager ja resolver on systemd-resolved. Lugege esmalt olemasolevat poliitikat, eriti mis tahes juur-marsruudidomeeni, sest kirje ~. ületab selle, mida kavatsete lisada.

nmcli connection modify wg-office +ipv4.dns 10.90.0.1
nmcli connection modify wg-office +ipv4.dns-search '~corp.example'

Tilde on tähtis märk. See märgib domeeni ainult-marsruudiks: nimed corp.example all lähevad selle lingi DNS-serverisse ja domeeni ei lisata lühinimede otsingu sufiksina. Ilma selleta hakkab portal sisestamine lahendama portal.corp.example, mis on teile mugav ja kõigile teistele üllatav. Hoidke tildet jutumärkide sees, sest ilma jutumärkideta on see kesta laiendus, mis ootab osutamist teie kodukataloogile.

Rakendage muudatus liidest omava halduri kaudu ja seejärel ühendage ühendus uuesti. Ärge käivitage sama liidese jaoks teist wg-quick eksemplari; kaks omanikku võitlevad marsruutide pärast ja üks neist võidab halvimal hetkel.

Kontrollige teed enne nime

Pärige nime kliendilt ja kinnitage nii vastus kui ka server, mis selle andis:

resolvectl query portal.corp.example

Kui see tagastab 10.60.0.20, on DNS-i leping täidetud. Kui see aegub, kontrollige esmalt marsruuti aadressile 10.90.0.1, seejärel tulemüüri reeglit ja siis allow-query serveris. Nime lahendamise tõrked selles seadistuses on peaaegu alati kättesaadavus või ACL, mitte tsoonifail. Töötage kliendist väljapoole, sest server ei saa teile öelda, miks päring kunagi kohale ei jõudnud.

Pidage meeles, et rakendus vajab endiselt oma marsruuti ja oma teenuseluba. Lahendatud nimi, mis osutab kättesaamatule aadressile, on teine tõrge samades riietes.

Mis veel automaatne ei ole

Oma resolveriloogikaga rakendused eiravad süsteemi resolverit täielikult ja ükski kogus nmcli ei muuda seda. Juurutused, mis valideerivad DNSSEC-i, vajavad privaatse tsooni jaoks selget usaldusankru kavandit; vastus ei ole üldine korraldus valideerimine välja lülitada. Testige sama klienditarkvaraga, mida teie kasutajad kasutavad, mitte tööriistaga, mis juhtub kasutama süsteemi resolverit. Nende kahe vaheline lõhe on kogu veaaruande sisu.

Pargid saavad seda kliendipoliitikat oma provisioneerimissüsteemi kaudu automatiseerida, kuid poliitika jääb omanikuga eraldiseisvaks objektiks. BIND 9 viide katab ülal kasutatud kuulamise ja päringute juhtimise ning see on õige koht käitumise kinnitamiseks teie paigaldatud versiooni jaoks.

Järgmine samm: lisage tsooni seerianumbri suurendamine ja kontrollkäsud oma muudatusprotseduuri, et kirje muutmine ei saaks jõuda kontrollimata tootmisse.

Seotud artiklid