stunnel පිටුපස OpenVPN: 1194 තීරුව නොව, ආවරණය යවන්න
අසන්නන් දෙදෙනෙක්, තීරු තුනක්. යැවීම කොහේ ගොඩබසින්නේද, ආවරණය කොහේ බැඳෙන්නේද, කොහේ සම්බන්ධ වන්නේද, දේශීය පරීක්ෂණයක් මඟහැරියේ කුමක්ද සහ අනන්යතා දෙකම පරීක්ෂා කරන්න.
TLS ආවරණය OpenVPN ඉදිරියෙහි තබන්න, එවිට ස්ථාපනයට දෙවන අසන්නෙක් ලැබේ; ඔවුන්ගෙන් එකෙකු පමණක් කිසිදා අන්තර්ජාලයට මුහුණලා තිබිය යුතුය. එකම යන්ත්රයෙන් උමග වැඩ කර පිටතින් අසාර්ථක වන විට, යැවීම සාමාන්යයෙන් දෙදෙනාගෙන් වැරදි එක දෙසට යොමු වේ. ගැලපිය යුත්තේ දාමයකි: පොදු රීතිය ආවරණයට ළඟා වේ, ආවරණයේම පසුපස සම්බන්ධතාව සැබෑ VPN සොකටයට ළඟා වේ. පැනීම් හතරක් මෙම දාමය උසුලයි, ඒවායින් ඕනෑම එකකට පරීක්ෂණය කලින් අවසන් කළ හැක.
සොකට් දෙකක්, හිමිකරුවන් දෙදෙනෙක්, එකක් පොදු
ආවරණය පිටත සම්බන්ධතාව සඳහා TLS අවසන් කර විකේතනය කළ බයිට් ධාරාව සාමාන්ය OpenVPN TCP අසන්නෙකුට ලබා දෙයි. මේවා වෙන වෙනම වින්යාස ගොනු සහිත වෙන වෙනම සොකට් වේ, එබැවින් එකක් සංස්කරණය කිරීම අනෙක අස්පර්ශිව සහ තවමත් පෙනුමෙන් සුවපත්ව තබයි. එකක් අනෙකකින් තොරව වෙනස් කළ විට දෙකම ඈත් විය හැකි බවද මින් අදහස් වේ.
යන්ත්රයෙන්ම වැඩ කිරීම එබැවින් පොදු මාර්ගය ගැන ඉතා අල්පයක් ඔප්පු කරයි. මූලික තීරුවට සෘජු සම්බන්ධතාව ආවරණය මඟහරියි, ආවරණයේ LAN ලිපිනයට සම්බන්ධතාව පරිවර්තනය මඟහරියි, සහ පිටත පරිශීලකයා කරන දේ පුහුණු කරන්නේ සම්පූර්ණ සේවාදායක පැත්තේ සැකසුම පමණි. නම් ද හොඳින් කියවිය යුතුය, මන්ද localhost යනු එම අංගයම ධාවනය කරන ධාරකයයි, ඔබ අහම්බෙන් ටයිප් කරන ධාරකය නොවේ. එම වෙනස ඔබේ සටහන්වල තබා ගන්න, මන්ද තමන් ආවරණය කළ පැනීම සටහන් නොකර වාර්තා කරන පරීක්ෂණයක් වෙනස් දෙයක් දෙකක් සංසන්දනය කිරීමට ඇරයුම් කරයි.
යැවීම සැබවින්ම කොහේ ගොඩබසින්නේද
දාමය තීරු අංක තුනකට වඩා පැනීම් හතරක් ලෙස රඳවා ගැනීම පහසුය, මන්ද එකම අංකය එක් එක් කෙළවරේ වෙනස් දෙයක් අදහස් කළ හැක. වගුව පේළියෙන් පේළිය කියවන්න: සෑම පේළියක්ම සම්බන්ධතාවක් පිළිගෙන පසුව ඊළඟ එක විවෘත කළ යුතු සොකට් එකකි. පේළියක් වැරදි සහකරු දෙසට යොමු වූ විට, අවසාන තීරුවේ රෝග ලක්ෂණය පරිශීලකයා වාර්තා කරන දෙයයි.
| Hop | Listens on | Must reach | Symptom when it points elsewhere |
|---|---|---|---|
| Client machine | A local plaintext port | The wrapper's public TLS address | Plain text offered to a TLS endpoint |
| Router forward | Public TCP 443 | The wrapper host on its translated port | Wrapper records no connection at all |
| Wrapper, server mode | Its accepted port, 8443 here | The native VPN socket on loopback | Handshake completes, then silence |
| Native VPN listener | Loopback TCP port | Its peer, over TCP only | A UDP socket behind a byte-stream relay |
ආවරණය වෙනුවට මූලික VPN තීරුව ඉලක්ක කරන රීතිය TLS අවසානය සම්පූර්ණයෙන් මඟහරියි, මෙය මෙම දෝෂයේ වඩාත් පොදු ස්වරූපයයි: සේවාදායකය OpenVPN රාමුකරණය අපේක්ෂා කරන අසන්නෙකු සමඟ අත්වැල් ගැසීමක් විවෘත කරයි, එබැවින් සම්බන්ධතාව විවෘත වී පසුව නතර විය හැක. පරිවර්තිත තීරුව මතකයට වඩා ආවරණයේ වින්යාස ගොනුව සමඟ තහවුරු කරන්න, මන්ද එම ගොනුව ඊළඟ වරට සංස්කරණය කරන පුද්ගලයා වෙනත් අංකයක් තෝරා තිබිය හැක. පහත උපදෙස් දෙක එම ප්රශ්නයේ දෙපැත්තම එකවර පෙන්වයි.
grep -nE '^[[:space:]]*(accept|connect)' /etc/stunnel/stunnel.conf
ss -lntp | grep -E ':443|:8443|:1194'
ඔබව ප්රතික්ෂේප කරන බැඳුම් ලිපිනය
127.0.0.1 වෙත බැඳුණු accept පේළිය ධාරකයට පමණක් පිළිතුරු දෙයි, එබැවින් LAN ලිපිනයට පැමිණෙන යැවීම සම්බන්ධ විය නොහැකි අතර සේවාදායකයට පැකට් පෙරහන් ගැටලුවක් ලෙස ශබ්ද වන ප්රතික්ෂේපයක් පෙනේ. ගිනිපවුර ස්පර්ශ කිරීමට පෙර සොකටය බලන්න, මන්ද සොකටය ලාභ පිළිතුරයි. එක්කෝ ආවරණය යැවීම ඉලක්ක කරන අතුරුමුහුණතට බඳින්න, නැතහොත් එය loopback මත තබා යැවීම සැබවින්ම ක්රියා කරන දෙයක් හරහා loopback වෙත ළඟා වන පරිදි කරන්න. මේවා සැලසුම් දෙකකි, එක් එකකට තමන්ගේම රීතියක් අවශ්යයි.
දෙකම මිශ්ර කිරීම නම් ක්රියාකාරී ආවරණයක් පිටතින් ළඟා විය නොහැකි වන ආකාරයයි, එහෙත් සෑම ගොනුවක්ම නිවැරදි ලෙස පෙනේ. පහත පරීක්ෂාව එක් උපදෙසකි, ගිනිපවුරු රීති සමාලෝචනයකට පිළිතුරු දිය නොහැකි ප්රශ්නයකට එය පිළිතුරු දෙයි. ප්රතිදානය loopback ලිපිනයක් පෙන්වා, යැවීම LAN ලිපිනය ඉලක්ක කරන්නේ නම්, නිවැරදි කිරීම accept පේළියට අයත් වේ, පැකට් පෙරහනට නොවේ.
ss -lntp '( sport = :8443 )'
දේශීය පරීක්ෂණය සැබවින්ම ඔප්පු කළේ කුමක්ද
තමන් ආවරණය කළ පැනීම සටහන් නොකර වාර්තා කරන සාර්ථකත්වය අනෙක් පැනීම් ගැන සාක්ෂියක් නොවේ. පරීක්ෂණය භාවිත කළ ලිපිනය සහ පිළිතුරු දුන් ක්රියාවලිය සටහන් කරන්න. පසුව එම Wi-Fi ජාලයේම දුරකථනයකින් නොව, ජාලයෙන් පිටතින් නැවත කරන්න, මන්ද කොණ්ඩා කටු හැසිරීම රවුටර් අතර වෙනස් වන අතර LAN කිසිදා නොතැබූ සම්බන්ධතාවකටද යැවීම කිසිසේත් සම්බන්ධ නොවී සේවාදායකයා සතුටු කළ හැක. එම දෙවන උත්සාහය පමණක් බාහිර පුද්ගලයා ගන්නා මාර්ගය පුහුණු කරයි.
උත්සාහය අසාර්ථක වූ විට, එක් සම්බන්ධතාවක් ලොග දෙකෙහිම අනුගමනය කරන්න: ආවරණයේ පිළිගත් සහ සම්බන්ධිත පේළි, පසුව VPN ඩීමන්ගේම සැසි ලොගය. කිසිවක් සටහන් නොකරන පළමු මායිම ඊළඟ වෙනසට අයත් තැනයි. OpenVPN සහකරුවාගේ විකල්ප සංසන්දනය කිරීම ආරම්භ කළ පසු, එම පණිවිඩ එම ක්රියාත්මක කිරීමේ රීතිවලින් විනිශ්චය කරන්න. link-mtu අසමගිය පිළිබඳ අනතුරු ඇඟවීම ස්වයංක්රීයව මාරක නොවේ, link-mtu 1500 ට ඇමිණීමෙන් ඛණ්ඩනය නැවතුණු බව ඔප්පු නොවේ, සහ සයිෆර් සාකච්ඡාව රවුටරයේ යැවීමට නොව OpenVPN හි අභ්යන්තර වින්යාසයට අයත් වේ.
nc -vz 127.0.0.1 1194
journalctl -u stunnel -n 50 --no-pager
එම පරීක්ෂණ පසුපස සොකටය සහ ආවරණ ලොගය ආවරණය කරයි, එය ප්රතික්ෂේප වූ පසුපසක් ප්රතික්ෂේප වූ අත්වැල් ගැසීමකින් වෙන් කරයි. එක් උත්සාහයක් ගමන් කරමින් සිටියදී ඒවා ධාවනය කරන්න, පසුව නොවේ. එකම උත්සාහයේ කාල මුද්රා සංසන්දනය විශ්වාසදායක කරන්නේ ඒවාය.
අනන්යතා දෙකක්, අසාර්ථක අනුපිළිවෙලවල් දෙකක්
පිටත සහතිකය ආවරණයටත්, අභ්යන්තර අනන්යතාව OpenVPN ටත් අයත් වන අතර ඒවා විවිධ බලධාරීන්ගෙන් පැමිණිය හැක. මාර්ගය සුවපත් ලෙස පෙන්වීම සඳහා ඕනෑම පරීක්ෂාවක් අක්රීය කිරීම සැබෑ ආරක්ෂාවක් පෙනුම් ප්රතිඵලයක් සමඟ මාරු කරයි. පරීක්ෂා දෙකම තබා අනුපිළිවෙලින් දෝෂ නිරාකරණය කරන්න, මන්ද පණිවිඩවල අනුපිළිවෙල ස්තරය නම් කරයි: ආවරණ සහතික ගැටලුවක් ඕනෑම VPN විකල්පයක් සාකච්ඡා කිරීමට පෙර දිස් වන අතර, අභ්යන්තර අනන්යතා අසාර්ථකත්වය ධාරාව ස්ථාපිත වූ පසුව පමණක් දිස් වේ.
stunnel අත්පොත accept, connect සහ සේවාදායක මාදිලිය නිශ්චිතව අර්ථ දක්වයි, එම කොටස් අනුමානයට වඩා ඉක්මනින් සොකට් ප්රශ්නයට පිළිතුරු දෙයි. කුමන ස්තරය පිළිතුරු දුන්නේද යන්න තවමත් පැවසිය නොහැකි නම්, පහත උපදෙසෙන් පොදු තීරුව ඉදිරිපත් කරන සහතිකය කියවන්න. ප්රතිදානයේ ආවරණ සහතිකයක් තිබීම යැවීම ආවරණයට ළඟා වූ බව අදහස් කරයි, නිහඬතාව හෝ ප්රොටොකෝල දෝෂයක් යනු ළඟා නොවූ බවයි. එම එකම වෙනස මෙහි වෙනත් ඕනෑම පරීක්ෂාවකට වඩා කාලය ඉතිරි කරයි.
openssl s_client -connect vpn.example:443 -servername vpn.example </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer