VPN laboratoriyangiz qancha texnikaga loyiqligini hal qilishingiz kerak. Ikki VirtualBox segmenti orasidagi marshrutlangan shlyuz VM manzil tarjimasini, qaytish yo'lini va haqiqiy mijoz o'tirgan xavfsizlik devori o'rnini qayta hosil qiladi. Bitta faqat xost segmenti sizga bitta nazorat qilinadigan eshik beradi, boshqa hech narsa emas. Shlyuzli variant uchta mehmon va siz yuritadigan marshrutlash jadvalini talab qiladi; faqat xost varianti bitta mehmon va bitta siyosatni talab qiladi. Uch savol ularni ajratadi, uchinchisi esa sinovingiz umuman o'ta olishini hal qiladi.

Biror narsani klonlashdan oldin uch savolga javob bering

VPN server nimani kuzatishi kerakligidan boshlang. Agar server sinov mehmoniga tegishli bo'lmagan manba manzilini ko'rishi kerak bo'lsa, ular orasida nimadir tarjima qilishi kerak va u nimadir siz nazorat qiladigan marshrutizator bo'lishi lozim. Faqat xost tarmog'i xostga mehmon segmentida adapter beradi, tarjimon emas. Keyin mehmon tashqaridagi biror narsaga yetishi kerak bo'lsa, siz NAT adapterini ulaysiz va VirtualBox'ning o'z NAT dvigateli sizdan so'ramasdan manbani qayta yozadi.

Keyin mehmon tunneldan boshqa hech narsaga yeta oladimi, deb so'rang. Bu javob ichki yoki faqat xostni tanlaydi va aynan shu savolni ko'p laboratoriya maqolalari tashlab ketadi. Nihoyat, tunnel yiqilganda nima bo'lishi kerakligini so'rang, chunki bu topologiyani emas, siyosatni belgilaydi va faqat baxtli yo'lni isbotlaydigan laboratoriya deyarli hech narsani sinamagan.

What the test requiresRouted gateway VMHost-only guest
Server sees a translated source addressYes, from your own MASQUERADE ruleNo, VirtualBox NAT does it instead
The guest has exactly one egressYes, while the second adapter faces the tunnelOnly until a NAT adapter is attached
Policy is testable during a tunnel failureRules live in one placeRules live on each guest

Uch rolni ichki tarmoqlar bilan bog'lang

Uchta mehmon va ikkita nomlangan segmentdan foydalaning, shlyuz ikkalasida ham adapteri bo'lgan yagona mashina bo'lsin:

VBoxManage modifyvm lab-client --nic1 intnet --intnet1 WAN
VBoxManage modifyvm lab-server --nic1 intnet --intnet1 LAN
VBoxManage modifyvm lab-gw --nic1 intnet --intnet1 WAN --nic2 intnet --intnet2 LAN

Ichki tarmoq uchun alohida yaratish qadami yo'q. --intnet1 ichidagi satr segmentning o'zi: ikki mashina uni faqat nom to'liq mos kelganda baham ko'radi va xostdagi hech narsa unga ulanmagan. Aynan shu oxirgi xususiyat laboratoriyaning toza takrorlanishiga sabab bo'ladi, chunki xostning marshrutlari, uning o'z VPN mijozi va xavfsizlik devori mehmonlarga tasodifan yetib bora olmaydi. Ichki segmentda DHCP server ham yo'q, agar siz qo'shmasangiz, shuning uchun statik manzillar eng qisqa yo'ldir.

Mijozga faqat uning WAN manzilini bering, standart shlyuz shlyuzning WAN manzilini ko'rsatsin. Server LAN manzilini oladi va shlyuzning LAN manzilini o'zining standart shlyuzi sifatida ishlatadi. Bitta segmentda ikkita manzil saqlaydigan yoki boshqa segmentga adashgan marshruti bor mehmonning marshrutizatorni aylanib o'tadigan yo'li bor va quyidagi sinovlar sizga yolg'on gapiradi.

Men VM nomlari yonida to'rt manzil va ikkita segment nomi yozilgan matn faylini saqlayman va uni har bir shellga joylayman. Haftalar o'tib, profil o'zgarishi nimanidir buzganda, o'sha fayl profilni tuzatish bilan o'z xotiramni tuzatish o'rtasidagi farq bo'ladi.

Oqib chiqmasligi kerak bo'lgan segment uchun ichki yoki faqat xostni tanlang

Faqat xost rejimi xostning o'zida virtual adapter yaratadi, odatda vboxnet0, va xostga mehmon segmentida manzil beradi. Bu boshqaruv uchun qulay, izolyatsiya sinovi uchun esa halokatli, chunki xost endi mehmonga bevosita yeta oladi va xost tomonidagi har bir xizmat mumkin bo'lgan yo'lga aylanadi. Ichki rejimda xost adapteri umuman yo'q. Ikki rejim tarmoq sozlamalari panelida oson chalkashadi, shuning uchun yorliqni emas, hujjatlashtirilgan farqni tekshiring (VirtualBox tarmoq tafsilotlari sahifasiga qarang).

Tunneldan foydalanishi shart bo'lgan mehmon uchun ichki rejim xavfsizroq standart bo'lib, shlyuz yagona chiqishdir. Agar faqat xostni saqlab qolsangiz, xost adapterini boshqaruv yo'li deb biling va buni baland ovozda ayting: xost mehmonga yeta oladi, mehmon esa xostni chiqish sifatida ishlata olmasligi kerak.

