Bitta qurilma bir vaqtning o‘zida ikki tomonga qaray oladi: aylanib yuruvchi foydalanuvchilar ichkariga ulanadi, o‘sha quti esa tanlangan trafik boshqa tarmoq orqali chiqishi uchun tashqaridagi chiqish provayderiga ulanadi. Ikkala xizmatni yoqish bir necha daqiqa; ularning birga yashashi loyihani talab qiladi, chunki ikkinchi rol birinchisi tayanadigan marshrut jadvalini qayta yozadi. Bu tartib ishlashini uch shart hal qiladi: kiruvchi xizmat o‘z qaytish yo‘lini saqlaydimi, chiquvchi tunnel hanuz o‘z juftiga yetib boradimi, va uzatmoqchi bo‘lgan trafik chiqish uchun tanlanadimi. Bittasida xato qilsangiz, ikkisi ham ulangan deb xabar beradigan, ammo orasida foydali hech narsa o‘tmaydigan ikkita tunnelga ega bo‘lasiz. Quyidagi tekshiruvlar har bir shartni nosozliklar odatda ko‘rinadigan tartibda o‘rnatadi.

Biron sozlamaga tegishdan oldin ikki rolni nomlang

Har bir nusxa uchun to‘rtta fakt yozing: uning uzoq jufti, autentifikatsiya materiali, tarqatadigan manzillar hovuzi va uning orqasidagi tarmoqlar. Ikki nusxa qurilmada alohida obyektlar va yozuvlaringizda ham alohida qolishi kerak. Keyinchalik deyarli har bir chalkash belgi ularning qiymatlari aralashuvidan kelib chiqadi, ikki nusxa bitta yozuvlar to‘plamini bo‘lishsa, noto‘g‘ri hovuz noto‘g‘ri maydonga tushadi.

Kiruvchi xizmatga chiquvchi tunnel manzillari bilan ham, qurilma marshrutlaydigan har qanday xususiy tarmoq bilan ham kesishmaydigan tunnel tarmog‘i kerak. Kesishuv ikkala rolda bir vaqtda belgi keltiradigan yagona xato, uni qog‘ozda ushlash ancha arzon. Har qanday xizmatni sozlashdan oldin ikkala hovuzni va har bir marshrutlangan xususiy tarmoqni bir joyda taqqoslang.

Umumiy apparat umumiy to‘lov ma’lumotlarini anglatmaydi, va masofaviy kirish hovuzidan olingan klient sertifikati chiqish provayderiga qarshi ishlatilishi mumkin bo‘lmasligi kerak. Alohida material bekor qilishni ham butun flot hodisasi o‘rniga mahalliy qarorga aylantiradi.

Server javoblarini WAN yo‘lida saqlang

Qurilma o‘zi yaratadigan javoblar beparvo standart marshrutning birinchi qurboni. Aylanib yuruvchi foydalanuvchining qadoqlangan paketi kelganda, javob mahalliy paydo bo‘lgan trafik va u o‘sha foydalanuvchi kirgan interfeysdan chiqishi kerak. Agar chiquvchi klient uni tutadigan standart marshrut o‘rnatgan bo‘lsa, javob noto‘g‘ri tunnelga kiradi va xizmat hali sog‘lom ko‘rinib turganda sessiya to‘xtaydi.

Buni hal qiladigan bitta belgilash katakchasi yo‘q, chunki qaror chiquvchi klient qaysi trafikni tuta olishi haqida. Yoki hech qanday marshrut tortmang va faqat tanlaganingizni yo‘naltiring, yoki marshrutlarni tortib, qurilmaning o‘z xizmatlarini ishlab turishini ta’minlaydigan istisnolarni qo‘shing. Tanlovni nusxa yoniga yozing, aks holda keyingi odam boshqasini nazarda tutadi.

netstat -rn | head -20
pfctl -sr | grep -i vpn
ifconfig | grep -A3 ovpn

Marshrut jadvalini eng uzun moslik bo‘yicha o‘qing, biror narsani sozlagan tartibingiz bo‘yicha emas. Savol chiqish juftining manzili uchun qaysi yozuv yutishi va kiruvchi xizmatning javobi uchun qaysi yozuv yutishi, va bu ikki javob farq qilishi mumkin.

Chiquvchi tunnel o‘z oxirgi nuqtasini yeb qo‘yishiga yo‘l qo‘ymang

Chiquvchi klient tunnelni barpo etish uchun juftining ommaviy manziliga yetib borishi shart. Agar o‘sha manzil o‘zi tunnelga marshrutlansa, klient o‘z dumini quvadi: transport hech qachon ko‘tarilmaydi, yoki ko‘tarilib, marshrut o‘rnatilgan lahzada yiqiladi. Jurnal marshrut nosozligidan ko‘ra autentifikatsiya muddati tugaganiga o‘xshaydi, shuning uchun marshrut birinchi tekshirilishi kerak.

