Ikkala tunnel ham ulanadi, har bir mijoz shlyuzga yetib boradi, va biri ikkinchisining manzilini sinab ko'rgan paytda paketlar yo'qoladi. Ikkala qo'l siqishning hech birida xato yo'q, kalitlarni qayta chiqarish ham buni o'zgartirmaydi. Shlyuz o'zining ikki interfeysi orasida oddiy shifrlanmagan IP paketlarini tashiydi, shuning uchun protokollar bir-birini tushunishga umuman muhtoj emas; ularga hech bir qo'l siqish bermaydigan uchta narsa kerak. Manba mijozda manzil qamrovi, shlyuzda manba egaligi va narigi tomonda qaytish yo'li. Alomat uchalasi uchun ham bir xil, shuning uchun ular birga tashxis qilinadi.

Alomatda har safar bitta qism yetishmaydi

Bu loyiha wg1 ustida 10.71.0.0/24 WireGuard hovuzini va tun1 ustida 10.72.0.0/24 OpenVPN hovuzini ishlatadi, ikkisi ham bitta shlyuzda tugaydi. Sinovdagi so'rov 10.71.0.5 manzilidan 10.72.0.30 manzilidagi HTTPS ga boradi. Quyidagi har bir qadam aynan shu bitta oqim haqida. Har bir tekshiruvning nosozlik imzosi boshqacha bo'lsa-da foydalanuvchi ularni bir xil his qiladi, va odatda bir vaqtda uchtadan faqat bittasi yetishmaydi.

Ikkala hovuz haqiqatan ham shu shlyuzda ekanini va tunnellar yashaydigan nom fazosida yo'naltirish yoqilganini tasdiqlashdan boshlang. Ikki protokolni turli nom fazolarida tugatadigan shlyuz ular orasida hech narsa yo'naltirmaydi, va har qanday peer konfiguratsiyasini o'qishdan oldin buni istisno qilish arziydi.

Shoxning manzil qamrovini kengaytiring

WireGuard mijozida mavjud peer yozuvi OpenVPN manzili uchun shlyuzni tanlashi kerak, ya'ni manzil prefiksi o'sha peerning ruxsat etilgan ro'yxatida bo'lishi shart. Uni qo'shish ikkinchi tunnel yaratmaydi; mijoz o'sha manzilni qidirganda qaysi peerni tanlashini o'zgartiradi, va wg-quick bilan marshrut odatda ro'yxatga avtomatik ergashadi.

AllowedIPs = 10.71.0.0/24, 10.72.0.0/24

Haqiqiy kalit va endpoint satrlarini tegmang, va Table = off ishlatadigan menejer bu ro'yxatdan umuman marshrut olmasligini yodda tuting. Bunday holatda o'sha prefiksni tizimning marshrut jadvaliga unga egalik qiluvchi o'rnatishi kerak, va u yerda yo'q marshrut xuddi yo'q ruxsat etilgan prefiksga o'xshaydi.

Shlyuzda manba egaligini saqlang

Bu mijozning shlyuzdagi peer yozuvi aynan o'sha mijozning manba manziliga egalik qilishni davom ettirishi kerak. Ruxsat etilgan manzillar ikki yo'nalishda tekshiriladi: ular chiquvchi trafik uchun peerni tanlaydi va kiruvchi paketning manbasi uni yuborgan peerning ekanini tasdiqlaydi. OpenVPN hovuzini shoxning yozuviga qo'yish, shox unga yetib borishni xohlagani uchun, trafikni noto'g'ri ishtirokchiga yo'naltiradigan xatodir.

AllowedIPs = 10.71.0.5/32

Bu yozuvni marshrut qulayligi emas, egalik bayonoti sifatida o'qing. Mijoz yetib borishi kerak bo'lgan qolgan hamma narsa mijozning manzillar ro'yxatiga tegishli, shlyuzning bu peer nima yuborishi mumkinligi haqidagi tasavvuriga emas.

OpenVPN tomoniga qaytish marshrutini bering

Manzilga endi WireGuard manbasiga qaytadigan marshrut kerak, va hovuz mijozlari uchun u odatda OpenVPN serveridan turtib yuborilgan marshrut sifatida keladi. Uni faqat ega bo'lishi kerak bo'lgan mijozlarga turtib yuboring, va direktiva qo'llanildi deb taxmin qilish o'rniga mijozda u qabul qilinganini tasdiqlang.

push "route 10.71.0.0 255.255.255.0"

Marshrutlarni tarqatish avtorizatsiya emas. Manzil hovuzda emas, boshqa OpenVPN mijozining orqasida turganda, o'sha mijozning o'z LAN egaligi va yo'naltirish talablari loyihaga qo'shiladi, va turtib yuborilgan marshrut faqat birinchi yarmi. Direktivalar qo'shishdan oldin talabni grafik sifatida qayta yozing: qaysi tugun qaysi prefiksga ega va qaysi tugun unga qarab yo'naltiradi.

Faqat ruxsat bermoqchi bo'lgan o'sha bitta xizmatga ruxsat bering

Yo'naltirish yoqilgan va ikkala hovuz ham marshrutlanadigan bo'lsa, qolgan savol siyosat. Qoidani interfeys juftiga umuman emas, aynan shu oqim uchun yozing, qo'llashdan oldin ko'zdan kechiring, va javoblar yangi ulanish sifatida to'silmasligi uchun holatni saqlaydigan qaytish yo'lini ushlab turing. Quruq sinov hech narsaga turmaydi va nima qo'shilishini aniq ko'rsatadi.

sudo ufw --dry-run route allow in on wg1 out on tun1 proto tcp from 10.71.0.5 to 10.72.0.30 port 443

Bular yo'naltirilgan trafik qoidalari, shlyuzning ikki VPN xizmati uchun tinglash qoidalaridan alohida. Tashqi UDP portlarini ochish ichki so'rovni avtorizatsiya qilmaydi, va ichki so'rovni avtorizatsiya qilish shlyuzga cheksiz SSH yoki yo'naltirishda standart ruxsatni talab qilmaydi. Manzilning o'z firewalli va tinglash manzili ham mos kelishi kerak, chunki loopbackka bog'langan xizmat eng ehtiyotkorlik bilan marshrutlangan paketni ham rad etadi. Suhbatning faqat bir yo'nalishini qamrab oladigan siyosat odatda muvaffaqiyatli so'rov va jim javob bilan muvaffaqiyatsizlikka uchraydi, bu uchtadan eng chalkash natijadir.

O'zaro marshrutlar odatda manba tarjimasi kerak emasligini bildiradi, bu WireGuard manzilini manzilda saqlaydi va jurnallarni o'qishli qiladi. Ikki protokol ishtirok etgani uchun umumiy masquerading qo'shmang, va mavjud tarjima qoidasini unga nima bog'liqligini bilmasdan olib tashlamang. So'ngra o'sha bitta oqimni boshidan oxirigacha tekshiring, va bitta taqiqlangan manba yoki portni ham sinab ko'ring: har ikki tomonda ishlaydigan qo'l siqish na kesishgan marshrutni, na izolyatsiyani isbotlaydi.

O'xshash maqolalar