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

හැඩතල දෙකක්, හමුවන ස්ථානයක්

පළමු හැඩයේදී සේවාලාභියා පිටතට SSH සැසියක් විවෘත කර සේවාදායකයෙන් තෝරාගත් පෝටයක සවන් දීමට ඉල්ලා සිටී, සහ සෑම සම්බන්ධතාවයක්ම එම සැසිය හරහා ආපසු යවයි. සේවාදායකයේ කිසිවක් ඉදිරියට නොයවන අතර පැකට් පරිවර්තනයක් සිදු නොවේ, එබැවින් එකම අවශ්‍යතා වන්නේ SSH ගිණුමක්, අවසර ලත් ඉදිරියට යැවීමක් සහ පෝටය සඳහා ෆයර්වෝල් නියමයක් ය. සේවාව සේවාලාභියාගේ ලූප්බැක් වෙත බැඳී පවතී, එය සාමාන්‍යයෙන් ඔබට අවශ්‍ය දෙයයි.

ssh -N -R 8081:127.0.0.1:8080 -o ExitOnForwardFailure=yes -o ServerAliveInterval=30 [email protected]

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

දෙකෙන් කිසිවක් ස්වභාවයෙන් වඩාත් ආරක්ෂිත නොවේ. දෙකම එක් සේවා පෝටයක් සේවාදායකයේ පොදු ලිපිනයට ළඟා විය හැකි සෑම කෙනෙකුටම නිරාවරණය කරන අතර, දෙකම තවමත් සේවාවේම සත්‍යාපනය මත රඳා පවතී.

පළමු කොන්දේසිය: පෝටය සැසියට වඩා දිගු කල් ජීවත් විය යුතුද

ප්‍රතිලෝම ඉදිරියට යැවීමක් එය නිර්මාණය කළ SSH සැසිය තරම් කාලයක් පමණක් ජීවත් වේ. සම්බන්ධතාවය බිඳ වැටුණු විට සවන් දෙන්නා අතුරුදහන් වන අතර සගයා මන්දගාමී මාර්ගයක් වෙනුවට ප්‍රතික්ෂේප කළ සම්බන්ධතාවයක් දකී. systemd ඒකකයක් සහ නැවත ආරම්භ කිරීමේ ප්‍රතිපත්තියක් සමඟ විධානය අධීක්ෂණය කිරීම එය විසඳන අතර, ExitOnForwardFailure=yes අසාර්ථක බැඳීමක් වහාම දෘශ්‍යමාන කරයි, ඉදිරියට යැවීමකින් තොරව ධාවනය වන සැසියක් අත්හැරීම වෙනුවට.

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

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

දෙවන කොන්දේසිය: ෆයර්වෝලය සහ ලොග කාටද

ප්‍රතිලෝම හැඩය සියලු ප්‍රතිපත්ති ස්ථාන දෙකක තබා ගනී. sshd AllowTcpForwarding හරහා දුරස්ථ ඉදිරියට යැවීම් කිසිසේත් අවසර දී ඇත්දැයි තීරණය කරන අතර, GatewayPorts සවන් දෙන්නා ලූප්බැක් වෙත බැඳේද නැතහොත් සෑම ලිපිනයකටම බැඳේද යන්න තීරණය කරයි. පෙරනිමි no සමඟ සේවාදායකයෙන් පිටත සගයාට ඉදිරියට යැවීම සාර්ථක වුවත් පෝටයට ළඟා විය නොහැක, සහ එය කැඩුණු උමඟක් ලෙස පෙනේ, ඇත්තෙන්ම එය බැඳීමේ ලිපිනයක් වන විට.

sudo ss -ltn '( sport = :8081 )'
sudo grep -E '^(GatewayPorts|AllowTcpForwarding)' /etc/ssh/sshd_config

පරිවර්තිත හැඩයට සක්‍රීය ඉදිරියට යැවීමක් සහ නියම දෙකක් අවශ්‍ය වන අතර, දෙවන නියමය බොහෝ වට්ටෝරු වැරදි වන තැනයි. මූලාශ්‍ර පරිවර්තනය conntrack හි DNAT තත්ත්වයට සීමා කිරීම යනු ගමනාන්ත නියමය විසින් නිර්මාණය කළ සම්බන්ධතා පමණක් නැවත ලියන බවයි, සේවාදායකය උමඟට යවන සෑම පැකට්ටුවක්ම නොව.

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8081 -j DNAT --to-destination 10.88.0.6:8080
sudo iptables -t nat -A POSTROUTING -o tun0 -m conntrack --ctstate DNAT -j SNAT --to-source 10.88.0.1

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

