A වාර්තා දෙකක්, ලිපිනයක් එකක්, ඩේමන් එකක්: පරිශීලකයා ටයිප් කරන නම කුමක් වුවත්, පැමිණෙන පැකට්ටුව සමාන වේ, සහ 1194 පෝට් එකට බැඳී ඇති ක්‍රියාවලියට දෙක වෙන්කර හඳුනා ගැනීමට කිසිවක් නැත. මෙය අලුත්වැඩියාවක් එනතුරු බලා සිටින වැරදි වින්‍යාසයක් නොවේ; මෙය නම් සොයාබැලීමට ප්‍රකාශ කළ හැකි දේෙහි සීමාවයි. OpenVPN අවස්ථා දෙකක් අතර තෝරාගන්නා කිසිවක් සේවාදායකයා සම්බන්ධතාවයට දමන සහ ඉදිරිපසට නැවත කියවිය හැකි අගයක් විය යුතු අතර, සාමාන්‍ය OpenVPN සේවාදායකයක් එවැනි අගයක් විවෘතව නොතබයි. ඊළඟට එන්නේ මෙය ඔබව තබන තැන සහ සැබෑ ලෙසම ගමන් ප්‍රවාහය වෙන් කරන වින්‍යාස මොනවාද යන්නයි.

විසඳන්නා ආපසු දෙන දෙයින් පටන් ගන්න

සේවාදායකය vpn-a.example ඉල්ලා ලිපිනයක් ලබා ගනී; එම ලිපිනය සහ පෝට් එකක් එය අමතන සියල්ලයි. නම සොයාබැලීමේදී දේශීයව වැය වන අතර එය කිසිදා රැහැනේ ක්ෂේත්‍රයක් නොවේ, එබැවින් අනෙක් කෙළවරේ ශ්‍රාවකයට කුමන ලේබලයක් භාවිත කළාදැයි දැකිය නොහැක. vpn-a.example සහ vpn-b.example එකම සත්කාරකයට යොමු කරන්න, සොයාබැලීම් දෙකම එකම ගමනාන්තය දෙනු ඇත, එබැවින් ඩේමන් කිසිදු වෙනසක් වාර්තා නොකර සම්බන්ධතා දෙකම එකම අවස්ථාවකට උරා ගනී. ලිපිනය පදනම් කරගත් පැතිකඩ ද එම හේතුව නිසාම නම පදනම් කරගත් පැතිකඩ මෙන් හැසිරේ.

මෙය රසවත් විකල්ප මාර්ග පවුලක් ද වසා දමයි: අමතර අන්වර්ථ, එක් සොකට් එකක් මත එක් එක් නමට සහතිකයක් තෝරාගැනීම, හෝ ඇසූ නමට සම්බන්ධ firewall රීතියක්. මේ කිසිවකට පළමු පැකට්ටුව සේවාදායකයාගෙන් පිටවීමට පෙරම ඉවත දමා තිබූ තොරතුරු මත ක්‍රියා කළ නොහැක. සේවාදායක දෙකක් වෙන්වම තිබිය යුතු නම්, බෙදීම සම්බන්ධතාවය සමඟම ගමන් කළ යුතුය, එනම් ලිපිනයක්, පෝට් එකක්, හෝ ප්‍රොටෝකෝලය නිර්වචනය කරන ගෙවුම් භාර ක්ෂේත්‍රයක්.

ගණන් ගන්නා එකම තේරීම්කරු පැකට්ටුව තුළින් ගමන් කරයි

HTTP මෙය Host ශීර්ෂකයෙන් හසුරුවන අතර, TLS ClientHello තුළ සේවාදායක නම් දිගුවෙන්, එසේ එක් ලිපිනයක් එක් ශ්‍රාවකයෙකු පිටුපස බොහෝ අඩවිවලට සේවය කරයි. දෙකම ක්‍රියා කරන්නේ රැහැනේ ප්‍රොටෝකෝලය නිශ්චිත සේවාවක් සඳහා ඉල්ලීමක් දරන බැවිනි. OpenVPN පිළිබඳ අදාළ කරුණ නම් අතරමැදි පෙට්ටියක් පරීක්ෂා කරන ස්තරයේ එම ක්ෂේත්‍ර දෙකෙන් එකක්වත් නොමැති වීමයි.

