Linux සත්කාරක තුනක්, එක් නිර්මාණයක්: පොදුවේ ළඟා විය හැකි OpenVPN හබ් එකක්, පරිගණකයක් සහ ඇතුළට කිසිවක් යොමු නොකරන සාමාන්‍ය ගෘහ රවුටරයක් පිටුපස ඇති පිටවීම් යන්ත්‍රයක්. පිටවීම තමාම හබ් එකට අමතයි. පසුව පාරිභෝගිකයාගේ අන්තර්ජාල ගමන් කිරීම පරිගණකයේදී උමඟට ඇතුළු වී පිටවීමේම ඉහළ සබැඳිය හරහා පිටවේ. මෙම සැකසුමේ පුදුම සහගත සියල්ල එක් විස්තරයකින් පැමිණේ: සම්බන්ධය ආරම්භ කළේ පිටවීමය, එබැවින් ඇතුළට යන මාර්ගය දැනටමත් ඇති අතර එය සෑදීමට පෝට් යොමු කිරීමක් අවශ්‍ය නොවේ.

පහත දැක්වෙන්නේ වින්‍යාස අනුපිළිවෙල නොව පැකට්ටුවේ මාර්ගයයි, මන්ද යම් සංරචකයක් යම් තීරණයක් ගන්නවා දැයි දැනගත් පසුව මිස වින්‍යාසයට අර්ථයක් නැත. සෑම ස්තරයක්ම හරියටම එක් තීරණයක් ගනී, දෝෂ ස්තර දෙකක් එකක් ලෙස සැලකෙන තැන එකතු වේ.

සන්නිවේදන සැසි දෙකක්, එක් අභ්‍යන්තර මාර්ගයක්

සෑම සත්කාරකයක්ම හබ් එකට තමන්ගේම බාහිර සම්බන්ධය තබා ගනී, ඒවායින් කිසිවක් අනෙක ගැන නොදනී. පාරිභෝගිකයාගේ අන්තර්ජාලයට යන ගමන් කිරීම වෙනම අභ්‍යන්තර ගැලීමක් වන අතර එය පාරිභෝගිකයාගේ උමඟ තුළ ගෙන ගොස් පසුව පිටවීමේ උමඟෙන් නැවත නිකුත් වේ. හබ් එක රවුට් කළ යුත්තේ මෙම අභ්‍යන්තර ගැලීමයි, පිටවීම යොමු කළ යුත්තේ ද එයමය.

outer: consumer --TLS--> hub
outer: exit     --TLS--> hub
inner: consumer --tun--> hub --internal--> exit --tun--> uplink

බාහිර සම්බන්ධ දෙකම සේවාලාභී පැත්තෙන් පිටතට යන නිසා, පිටවීමේ රවුටරය කිසිදා ඇතුළු වන SYN එකක් නොදකින අතර කිසිදා ගමනාන්ත NAT රීතියක් අවශ්‍ය නොවේ. එයට ඇත්තේ ස්ථාපිත සන්නිවේදනය ජීවමානව තබා ගැනීම පමණි, එය ඕනෑම දිගු සම්බන්ධයකට දැනටමත් කරයි. පොදු අන්තර්ජාලයේ කිසිවක් මුලින්ම පිටවීමට ළඟා විය යුතු නැත, එබැවින් එම ඉහළ සබැඳියේ ගතික ලිපිනය ගැටලුවක් නොවේ. රවුටරය තවමත් පිටතට යන සැසියට අවසර දිය යුතුය, නමුත් එය බ්‍රවුසරය දැනටමත් භාවිතා කරන එම අවසරයයි.

iroute සේවාදායකය තුළ ඇත්තටම ස්ථාපනය කරන්නේ කුමක්ද

කුමන සගයා කුමන ගමනාන්තයට හිමිකම් කියන්නේද යන්න තීරණය කරන එකම උපාංගය හබ් එකයි, එය එම තීරණය කර්නලය තුළ නොව තමන්ගේම පරිශීලක අවකාශ රවුටින් වගුවේ ගනී. පිටවීම සඳහා exit-node නමින් client-config-dir සටහනක් එහි පෙරනිමි උපසර්ගය ඉල්ලා සිටිය හැක:

# /etc/openvpn/server/ccd/exit-node
iroute 0.0.0.0 0.0.0.0

