WireGuard DNS дамжуулдаггүй: хувийн BIND бүсийг үйлчлэх
Гар барилт нь түлхүүр, зөвшөөрөгдсөн IP-г дамжуулдаг ч хэзээ ч резолвер дамжуулдаггүй. Энд бэлэн хувийн BIND 9 бүс болон түүнийг шийдүүлэх холбоос тус бүрийн клиентийн бодлого байна.
Та WireGuard-ыг өргөсөн, туннель трафикийг нэвтрүүлж байгаа ч дотоод нэр хараахан шийдэгдэхгүй байна. Дараагийн алхам нь ихэвчлэн WireGuard-ийн тохиргооноос DNS тохиргоо хайх байдаг, бусад зарим VPN шиг peer резолвер дамжуулж чадна гэж үзсэн мэт. Чадахгүй. Гар барилт нь түлхүүр, интерфейсийн хаяг, зөвшөөрөгдсөн IP-г дамжуулдаг бөгөөд DNS сервер эсвэл хайлтын домайны талбар байхгүй. Резолверийн бодлого клиент дээр амьдардаг бөгөөд засвар нь тэнд хамаарна.
Туннель ба резолвер нь тусдаа гэрээ
WireGuard санаатайгаар жижиг. Таны жагсаасан хаягуудад пакет зөөж, peer-үүдийг баталгаажуулна; тэр давхаргын дээрх бүхэн таны загвар. OpenVPN dhcp-option DNS дамжуулж чадна, учир нь түүний удирдлагын суваг тохиргоог дамжуулдаг бөгөөд энэ ялгаа хоёр хооронд шилжиж буй хүмүүсийг тээглүүлдэг.
Тиймээс ажиллаж буй туннель нэрийн шийдэлтийн талаар юу ч хэлэхгүй. Клиент 10.90.0.1 рүү төгс замтай байж, асуулгаа нийтийн резолвер рүү илгээсээр байж болно, тиймээс шинж тэмдэг нь “VPN DNS-ийг эвдсэн” мэт харагддаг ч DNS хэзээ ч VPN рүү чиглээгүй байсан.
Бүсийг рекурсив резолвер болохгүйгээр үйлчил
Серверийн тал бол жижиг эрх мэдэлт бүс, ерөнхий резолвер биш. Энэ жишээнд гарц нь 10.90.0.1, клиентүүд 10.90.0.0/24, таны сонирхож буй аппликейшн 10.60.0.20 дээр хариулдаг.
Эдгээр тохиргоог хоёр дахь блок үүсгэхийн оронд одоо байгаа options блокт нэгтгэнэ үү:
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;
};Дараа нь бүс болон түүний файлыг зарлана:
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Дахин ачаалахаас өмнө шалгана уу, учир нь ачаалах үеийн синтакс алдаа нь үйлчилж буй бүс бүрийн хувьд серверийг бүхэлд нь унагадаг:
named-checkconf
named-checkzone corp.example /etc/bind/db.corp.exampleUDP болон TCP 53-ыг зөвхөн VPN интерфейс дээр нээнэ үү. Нийтийн интерфейс дээр хувийн эрх мэдлийг нийтлэх нь асуулга болон тооллогыг хоёуланг нь урьдаг бөгөөд allow-transfer нь хоёрдогч үнэхээр шаардлагагүй бол хаалттай байх ёстой.
Клиентийг түүн рүү чиглүүл, холбоос бүрээр
Холболтыг NetworkManager эзэмшиж, резолвер нь systemd-resolved гэж үзье. Эхлээд одоогийн бодлогыг уншина уу, ялангуяа ямар нэг үндсэн маршрутжуулалтын домэйн, учир нь ~. бичлэг таны нэмэх гэж буй зүйлээс давамгайлна.
nmcli connection modify wg-office +ipv4.dns 10.90.0.1
nmcli connection modify wg-office +ipv4.dns-search '~corp.example'Тильда бол чухал тэмдэгт. Энэ нь домэйныг зөвхөн-маршрут гэж тэмдэглэдэг: corp.example доорх нэрс энэ холбоосын DNS сервер рүү явж, домэйн нь богино нэрийн хайлтын дагавар болж нэмэгдэхгүй. Үүнгүйгээр portal бичихэд portal.corp.example шийдэгдэж эхэлдэг бөгөөд энэ нь танд тохиромжтой, бусад бүх хүнд гайхмаар. Тильдаг хашилтын дотор байлга, учир нь хашилтгүй нь таны гэрийн хавтас руу заахаар хүлээж буй shell өргөтгөл юм.
Өөрчлөлтийг интерфейсийг эзэмшдэг менежерээр хэрэгжүүл, дараа нь холболтыг дахин холбо. Ижил интерфейсийн хувьд хоёр дахь wg-quick хувилбарыг эхлүүлэхгүй; хоёр эзэн маршрутын төлөө маргалдаж, нэг нь хамгийн муу мөчид ялна.
Нэрээс өмнө замыг шалга
Нэрийг клиентээс асууж, хариулт болон түүнийг үүсгэсэн серверийг хоёуланг нь батал:
resolvectl query portal.corp.exampleХэрэв энэ 10.60.0.20 буцаавал DNS гэрээ биелсэн. Хэрэв хугацаа дуусвал эхлээд 10.90.0.1 рүү замыг, дараа нь галт хананы дүрмийг, дараа нь сервер дээрх allow-query шалга. Энэ тохиргоонд нэрийн шийдэлтийн алдаа бараг үргэлж хүртээмж эсвэл ACL байдаг, бүсийн файл биш. Клиентээс гадагш ажилла, учир нь сервер яагаад асуулга хэзээ ч ирээгүйг хэлж чадахгүй.
Аппликейшнд өөрийн зам, өөрийн үйлчилгээний зөвшөөрөл хэрэгтэй хэвээр гэдгийг сана. Хүрэх боломжгүй хаяг руу заасан шийдэгдсэн нэр нь ижил хувцастай өөр эвдрэл юм.
Одоо ч автомат бус зүйл
Өөрийн резолвер логиктой аппликейшнүүд системийн резолверийг бүрэн үл тоомсорлодог бөгөөд хэчнээн nmcli байсан ч үүнийг өөрчлөхгүй. DNSSEC шалгадаг байршуулалтуудад хувийн бүсийн итгэлцлийн зангууны тодорхой загвар хэрэгтэй; хариулт нь шалгалтыг унтраах ерөнхий заавар биш. Хэрэглэгчид тань ажиллуулдаг клиент програмын ижил хувилбараар туршиж үзээрэй, санамсаргүйгээр системийн резолвер ашигладаг хэрэгслээр биш. Тэдгээрийн хоорондын зөрүү нь бүх алдааны тайлан.
Флотууд энэ клиентийн бодлогыг хангамжийн системээрээ автоматжуулж болно, гэхдээ бодлого нь эзэнтэй тусдаа объект хэвээр үлддэг. BIND 9 лавлагаа дээр ашигласан сонсох болон асуулгын хяналтыг хамардаг бөгөөд таны суулгасан хувилбарт зориулсан зан төлөвийг баталгаажуулах зөв газар нь энэ юм.
Дараагийн алхам: бүсийн серийн дугаарын өсөлт болон шалгалтын командуудыг өөрчлөлтийн журамдаа нэмээрэй, ингэснээр бичлэгийн засвар шалгалтгүйгээр үйлдвэрлэлд хүрэхгүй.