VirtualBox VPN රසායනාගාරය: ගේට්වේ VM හෝ සත්කාරක-පමණක් ජාලය
VirtualBox VPN රසායනාගාරයක් සඳහා රවුට් කළ ගේට්වේ VM සහ සත්කාරක-පමණක් කොටස අතර තෝරන්න, පසුව උමග වැටෙන විට අමුත්තා වැසුණු ලෙස අසාර්ථක වීමට සලස්වන්න.
ඔබේ VPN රසායනාගාරයට කොපමණ යන්ත්ර සූත්ර අවශ්යද යන්න ඔබ තීරණය කළ යුතුය. VirtualBox කොටස් දෙකක් අතර රවුට් කළ ගේට්වේ VM එකක් ලිපින පරිවර්තනය, ආපසු මාර්ගය සහ සැබෑ සේවාලාභියෙකු පිටුපස වාඩි වන firewall ස්ථානය නැවත නිපදවයි. එකම සත්කාරක-පමණක් කොටසක් ඔබට එක් පාලිත දොරක් දෙන අතර අන් කිසිවක් නොදේ. ගේට්වේ අනුවාදයට අමුත්තන් තිදෙනෙක් සහ ඔබ නඩත්තු කරන රවුටින් වගුවක් අවශ්ය වේ; සත්කාරක-පමණක් අනුවාදයට අමුත්තෙක් සහ ප්රතිපත්තියක් අවශ්ය වේ. ප්රශ්න තුනක් ඒවා වෙන් කරන අතර, තෙවැන්න ඔබේ පරීක්ෂණය කිසිසේත් සමත් විය හැකිද යන්න තීරණය කරයි.
කිසිවක් ක්ලෝන කිරීමට පෙර ප්රශ්න තුනකට පිළිතුරු දෙන්න
VPN සේවාදායකයා නිරීක්ෂණය කළ යුතු දෙයින් ආරම්භ කරන්න. පරීක්ෂණ අමුත්තාගේ නොවන මූලාශ්ර ලිපිනයක් සේවාදායකයාට දැකිය යුතු නම්, ඒවා අතර යමක් පරිවර්තනය කළ යුතු අතර, එම යමක් ඔබ පාලනය කරන රවුටරයක් විය යුතුය. සත්කාරක-පමණක් ජාලකරණය සත්කාරකයාට අමුත්තාගේ කොටසේ ඇඩැප්ටරයක් දෙයි, පරිවර්තකයක් නොවේ. පසුව අමුත්තාට පිටත යමකට ළඟා විය යුතු විට, ඔබ NAT ඇඩැප්ටරයක් සම්බන්ධ කරන අතර, VirtualBox හිම NAT එන්ජිම ඔබෙන් නොඅසා මූලාශ්රය නැවත ලියයි.
ඊළඟට, අමුත්තාට උමග හැර වෙනත් කිසිවකට ළඟා විය හැකිදැයි අසන්න. එම පිළිතුර අභ්යන්තර හෝ සත්කාරක-පමණක් තෝරයි, සහ මෙය බොහෝ රසායනාගාර ලේඛන මඟ හරින ප්රශ්නයයි. අවසානයේ, උමග වැටෙන විට කුමක් සිදු විය යුතුදැයි අසන්න, මන්ද එය ටොපොලොජිය නොව ප්රතිපත්තිය තීරණය කරන අතර, සතුටු මාර්ගය පමණක් ඔප්පු කරන රසායනාගාරයක් පාහේ කිසිවක් පරීක්ෂා කර නැත.
| What the test requires | Routed gateway VM | Host-only guest |
|---|---|---|
| Server sees a translated source address | Yes, from your own MASQUERADE rule | No, VirtualBox NAT does it instead |
| The guest has exactly one egress | Yes, while the second adapter faces the tunnel | Only until a NAT adapter is attached |
| Policy is testable during a tunnel failure | Rules live in one place | Rules live on each guest |
තුන් භූමිකාව අභ්යන්තර ජාල සමඟ සම්බන්ධ කරන්න
අමුත්තන් තිදෙනෙක් සහ නම් කළ කොටස් දෙකක් භාවිත කරන්න, දෙකෙහිම ඇඩැප්ටරයක් ඇති එකම යන්ත්රය ගේට්වේ විය යුතුය:
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
අභ්යන්තර ජාලයක් සඳහා වෙනම නිර්මාණ පියවරක් නැත. --intnet1 හි ඇති තන්තුවම කොටසයි: නම හරියටම ගැළපෙන විට පමණක් යන්ත්ර දෙකක් එය බෙදා ගනී, සහ සත්කාරකයේ කිසිවක් එයට සම්බන්ධ නැත. මෙම අවසාන ගුණය නිසාම රසායනාගාරය පිරිසිදුව පුනරාවර්තනය වේ, මන්ද සත්කාරකයේ මාර්ග, එහිම VPN සේවාලාභියා සහ එහි firewall අහම්බෙන් අමුත්තන්ට ළඟා විය නොහැක. අභ්යන්තර කොටසක DHCP සේවාදායකයක් ද නැත, ඔබ එකක් එකතු නොකළහොත්, එබැවින් ස්ථිති ලිපින කෙටිම මාර්ගයයි.
සේවාලාභියාට එහි WAN ලිපිනය පමණක් දෙන්න, පෙරනිමි ගේට්වේ ගේට්වේහි WAN ලිපිනයට යොමු විය යුතුය. සේවාදායකයාට LAN ලිපිනයක් ලැබෙන අතර ගේට්වේහි LAN ලිපිනය එහි පෙරනිමි ගේට්වේ ලෙස භාවිත කරයි. එක් කොටසක ලිපින දෙකක් තබා ගන්නා, හෝ අනෙක් කොටසට නැති වූ මාර්ගයක් ඇති අමුත්තාට රවුටරය වටා මාර්ගයක් ඇත, සහ පහත පරීක්ෂණ ඔබට බොරු කියයි.
මම VM නාම අසල ලිපින හතරක් සහ කොටස් නම් දෙකක් ඇති පෙළ ගොනුවක් තබා එය සෑම shell එකකටම අලවමි. සති ගණනකින්, පැතිකඩ වෙනසක් යමක් කඩන විට, එම ගොනුව පැතිකඩ නිර්දෝෂී කිරීම සහ මගේම මතකය නිර්දෝෂී කිරීම අතර වෙනසයි.
නොගැලිය යුතු කොටස සඳහා අභ්යන්තර හෝ සත්කාරක-පමණක් තෝරන්න
සත්කාරක-පමණක් මාදිලිය සත්කාරකයේම අතථ්ය ඇඩැප්ටරයක් සාදයි, සාමාන්යයෙන් vboxnet0, සහ සත්කාරකයාට අමුත්තාගේ කොටසේ ලිපිනයක් දෙයි. එය පරිපාලනයට පහසු සහ හුදකලා පරීක්ෂණයට මාරකය, මන්ද සත්කාරකයාට දැන් අමුත්තාට සෘජුවම ළඟා විය හැකි අතර සත්කාරක පැත්තේ සෑම සේවාවක්ම හැකි මාර්ගයක් බවට පත් වේ. අභ්යන්තර මාදිලියට සත්කාරක ඇඩැප්ටරයක් කිසිසේත් නැත. මාදිලි දෙක ජාල සැකසුම් පුවරුවේ පහසුවෙන් පටලැවෙන බැවින්, ලේබලය නොව ලේඛනගත වෙනස පරීක්ෂා කරන්න (VirtualBox ජාල විස්තර පිටුව බලන්න).
උමග භාවිත කළ යුතු අමුත්තා සඳහා අභ්යන්තර වඩාත් ආරක්ෂිත පෙරනිමිය වන අතර, ගේට්වේ එකම පිටවීමයි. ඔබ සත්කාරක-පමණක් තබා ගන්නේ නම්, සත්කාරක ඇඩැප්ටරය කළමනාකරණ මාර්ගයක් ලෙස සලකා එය හයියෙන් කියන්න: සත්කාරකයාට අමුත්තාට ළඟා විය හැක, සහ අමුත්තාට සත්කාරකයා පිටවීමක් ලෙස භාවිත කළ නොහැකි විය යුතුය.
VBoxManage modifyvm lab-client --nic1 hostonly --hostonlyadapter1 vboxnet0
ඔබට ඔප්පු කළ හැකි හුදකලාව ඔබ වින්යාස කළ හුදකලාවයි. අභ්යන්තර ඇඩැප්ටරයක්, ගේට්වේහි පෙරනිමි මාර්ගයක් සහ NAT ඇඩැප්ටරයක් නැති අමුත්තාට ගේට්වේ මඟ හරින මාර්ගයක් නැත. සත්කාරක-පමණක් ඇඩැප්ටරයක් සහ NAT ඇඩැප්ටරයක් ඇති අමුත්තාට මාර්ග දෙකක් ඇත, සහ ඉන් එකක් පමණක් ඔබ පරීක්ෂා කිරීමට අදහස් කළ මාර්ගයයි.
ගේට්වේහි රවුට් කර පරිවර්තනය කරන්න, පසුව එය වැසුණු ලෙස අසාර්ථක වීමට සලස්වන්න
VirtualBox කොටස් අතර යොමු නොකරයි; එය අමුත්තා කරයි. VPN සේවාදායක VM ගේට්වේ පිටුපස ඇති විට, යොමු කිරීම සක්රීය කර සේවාලාභියාගේ ගමන් ප්රමාණය සේවාදායකයා දෙසට පිටවන විට පරිවර්තනය කරන්න:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
එම නියමය සමඟ සේවාදායකයා සේවාලාභියා වෙනුවට ගේට්වේහි LAN ලිපිනය දකියි, සහ ක්රියාකරු NAT පිටුපස සැබෑ සේවාලාභියෙකු ජාල හිසකට පෙනෙන්නේ එලෙසය. sysctl අගය /etc/sysctl.d/ තුළ සහ නියමය බෙදාහැරීම භාවිත කරන firewall සේවාව තුළ සුරකින්න, නැතහොත් නැවත ඇරඹීම රසායනාගාරය නිහඬව රවුට් කළ නමුත් පරිවර්තනය නොකළ තත්ත්වයට ආපසු ගෙන එයි.
යොමු කිරීම අවසරයක් නොවේ. ACCEPT හි පෙරනිමි FORWARD ප්රතිපත්තිය යටතේ, පෙරනිමි මාර්ගය ගේට්වේ දෙසට යොමු වන අමුත්තා උමග තිබුණත් නැතත් රවුටින් වගුව තෝරන අතුරුමුහුණත හරහා පිටවෙයි. ගේට්වේට පැකේජ ස්ථාපනය සඳහා NAT ඇඩැප්ටරයක් ද තිබේ නම්, උමග වැටෙන මොහොතේ එම ඇඩැප්ටරය ක්රියාකාරී සංකේතනය නොකළ පිටවීමකි, සහ ඔබේ VPN-පමණක් පරීක්ෂණය කිසිදා VPN-පමණක් පරීක්ෂණයක් නොවීය.
සේවාදායකයා දුරින් සිටින විට සහ උමග ගේට්වේම අවසන් කරන විට, එම තීරණයම අන්තර්ජාලයට ළඟා වන NIC වෙත නොව උමග අතුරුමුහුණත වෙත යොමු වේ:
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
උමගේම බාහිර ප්රවාහනය සහ පටියෙන් පිටත කළමනාකරණ මාර්ගය යොමු කරන ගමන් ප්රමාණයෙන් වෙන් කර තබන්න. ගේට්වේ අලුත්වැඩියා කිරීමේ එකම මාර්ගය ඔබ නිර්දෝෂී කරන උමග නම්, රසායනාගාරය අගුළු දැමීමේ ව්යායාමයක් බවට පත් වේ. අනුක්රමික කොන්සෝලයක්, සත්කාරක-පමණක් කළමනාකරණ ඇඩැප්ටරයක් හෝ දන්නා හොඳ තත්ත්වයක ඡායාරූපයක් කැඩුණු රවුටරයක් අතින් යථා තත්ත්වයට පත් කිරීමට වඩා ලාභදායකය.
මාර්ගය සත්කාරකයෙන් නොව අමුත්තාගෙන් තහවුරු කරන්න
පිටතට වැඩ කරන්න. සේවාලාභියාට ගේට්වේහි WAN ලිපිනයට, පසුව ගේට්වේ හරහා සේවාදායකයාට, පසුව VPN තොටුපළට සම්බන්ධතාවය පිටවී ආපසු එන බව තහවුරු කරන්න. ගේට්වේහි අතුරුමුහුණත් දෙකෙහිම ග්රහණය පිළිතුර පැමිණෙන්නේද සහ ආපසු මාර්ගයේ ඉවතලන්නේද යන්න පෙන්වයි, එය සේවාලාභියා මත පමණක් ග්රහණය කිරීමෙන් වෙන් කළ නොහැක:
tcpdump -ni eth0 udp port 1194
tcpdump -ni tun0 udp port 1194
පසුව පිටවීම ඔප්පු කරන්න. අමුත්තාගෙන් ලිපින පරාවර්තන සේවාවකින් එය දකින මූලාශ්රය කුමක්දැයි අසා එය ගේට්වේහිම පිටවීම් ලිපිනය සමඟ සසඳන්න; පිළිතුර සත්කාරකයේ ලිපිනයට ගැළපේ නම්, උමග වටා මාර්ගයක් පවතී. අමුත්තා ඇත්තටම භාවිත කරන විසඳන්නා කුමක්දැයි පරීක්ෂා කරන්න, සහ IPv6 වෙන වෙනම පරීක්ෂා කරන්න, මන්ද IPv6 සක්රීයව ඇති අතර උමග IPv4 පමණක් ගෙන යන කොටස අහම්බෙන් නොව සැලසුමෙන්ම ගලා යයි.
අවසානයේ, එය හිතාමතා කඩන්න. උමග නවත්වන්න, හෝ එහි බාහිර තොටුපළ අවහිර කරන්න, සහ අමුත්තාගෙන් නව සම්බන්ධතාවයක් විවෘත කරන්න. එය අසාර්ථක විය යුතු අතර, හේතුව ඔබට නම් කළ හැකි එකක් විය යුතුය: මාර්ගයක් නැත, ප්රතික්ෂේප නියමයක් ඇත, හෝ විසඳන්නා මළය. උමග නැවත අරඹා අමුත්තා ජාලය නැවත ගොඩනොනැගෙන සුවය ලබන බව තහවුරු කරන්න. Hamachi හෝ ZeroTier වැනි mesh VPN එකක් රසායනාගාරය බෙදා ගන්නේ නම්, පාලම් කළ ඇඩැප්ටරය mesh එක නොව ඇඩැප්ටර නාමය අනුගමනය කරන බව මතක තබා ගන්න, එබැවින් සේවාලාභියා තමන්ගේම අතථ්ය ඇඩැප්ටරය ස්ථාපනය කළ පසු පාලම නැවත යොමු කළ යුතුය.
VBoxManage list bridgedifs
VBoxManage modifyvm lab-client --bridgeadapter1 <mesh-adapter-name>
අමුත්තාගේ උමග සත්කාරකය සමඟ බෙදා ගැනීම ගැටලුව පිළිබිඹු කරයි. සත්කාරකයේ පෙරනිමි මාර්ගය අමුත්තා දෙසට යොමු කිරීම ක්රියා කරයි, අමුත්තා තුළ proxy එකක් ද ක්රියා කරයි; සත්කාරකය හරහා NAT සත්කාරකය ආරම්භ කළ ගමන් ප්රමාණය සඳහා අමුත්තාගේ උමග ගෙන යන්නේ නැත. කොටස් නාම සහ firewall නියම එකම තැනක සුරකින්න, ක්රියාකාරී තත්ත්වයේ ඡායාරූපයක් ගන්න, සහ සේවාදායකයා නිරීක්ෂණය කළ මූලාශ්ර ලිපිනය සටහන් කරන්න. එවිට ඊළඟ පැතිකඩ වෙනස නැවත ගොඩනැගූ රසායනාගාරයක් වෙනුවට එක් ස්ක්රිප්ට් ධාවනයක් තරම් පමණක් වැය වේ.