එම පේළිය සේවාදායක ක්‍රියාවලියට කියන්නේ "ඕනෑම ගමනාන්තයක් සහිත අභ්‍යන්තර පැකට්ටු මෙම සේවාලාභියාට අයත්" යනුවෙනි. එය හබ් එකේ මෙහෙයුම් පද්ධතියට පෙරනිමි මාර්ගයක් එකතු නොකරන අතර හබ් එක අන්තර්ජාල ද්වාරයක් බවට පත් නොකරයි. OpenVPN 2.6 යොමුව සේවාලාභියාට විශේෂිත අභ්‍යන්තර රවුටින් සහ කර්නල් රවුටින් වෙන වෙනම යාන්ත්‍රණ ලෙස තබා ගනී, මෙම වෙන්වීම නිසාම මෙම නිර්මාණය හබ් එකේ පෙරනිමි මාර්ගය ස්පර්ශ නොකර ක්‍රියා කරයි.

පාරිභෝගිකයාට දර්පණ උපදෙස් අවශ්‍යයි, push ලෙස ලබා දෙනු ලැබේ, එවිට ඔහුගේම ගමන් කිරීම ස්ථානීය ද්වාරය හරහා පිටවීම වෙනුවට උමඟට ඇතුළු වේ. උපජාල ටොපොලොජියේදී තටාකය පිටවීමේ tun උපාංගයේ සම්බන්ධිත මාර්ගයකි, එබැවින් ආපසු දිශාවට අමතර push අවශ්‍ය නොවේ; පිටවීමට නොලැබිය යුත්තේ පහත යළි-යොමුවයි, එය එහිම ඉහළ සබැඳි ගමන් කිරීම භාවිතා කිරීමට උත්සාහ කරන උමඟට ආපසු යවනු ඇත. එය පාරිභෝගිකයාට පමණක් යවන්න, CCD ගොනුව තෝරාගෙන ඇතැයි විශ්වාස කිරීම වෙනුවට සේවාලාභියා මත යෙදූ මාර්ග කියවන්න.

# /etc/openvpn/server/ccd/consumer-01
push "redirect-gateway def1"

යොමු කිරීම කරන්නේ පිටවීමේ කර්නලයයි

පිටවීම තුළ, පාරිභෝගිකයාගෙන් එන පැකට්ටුවක් tun අතුරුමුහුණතට යම් අන්තර්ජාල සත්කාරකයක ලිපිනයට පැමිණේ. කර්නලය තම රවුටින් වගුව බලා, හොඳම ගැලපීම ලෙස සැබෑ ඉහළ සබැඳිය සොයා ගෙන, පසුව ස්වාධීන ප්‍රතිපත්ති දෙකක් යොදයි: මෙම පැකට්ටුව කිසිසේත් යොමු කළ හැකිද, එම මූලාශ්‍ර ලිපිනය සමඟ එම අතුරුමුහුණතින් පිටවිය හැකිද. යොමු කිරීම sysctl එකක් වන අතර බොහෝ බෙදාහැරීම්වල පෙරනිමියෙන් වසා ඇත.

එබැවින් පිටවීමට නිරන්තරයෙන් සක්‍රීය IPv4 යොමු කිරීම, පාරිභෝගිකයාගේ උමඟ මූලාශ්‍ර ඉහළ සබැඳිය දෙසට ඉඩ දෙන රීතියක් සහ tun හරහා ආපසු එන පිළිතුරු මාර්ගය අවශ්‍යයි. සම්පූර්ණ සත්කාරකයට යොමු කිරීම සක්‍රීය කිරීම එය හරහා රවුට් වන අනෙක් සියල්ලේ හැසිරීම ද වෙනස් කරයි, එබැවින් රීතිය සියල්ල පිළිගැනීම වෙනුවට මූලාශ්‍ර සහ අතුරුමුහුණත් නම් කළ යුතුය.

ආපසු මාර්ගය මිලදී ගන්නේ මූලාශ්‍ර පරිවර්තනයයි

අන්තර්ජාල සත්කාරකයකට 10.90.0.x ලිපිනයට මාර්ගයක් නැත, එබැවින් පිළිතුරු පිටවීමට ළඟා වීමට පෙරම ඉවත දමනු ඇත. පැකට්ටුව ඉහළ සබැඳියෙන් පිටවන විට මූලාශ්‍රය නැවත ලිවීම එය විසඳයි, සම්බන්ධතා නිරීක්ෂණය ආපසු යන විට එම නැවත ලිවීම ආපසු හරවයි.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.90.0.0/24 -o enp1s0 -j MASQUERADE
ip -4 route get 10.90.0.9   # run on the exit: must point at the tun