සාමාන්‍ය වින්‍යාසයක පාලන නාලිකාව ආරක්ෂා කරන TLS අත්වැල කිරීම පිටත සැසිය ස්ථාපිත වූ පසු සිදු වන අතර එය තුළින්ම ගෙන යනු ලැබේ, එබැවින් එම සැසිය අවසන් නොකළ ශ්‍රාවකයාට අපැහැදිලි ප්‍රවාහයක් පෙනේ. එය තවමත් මෙය OpenVPN බව කිව හැකිය, මන්ද ආරම්භක බයිටවල ඕප්කෝඩය සහ රාමුකරණය හඳුනාගත හැකි බැවිනි, නමුත් සේවාදායක නම, ඇත්නම්, සංකේතනය කළ කොටසේ වාඩි වී ඇත. පිටත පැකට්ටුවෙන් අතථ්‍ය සත්කාරකයක් කියවීමට බලාපොරොත්තු වන නිර්මාණයක් කියවන්නේ ප්‍රොටෝකෝලය කිසිදා එහි නොලියන ක්ෂේත්‍රයකි. මෙය පිටතට එන්නේ උමංගය ගොඩනගා ඇති ආකාරයෙනි, වඩා දක්ෂ රටා ගැලපීමකට වසා දැමිය හැකි හිඩැසකින් නොවේ.

ප්‍රොටෝකෝල බෙදුම්කරු නතර වන්නේ කොහේද

sslh ව්‍යාපෘතිය ලේඛනගත කරන ආකාරයේ බහුත්වකරුවෙක් එක් පෝට් එකක් මත සවන් දෙයි, ආරම්භක බයිට පරීක්ෂා කරයි, සහ හඳුනාගත් ප්‍රොටෝකෝලය කථා කරන ඕනෑම backend එකකට සම්බන්ධතාවය භාර දෙයි. එක් පෝට් එකක් SSH, HTTPS සහ OpenVPN එකට සේවය කළ යුතු විට මෙය සැබෑ වටිනාකමකි.

sslh එක් එක් ප්‍රොටෝකෝලය සඳහා වෙනම පරීක්ෂාවක් තබා ගනී, එහි TLS පරීක්ෂාවට සැබෑ ClientHello එකකින් සේවාදායක නමක් හෝ ALPN අගයක් ඇද ගත හැක. සාමාන්‍ය OpenVPN හඳුනා ගැනීම TLS දිගුවක් කියවීමට වඩා වෙනස් වර්ගීකරණයක් වන අතර, දෙකම එකට නොගැලපේ, මන්ද සවන් දෙන සොකට් එකට කිසිදා ClientHello යවන්නේ නැති සේවාදායකයක් පරීක්ෂාව කියවීමට කිසිවක් නොමැතිව තබයි. එබැවින් OpenVPN සමඟ ගැලපෙන රීතියක් “මෙය OpenVPN සේවාදායකයකි” යනුවෙන් පිළිතුරු දී ඉදිරියට නොයයි. එම රීතිය පිටුපස ඇති OpenVPN backend දෙකක් වෙන්කර හඳුනාගත නොහැක, ඉදිරිපසට තේරීම සඳහා පදනමක් නැත, සහ සෑම සැසියක්ම එකම තැනකට පැමිණේ. බහුත්වකරණය එක් පෝට් එකක් විවිධ සේවා අතර බෙදා ගනී; එය එක් සේවාවක් තුළ අතථ්‍ය සත්කාරක සේවා නොකරයි.

සේවාදායක දෙකක් සැබෑ ලෙසම වෙන් කරන වින්‍යාස

වඩාත් ලාභදායී අවංක බෙදීම වන්නේ දෙවන පොදු ලිපිනයයි, එක් එක් අවස්ථාව සඳහා එකක්, සහ දැනට ඇති පැතිකඩ දැනටමත් අවශ්‍ය දේ දරා සිටී, මන්ද ඒවා විවිධ ලිපිනවලට යොමු වේ. ඊළඟට එකම ලිපිනයේ වෙනත් පෝට් එකක්, එය සෑම පැතිකඩකම සංඛ්‍යාවකට වඩා කිසිවක් වැය නොකරයි. TCP සහ UDP වෙනම පෝට් වගු තබා ගනී, එබැවින් 1194/tcp සහ 1194/udp සම්බන්ධ නොවූ සොකට් වේ සහ එකින් එකක් එකම සත්කාරකයේ සමඟ පැවතිය හැක; මෙය නම්-මාර්ගකරණය නොව ගමන් ප්‍රවාහන බෙදීම වන අතර බොහෝ විට එය සමඟ ව්‍යාකූල වේ. විකල්ප දෙකම firewall සමාලෝචනයක් පසු කරයි, මන්ද රීතිය පැකට්ටුවේ සැබවින්ම ඇති දෙයකට ගැලපේ.

