පැතිකඩක් ස්පර්ශ කිරීමට පෙර OpenVPN ක්රියාවලි ගණන් කරන්න. රෝමිං පරිශීලකයන් පිළිගනිමින් එසේම උඩුගම් සේවාවක් අමතන Pi එකක් ඩීමන් දෙකක් ධාවනය කරයි, ඒවායින් එකක් එකක් ඔබ ටයිප් කළ අවස්ථා නමින් තෝරන ලද සැකසුම් ගොනුව කියවයි. පැකේජ සැකිලි පසුව සෑම ඩීමනයකටම තමන්ගේම කාර්ය නාමාවලිය, තමන්ගේම ධාවන තත්ත්ව ගොනුව සහ තමන්ගේම ටනල් උපාංගය ලබා දෙයි. මෙම බෙදීම වැරදි කළහොත්, ධාවනය වන ක්රියාවලිය කිසිදා නොවිවෘත කරන ගොනුවක ඇති නිවැරදි සැකසුම වෙනස් කරමින් සන්ධ්යාවක් ගත කරනු ඇත.

සෑම අවස්ථා නමක්ම තමන්ගේම ගොනුව තෝරයි

OpenVPN 2.6 සමඟ එන ඒකක ගොනුවල, ආරම්භක තර්කවල @ ලකුණට පසු වියනයෙන් පිරවෙන අවස්ථා ආදේශකයක් අඩංගු වේ. සේවාදායක සැකිල්ල සේවාදායක සැකසුම් නාමාවලියෙන් ධාවනය වී තම තර්කය එහි ඇති %i.conf සමඟ විසඳයි, සේවාලාභී සැකිල්ල ද සේවාලාභී නාමාවලියෙන් එසේම කරයි. එබැවින් [email protected] සේවාදායක නාමාවලියේ admits.conf කියවයි, [email protected] සේවාලාභී නාමාවලියේ uplink.conf කියවයි, එම නම් කිසිවකට අනෙක් නාමාවලියේ කිසිදු අර්ථයක් නැත.

පැකේජය උඩුගම් පෙරනිමි රඳවා ගත්තේ යැයි උපකල්පනය නොකර යන්ත්රයේ සිතියම තහවුරු කරන්න. බෙදාහැරීමේ drop-in එකකට කාර්ය නාමාවලිය හෝ සැකසුම් තර්කය සම්පූර්ණයෙන්ම ප්රතිස්ථාපනය කළ හැකිය.

systemctl cat [email protected]
systemctl cat [email protected]

එම ප්රතිදානයේ WorkingDirectory පේළිය සහ සැකසුම් තර්කය කියවන්න, මන්ද කුමන ගොනුව පූරණය වේද යන්න තීරණය කරන්නේ සක්රීය ඒකකය පමණි. ExecStart වෙත --config එකතු කරන drop-in එකක්, සැකිලි මාර්ගය නිවැරදි ලෙස පෙනුණත් සැකිල්ල පරදවයි. දේශීය අභිබවා යාමක් සිදුවේදැයි දැන ගැනීමට කැබලි සහ drop-in මාර්ග ඉල්ලන්න. භූමිකා දෙකම එක් ගොනුවකට විසඳේ නම්, එක් ක්රියාවලියක් සේවාදායකයා සහ සේවාලාභියා දෙකම වීමට උත්සාහ කරයි, එම ගොනුවේ පසුකාලීන විකල්පය නිහඬව ජය ගනී.

දේශීය ප්රවාහනය සහ යොමු කළ පේලෝඩය වෙනස් හූක් වෙත වැටේ

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

FlowHook that sees itWhat to inspect
Roaming user handshakes to the serverLocal input and local outputListener socket, bind address, rule admitting the UDP port
User payload leaving through the upstream tunnelForwardIPv4 forwarding switch, selected route, permission rule, any translation
Pi's own connection to the upstream peerLocal outputUnderlay route to the provider endpoint, not the tunnel route