ඉහත රීතිය එක් ඉහළ සබැඳි අතුරුමුහුණතක් සඳහා ආරම්භක ස්ථානයක් මිස firewall ප්‍රතිපත්තියක් නොවේ. මූලාශ්‍රය ඔබ සැබවින්ම බලය පැවරූ පැවරීම් දක්වා පටු කරන්න, පිටවීමේම ආදාන ප්‍රතිපත්තිය වෙනම තබන්න, එවිට උමඟ ගමන් කිරීම සඳහා වන ආවරණය ස්ථානීය සේවා නිහඬව නොහෙළි කරයි. ගතික ඉහළ සබැඳි ලිපිනයක් ඇති සත්කාරකයක, ආවරණය ලිපිනය අතින් නිරීක්ෂණය කිරීමෙන් ද ඔබ බේරා ගනී.

හබ් එකට බලාත්මක කළ හැකි තැන සහ නොහැකි තැන

client-to-client සහ සාම්ප්‍රදායික පරිශීලක අවකාශ දත්ත මාර්ගය සමඟ හබ් එක සේවාදායක ක්‍රියාවලිය තුළම සගයන් අතර අභ්‍යන්තර පැකට්ටු භාර දෙයි. ඒවා කිසිදා හබ් එකේ කර්නල් FORWARD දාමය හරහා නොයයි, එබැවින් එහි කර්නල් රීතියකට සගයන් අතර ගමන් සීමා කළ නොහැක, කෙතරම් සැලකිල්ලෙන් ලියා තිබුණත්. බලාත්මක කිරීම සේවාදායකයේම ප්‍රතිපත්තියේ ජීවත් විය යුතුය: කාට සම්බන්ධ විය හැකිද, කුමන CCD ගොනුවක් ලැබේද, පිටවීමේ පෙරනිමි හිමිකම කිසිසේත් ලබා දෙන්නේද යන්නයි.

එබැවින් පෙරනිමි iroute යනු පුළුල් විශ්වාස තීරණයකි. පිටවීම අත්තනෝමතික අන්තර්ජාල ලිපිනවලින් එන ආපසු ගමන් කිරීම නීත්‍යානුකූලව පිළිගත යුතුය, එය ඔබ පාලනය කරන, යාවත්කාලීන කරන සහ නිරීක්ෂණය කරන යන්ත්‍රයක් විය යුතුය. එම හිමිකම ඔබ රවුටරයක් භාර නොදෙන සගයෙකුට දීම මෙම නිර්මාණය ආරාධනා කරන වැරැද්දයි.

සාමාජිකත්වය යනු සැබෑ පාලනයයි. තමන්ගේම මාර්ග වින්‍යාස කළ හැකි ඕනෑම සේවාලාභියෙකුට පිටවීම භාවිතා කිරීමට උත්සාහ කළ හැක, එබැවින් කාට සම්බන්ධ විය හැකිද හෝ පිටවීම කුමන සගයන්ට සේවය කරයිද යන්න සීමා කිරීම නිර්මාණයේ කොටසක් මිස පසු සිතුවිල්ලක් නොවේ.

පිටවීම අතුරුදහන් වූ විට ආරක්ෂිතව අසාර්ථක වීම

පිටවීම නොබැඳි කරන්න, අභ්‍යන්තර පෙරනිමි හිමිකම එහි සැසිය සමඟම අතුරුදහන් වේ. නොවිය යුතු දෙය නම් හබ් එක නිහඬව ආදේශක පිටවීම බවට පත්වීමයි: VPN තටාකයේ සිට හබ් එකේ ඉහළ සබැඳියට පෙරනිමි මාර්ගයක් නැති වීම, සහ හබ් එකේ එම ගමන් කිරීම සතුටින් යොමු කරන පුළුල් ආවරණ රීතියක් නොතිබීමයි. එම අසාර්ථකත්වය හිතාමතා පරීක්ෂා කරන්න, පසුව දැනටමත් විවෘතව තිබූ පිටුවක් වෙනුවට නව ගැලීමකින් ප්‍රතිසාධනය පරීක්ෂා කරන්න.

# on the consumer, with the exit up and then down
ip -4 route get 1.1.1.1
curl -sS -o /dev/null -w '%{http_code}\n' https://example.com

පිටවීම ගිය පසුවත් පාරිභෝගිකයාගේ ගමන් කිරීම අන්තර්ජාලයට ළඟා වන්නේ නම්, වෙනත් දෙයක් එය ගෙන යන අතර ඔබ අදහස් කළ සීමාව නොපවතී. DNS සහ IPv6 ද වෙන වෙනම තීරණ ලෙස සලකන්න: IPv4 මාර්ගය සහ ආවරණය AAAA ගමන් කිරීම ගැන කිසිවක් නොකියයි, හබ් එක විසින් තල්ලු කරන ලද විසඳුම්කරු ප්‍රශ්නය සැබවින්ම පිටවන තැනින් පිළිතුරු දෙනු ඇත.

අදාළ ලිපි