ඔබට අවශ්‍ය මායිම ක්‍රියාත්මක කිරීම් දෙකක් අතර නොව පරිශීලක කණ්ඩායම් අතර ගමන් කරන්නේ නම්, වෙනස් සේවාදායක වින්‍යාස, තමන්ගේම සහතික හසුරුවන සහ පැහැදිලි ප්‍රවේශ ප්‍රතිපත්තියක් සහිත එක් අවස්ථාවකට එය ආවරණය කළ හැක. එය මිලදී ගන්නේ සේවාදායකයක් තුළ ප්‍රතිපත්තියක්, සේවාදායක අතර හුදකලා වීම නොවේ, සහ එය වෙනස් අවශ්‍යතා දෙකකි. සම්මුතියක් යටතේ තිබිය යුතු හුදකලා වීමට තවමත් ලිපිනය හෝ firewall අද්දර අවශ්‍ය වේ.

OpenVPN ඉදිරියේ තැබූ TLS අවසන් කරන්නෙකුට හැකියාව ඇති ඉදිරිපසට සැබෑ සේවාදායක නමක් නිරාවරණය කළ හැක, නමුත් සේවාදායක පැත්ත ද එම අමතර ස්තරය සඳහා වින්‍යාස කර ඇති විට පමණි. දැනට ඇති පැතිකඩ එකම ලිපිනයට යොමු කිරීමෙන් පමණක් එම හැසිරීම ලබා නොගනී.

ගොඩනැගීමට පෙර තේරීම්කරු ඔප්පු කරන්න

backend එකක් හඳුනාගන්නා ක්ෂේත්‍රය නම් කරන්න, පසුව සේවාදායකය එය සැබවින්ම යවන්නේදැයි තහවුරු කරන්න; පිළිතුර ලිපිනයක් නම් සැලසුම රැඳේ, එය ශ්‍රාවකයා වෙත කිසිදා නොළඟා වන අත්වැල කිරීමක් තුළ ඇති සේවාදායක නමක් නම්, කිසිදු DNS කාර්යයක් එය ගළවන්නේ නැත. විධාන තුනක් සවන් දෙන පැත්ත ඉක්මනින් තීරණය කරයි.

ss -lntup | grep -E ':443|:1194'
openssl s_client -connect vpn-a.example:443 -servername vpn-a.example </dev/null | head -n 20
journalctl -u openvpn-server@server-a -n 20 --no-pager

openssl පේළිය සහතිකයක් දෙන්නේ එම ලිපිනයේ යමක් TLS අවසන් කරන තැන පමණි; සාමාන්‍ය OpenVPN ශ්‍රාවකයකට එරෙහිව එය සිරවේ හෝ අසාර්ථක වේ, සහ එයම පිටත ස්තරය කුමක් නිරාවරණය කරන්නේද යන්නට පිළිතුරයි. journal පේළිය, සෑම backend එකකම කියවූ විට, කුමන අවස්ථාව සැසිය පිළිගත්තේදැයි පෙන්වයි. ඉදිරිපස ලොග වර්ගීකරණය කළ දේ ලියන අතර අදහස් කළ දේ කිසිදා නොලියයි, එබැවින් පරිශීලකයා පැමිණි තැන පිළිබඳ එකම අධිකාරිය backend ලෙසම පවතී.

විවිධ සේවාදායක වෙත ළඟා වීමට අදහස් කළ පැතිකඩ දෙකකින් අවසන් කරන්න, ඒවා එකින් එක සම්බන්ධ කර එක් එක් එකට backend ලොගය සටහන් කරන්න. සැසි දෙකම එකම journal එකක දිස්වන්නේ නම්, තේරීම්කරු වැරදි ලෙස වින්‍යාස කර නොව නොමැත, සහ නිවැරදි කිරීම වන්නේ සේවාදායකයට ඉලක්ක කළ හැකි ලිපිනයක් හෝ පෝට් එකකි. මාර්ගකරණ රීතිය සංස්කරණය කිරීම උදව් නොවනු ඇත, මන්ද රීතියට කිසිදා මාර්ගගත කිරීමට කිසිවක් ලබා දී නැත. බෙදීම සැබෑ වූ පසු, ඊළඟ පුද්ගලයා දෙවන අන්වර්ථයක් එකතු කර එයින් වැඩ බලාපොරොත්තු නොවන පරිදි එය පැතිකඩ අසල ලියන්න.

අදාළ ලිපි