forward දාමයක් තුළ පිටවන අතුරුමුහුණතට ගැළපෙන රීතියකට, මාර්ගගත කිරීම දැනටමත් එම අතුරුමුහුණතට පවරා ඇති පැකට්ටුවකට ඉඩ දීම හෝ ඉවත දැමීම කළ හැකි නමුත්, එය කිසිදා අතුරුමුහුණත තෝරන්නේ නැත. එක් සත්කාරකයක් එක් ටනලයක් අවසන් කර තවත් එකක් ආරම්භ කරන විට, පරිශීලක පේලෝඩය උඩුගම් ටනලයට යවන ප්රතිපත්තිය සහ Pi හි තමන්ගේම සංකේතිත පිළිතුරු ආරක්ෂා කරන ප්රතිපත්තිය වෙන වෙනම තීරණ දෙකකි. ඒවා අහම්බෙන් එකම භෞතික NIC මතට වැටේ, එබැවින් ඒවා ව්යාකූල වේ.

එම වෙනස සුලභ අර්ධ-අසාර්ථකත්වයක් පැහැදිලි කරයි. පරිශීලකයන් සම්බන්ධ වේ, handshake සම්පූර්ණ වේ, එහෙත් ඔවුන්ගේ ගමන් ප්රවාහය වැරදි මාර්ගයෙන් පිටවේ, මන්ද handshake දේශීය වූ අතර පේලෝඩය forward වූ අතර දෙකෙන් එකක් පමණක් පරීක්ෂා කර තිබුණි.

ආයාත කළ මාර්ගයක් ඔබේ පරිශීලකයන්ට යන පිළිතුරු ගිල දැමිය හැක

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

මූලාශ්රය හෝ mark පදනම් කළ ප්රතිපත්තිය දෙපැත්ත වෙන් කර තබා ගැනීමේ ක්රමයයි. OpenVPN හි Linux mark විකල්පය ඩීමනයේ තමන්ගේම සංකේතිත පැකට්ටු firewall mark එකකින් සලකුණු කරයි, පසුව මාර්ගගත රීතියකට එය වෙන් වූ වගුවකට යැවිය හැකිය. සේවාදායකයාගේ බාහිර පිළිතුරු සැමවිටම එක් underlay ලිපිනයකින් පිටවන විට මූලාශ්ර ලිපින ද එසේම හොඳින් ක්රියා කරයි. දෙකම තෝරන වගුවේ වලංගු මාර්ග සහ සපයන්නාගේ endpoint සඳහා ව්යතිරේකයක් අවශ්ය වේ, නැතහොත් ටනලයම නැගෙන්නේ නැත.

කිසිදු රීතියක් ලිවීමට පෙර පිළිතුරක් ඇත්තටම ගන්නා මාර්ගය කර්නලයෙන් අසන්න. පහත ලිපින Pi හි underlay ලිපිනයක් සහ එක් රෝමිං පරිශීලකයෙකුගේ පොදු ලිපිනය සඳහා ආදේශක වේ.

ip rule show
ip route get 198.51.100.7 from 192.0.2.10

බෙදීම තහවුරු කර, පසුව එක් භූමිකාවක් බැගින් නවතන්න

ප්රවාහ තුන වෙන් වෙන්ව පරීක්ෂා කරන්න, මන්ද සාර්ථක handshake එකක් අනෙක් දෙක ගැන කිසිවක් ඔප්පු නොකරයි. නව ආගමන සම්බන්ධතාවක් පිළිගෙන, අවසර ලත් යෙදුමක් උඩුගම් පිටවීම හරහා යවා, ක්රියාවලි දෙකම තම තමන්ගේ සහකරුවන් වෙත තවමත් ළඟා වන බව තහවුරු කරන්න.

පසුව සේවාලාභී භූමිකාව නවතා සේවාදායක භූමිකාව රඳවා ගන්නේ කුමක්දැයි බලන්න. එක් අවස්ථාවකට අදහස් කර දෙකටම යෙදූ මාර්ග හෝ mark රීතියක් සොයා ගැනීමට ඇති ලාභම ක්රමය මෙයයි.

systemctl stop [email protected]
systemctl status [email protected] --no-pager
ss -lunp | grep openvpn
journalctl -u [email protected] -n 20 --no-pager

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

අදාළ ලිපි