තෙවන කොන්දේසිය: එක් පෝටයක්ද නැතහොත් බොහෝ, සහ නම කාටද

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

නම් මෙය වඩාත් සංකීර්ණ කරයි. ප්‍රතිලෝම ඉදිරියට යැවීමක් SNI අනුව මාර්ගගත කරන TCP ප්‍රොක්සියක පිටුපස සිටිය හැක, නමුත් පරිවර්තිත පෝටයක් සාමාන්‍යයෙන් සේවාවකට එක් පෝටයකි. සේවාවම TLS අවසන් කර මුල් සත්කාරක නාමය අවශ්‍ය නම්, ප්‍රොක්සි ක්‍රමය එය රැක ගන්නා අතර, DNAT ක්‍රමය එය රැක ගන්නේ සේවාව එම පෝටයේ එම නාමය පිළිගන්නා නම් පමණි.

කොන්දේසි තුනෙන් කුමක් හැඩය තීරණය කළේද යන්න ලියන්න. එසේ නොවුනහොත් දෙවන සේවාවක් එකතු කරන ඊළඟ පුද්ගලයා අඩු සන්දර්භයක් සමඟ එම සංසන්දනය නැවත විවෘත කරනු ඇත.

තීරණය කර, පසුව පිටතින් පරීක්ෂා කරන්න

ලැප්ටොප් පරිගණකයට කිසිදු මාර්ගයක් නොමැති ජාලයකින් මාර්ගය පරීක්ෂා කර, ඉල්ලීම ධාවනය වන අතරතුර සේවාදායකයේ කවුන්ටර නිරීක්ෂණය කරන්න. සේවාදායකයේ සිට එහිම පොදු ලිපිනය දෙසට පරීක්ෂා කිරීම මෙහි කිසිවක් ඔප්පු නොකරයි, මන්ද පැකට්ටුව දේශීයව නිර්මාණය වන අතර ඇතුළු වන පරිවර්තන කොක්කට කිසිදා ළඟා නොවේ, එබැවින් සැබෑ මාර්ගය කැඩී තිබියදී පරීක්ෂණය සමත් විය හැක.

sudo iptables -t nat -L PREROUTING -n -v
sudo tcpdump -ni any 'tcp port 8081' -c 20

සමතලාව පවතින කවුන්ටර යනු පැකට්ටුව කිසිදා නියමයට ළඟා නොවූ බවයි, එය සැපයුම්කරු හෝ සත්කාරක ෆයර්වෝලය දෙසට යොමු කරයි. සේවාව ප්‍රතික්ෂේප කරන අතරතුර චලනය වන කවුන්ටර සේවාලාභියාගේම ෆයර්වෝලය හෝ සේවාව සවන් දෙන ලිපිනය දෙසට යොමු කරයි. පැකට්ටුව ගෙන යන නමුත් කිසිවක් ආපසු නොදෙන උමඟක් යනු මාර්ග හෝ ප්‍රතිලෝම මාර්ග ගැටලුවකි, සහ මෙම ප්‍රතිඵල තුනෙන් කිසිවක් සේවාලාභී අනුකූලකය සංස්කරණය කිරීමෙන් දෝෂ නිරාකරණය නොකළ යුතුය. කිසිවක් වෙනස් කිරීමට පෙර කුමන කවුන්ටරය චලනය වූයේද යන්න ලියන්න, මන්ද ඊළඟ පරීක්ෂණයට එම මූල රේඛාව අවශ්‍ය වේ.

හැඩය ක්‍රියාත්මක වූ පසු පෝටය, හිමිකරු සහ අධීක්ෂණ ක්‍රමය උමඟ වින්‍යාසය අසල සටහන් කරන්න. යම් අයෙකුගේ ෂෙල් ඉතිහාසයේ පමණක් පවතින ළඟාවීමේ අලුත්වැඩියාවක් එක් නැවත ඇරඹීමක් දුරින් පුනරාවර්තන සිදුවීමකි.

අදාළ ලිපි