Marshrutni hisob ma’lumotlaridan oldin va tunnel ko‘tarilgandan keyin yana bir marta tekshiring, chunki yozuv yuklanishda to‘g‘ri, bir daqiqadan keyin noto‘g‘ri bo‘lishi mumkin. Juftning manzili oddiy WAN yo‘lini ko‘rsatishi kerak, hech qachon tunnel qurilmasini emas. Transport barqarorlashgach, qiziqarli savol uzatilgan trafikka o‘tadi va bu keyingi qaror.

netstat -rn | grep -F '198.51.100.10'
traceroute -n 198.51.100.10

Qaysi foydalanuvchilar chiqish olishini tanlang

Manba siyosati trafik qurilmaga kiradigan kirishga tegishli, shuning uchun masofaviy kirish hovuzini yoki uning ichidagi torroq identifikatsiyalarni tanlang. Hech qachon chiqishga yuborilmasligi kerak bo‘lgan xususiy manzillar va boshqaruv istisnolarini saqlang, va bu qoidalarni keng qoidadan oldin qo‘ying. Keyin chiqish yo‘liga o‘z tarjimasi yoki marshrutlangan qaytish tartibi kerak, bu ko‘pchilik loyihalarda hovuzni qamrab oluvchi chiqish interfeysidagi chiquvchi NAT degani. Tarjima chiqishni tanlamaydi; u faqat allaqachon chiqqanini qayta yozadi, shuning uchun aloqasiz WAN ustidagi NAT qoidasi tanlovda hech narsani o‘zgartirmaydi.

Uzoq tomon bu loyihadan uzatilgan trafikka ruxsat berishini tasdiqlang, chunki ba’zi provayderlar beradi, ba’zilari yo‘q. Farq ulanadigan, ammo hech narsa tashimaydigan tunnel sifatida ko‘rinadi, uni mahalliy nosozlik deb o‘qish oson. Uch oqimni alohida sinang, chunki ular mustaqil ravishda ishdan chiqadi, uchdan ikkisi esa yarim qurilgan loyiha.

openvpn --config user07.ovpn
curl -sS https://ifconfig.me
curl --interface 10.10.10.1 -sS https://intranet.corp.example/health

Birinchi buyruq aylanib yuruvchi foydalanuvchining tashqi ulanishi va klient ishga tushish ketma-ketligi tugaganini xabar qilganda ishlaydi. Ikkinchisi o‘sha ulangan noutbukdan ishga tushiriladi va sizning WAN manzilingiz o‘rniga chiqish provayderining manzilini xabar qilishi kerak. Uchinchisi qurilmada hovuz manziliga bog‘langan holda ishlaydi va masofaviy foydalanuvchini umuman jalb qilmasdan uzatilgan trafik uchun manba siyosatini sinaydi. Agar u o‘rniga WAN dan javob bersa, siyosat mos kelmadi va NAT tahririning hech qanday miqdori tanlov muammosini tuzatmaydi.

Chiqish ishdan chiqqanda nima bo‘lishini hal qiling

Nosozlik xatti-harakatini u sodir bo‘lishidan oldin yozing: chiquvchi tunnel yiqilganda foydalanuvchilar oddiy WAN ga qaytadimi yoki chiqish qaytgunicha bloklanadimi? Ikkala javob ham himoya qilinadigan, va qurilma sizning o‘rningizga tanlamaydi. O‘chirilgan marshrut yoki o‘lik shlyuzga ishora qiluvchi siyosat avtomatik ravishda to‘liq bloklangan natija bermaydi. Agar bloklashni xohlasangiz, siyosat buni aniq aytishi kerak va uni chiqishni olib tashlab sinash kerak, u haqida o‘ylash bilan emas. Agar qaytishni xohlasangiz, buni foydalanuvchilarga e’lon qiling, chunki jimgina oddiy yo‘lni oladigan trafik aynan kimdir qoplangan deb o‘ylagan trafikdir.

Klient nusxasini o‘chiring, ulangan foydalanuvchi hali nimaga yeta olishini ko‘ring, so‘ng uni qayta ishga tushiring. Muddati tugaydigan so‘rov siz so‘ragan to‘liq bloklash natijasi; WAN manzili bilan javob beradigan so‘rov esa siz hujjatlashtirmagan qaytish. Tekshiruvni IPv6 va DNS uchun takrorlang, chunki IPv4 uchun yozilgan siyosat AAAA trafigi haqida hech narsa demaydi va har qanday tunnel itargan resolver so‘rov haqiqatan chiqadigan joydan javob beradi.

pfSsh.php playback svc stop openvpn client 2
curl --max-time 6 -sS https://ifconfig.me
pfSsh.php playback svc start openvpn client 2

Netgate ning marshrutlangan OpenVPN retsepti manba siyosati, interfeys tayinlanishi va chiquvchi tarjima qanday mos kelishini ko‘rsatadi, va uning saytdan saytga qamrovi to‘liq ko‘chirilmasligi kerak bo‘lgan qismdir. U sizga aytmaydigan narsa — yuqoridagi uch shartdan qaysi birini sizning loyihangiz allaqachon buzgan.

O'xshash maqolalar