VBoxManage modifyvm lab-client --nic1 hostonly --hostonlyadapter1 vboxnet0

Siz isbotlay oladigan izolyatsiya siz sozlagan izolyatsiyadir. Bitta ichki adapteri, shlyuzda standart marshruti bo'lgan va NAT adapteri yo'q mehmonning shlyuzni chetlab o'tadigan yo'li yo'q. Faqat xost adapteri va NAT adapteri bo'lgan mehmonning ikkita yo'li bor va ulardan faqat bittasi siz sinamoqchi bo'lgan yo'ldir.

Shlyuzda marshrutlang va tarjima qiling, so'ng yopiq holda muvaffaqiyatsiz bo'lsin

VirtualBox segmentlar orasida yo'naltirmaydi; buni mehmon qiladi. VPN server VM shlyuz orqasida bo'lganda yo'naltirishni yoqing va mijoz trafigini serverga chiqayotganda tarjima qiling:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Bu qoida bilan server mijoznikidan ko'ra shlyuzning LAN manzilini ko'radi va operator NAT orqasidagi haqiqiy mijoz tarmoq boshiga aynan shunday ko'rinadi. sysctl qiymatini /etc/sysctl.d/ ichida va qoidani distributiv ishlatadigan xavfsizlik devori xizmatida saqlang, aks holda qayta yuklash laboratoriyani jimgina marshrutlangan, lekin tarjima qilinmagan holatga qaytaradi.

Yo'naltirish ruxsat emas. ACCEPT standart FORWARD siyosati ostida standart marshruti shlyuzga qaragan mehmon tunnel bo'lsin yoki bo'lmasin marshrutlash jadvali tanlagan interfeys orqali chiqadi. Agar shlyuzda paket o'rnatish uchun NAT adapteri ham bo'lsa, o'sha adapter tunnel yiqilgan lahzada ishlaydigan shifrlanmagan chiqishdir va sizning faqat-VPN sinovingiz hech qachon faqat-VPN sinovi bo'lmagan.

Server uzoqda bo'lsa va tunnelni shlyuzning o'zi tugatsa, xuddi shu qaror internetga yetadigan NICga emas, tunnel interfeysiga qaratiladi:

iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Tunnelning o'z tashqi transportini va tarmoqdan tashqari boshqaruv yo'lini yo'naltirilgan trafikdan ajratib turing. Agar shlyuzni tuzatishning yagona yo'li siz tuzatayotgan tunnel bo'lsa, laboratoriya o'zini qulflab qo'yish mashqiga aylanadi. Seriyali konsol, faqat xost boshqaruv adapteri yoki ma'lum yaxshi holatning oniy tasviri buzilgan marshrutizatorni qo'lda tiklashdan arzonroq.

Yo'lni xostdan emas, mehmondan tekshiring

Tashqariga qarab ishlang. Mijoz shlyuzning WAN manziliga yetishini, so'ng shlyuz orqali serverga yetishini, so'ng VPN portiga ulanish chiqib qaytishini tasdiqlang. Shlyuzning ikkala interfeysida ushlash javob keladimi va qaytish yo'lida tashlab yuboriladimi ko'rsatadi, buni faqat mijozda ushlash ajrata olmaydi:

tcpdump -ni eth0 udp port 1194
tcpdump -ni tun0 udp port 1194

So'ng chiqishni isbotlang. Mehmondan manzil aks ettirish xizmatidan qaysi manbani ko'rishini so'rang va uni shlyuzning o'z chiqish manzili bilan solishtiring; agar javob xost manziliga mos kelsa, tunnelni aylanib o'tadigan yo'l bor. Mehmon aslida qaysi rezolverni ishlatishini tekshiring va IPv6ni alohida tekshiring, chunki IPv6 yoqilgan, tunnel esa faqat IPv4 tashaydigan segment tasodifan emas, dizayn bo'yicha oqadi.

Nihoyat, uni ataylab sindiring. Tunnelni to'xtating yoki uning tashqi portini bloklang va mehmondan yangi ulanish oching. U muvaffaqiyatsiz bo'lishi shart va sabab siz nomlay oladigan narsa bo'lishi kerak: yo'l yo'q, rad etish qoidasi bor yoki resolver o'lgan. Tunnelni qayta ishga tushiring va mehmon tarmoqni qayta qurmasdan tiklanashini tasdiqlang. Agar Hamachi yoki ZeroTier kabi mesh VPN laboratoriyani baham ko'rsa, ko'prikli adapter meshni emas, adapter nomini kuzatishini yodda tuting, shuning uchun mijoz o'z virtual adapterini o'rnatgandan keyin ko'prikni qayta yo'naltirish kerak.

VBoxManage list bridgedifs
VBoxManage modifyvm lab-client --bridgeadapter1 <mesh-adapter-name>

Mehmon tunnelini xost bilan baham ko'rish muammoni aks ettiradi. Xostning standart marshrutini mehmonga qaratish ishlaydi, mehmon ichidagi proksi ham ishlaydi; xost orqali NAT xost boshlagan trafik uchun mehmon tunnelini tashimaydi. Segment nomlari va xavfsizlik devori qoidalarini bir joyda saqlang, ishlaydigan holatning oniy tasvirini oling va server kuzatgan manba manzilini yozib qo'ying. Shunda keyingi profil o'zgarishi qayta qurilgan laboratoriya o'rniga bitta skript ishga tushirishga tushadi.

O'xshash maqolalar