SNAT, DNAT සහ Masquerade: VPN හි සෑම NAT නියමයක් කරන්නේ කුමක්ද
මූලාශ්ර NAT නැවත ලියන්නේ ප්රවාහය පැමිණෙන බව පෙනෙන තැනය; ගමනාන්ත NAT නැවත ලියන්නේ එය යන තැනය. Masquerade යනු ණයට ගත් ලිපිනයක් සහිත මූලාශ්ර NAT ය.
VPN ද්වාරයේ දෙපසම ග්රහණයක් තබන්න, එවිට එක් ප්රවාහයක් විවිධ ලිපින හතරක් පෙන්විය හැක. මූලාශ්ර NAT නැවත ලියන්නේ පැකට්ටුව පැමිණෙන බව කියන තැනය; ගමනාන්ත NAT නැවත ලියන්නේ එය යන තැනය. Masquerade තුන්වන දිශාවක් නොවේ, එය ස්ථිර අගයක් වෙනුවට පිටවන අතුරුමුහුණතේ ලිපිනය ගන්නා මූලාශ්ර-NAT නියමයකි. තුනෙන් ඔබට සැබවින්ම අවශ්ය කුමක්දැයි නම් කරන්න, එවිට බොහෝ «VPN කැඩී ඇත» ටිකට්පත් ආපසු මාර්ගය පිළිබඳ ප්රශ්නයක් බවට හැකිළේය.
එක් එක් නියමය නැවත ලියන්නේ කුමක්ද
මූලාශ්ර NAT, සාමාන්යයෙන් SNAT ලෙස ලියැවේ, ප්රවාහය රවුටරයක් හෝ ද්වාරයක් හැර යන විට එහි මූලාශ්ර ලිපිනය වෙනස් කරයි. ලබන සේවාව පරිවර්තිත ලිපිනයට පිළිතුරු දෙන අතර පරිවර්තනය කරන පෙට්ටිය එම සම්බන්ධතාවය සඳහා තබාගත් තත්ත්වය භාවිතයෙන් වෙනස ආපසු හරවයි. Linux හි එම තත්ත්වය conntrack තුළ පවතී, එබැවින් conntrack -L මුල් සහ පිළිතුරු යුගල අසලින් අසල මුද්රණය කරයි.
ගමනාන්ත NAT, DNAT, ඒ වෙනුවට ගමනාන්තය වෙනස් කරයි. UDP 51820 හි පොදු ලිපිනයකට යවන ලද පැකට්ටුවක් 10.8.0.2:51820 හි අභ්යන්තර WireGuard සේවාදායකයට නැවත ලිවිය හැක. ගෘහස්ථ රවුටරයක් හෝ ක්ලවුඩ් බර සමතුලිතකාරකයක් VPN ශ්රාවකයක් ප්රකාශයට පත් කරන්නේ එලෙසය, එය උමගට පසුව කුමක් ගෙන යා හැකිද යන්න ගැන කිසිවක් නොකියයි.
Masquerade SNAT පවුලට අයත් වේ. නියමය කිසිදු ලිපිනයක් නම් නොකරයි; පැකට්ටුව පිටවන විට පිටවන අතුරුමුහුණතට ඇති ලිපිනය භාවිතා කරයි. Linux එයටම තමන්ගේ ඉලක්කයක් දෙයි, DHCP හෝ PPPoE මගින් ලිපිනය ලබා ගන්නා WAN අතුරුමුහුණතක මෙය සුපුරුදු තේරීමයි.
සිතියම පවතින තැනින් දෝෂය තීරණය වේ
සෑම මායිමකදීම යුගලය සටහන් කරන්න: උමගට පෙර, එහි ඇතුළත සහ පොදු අතුරුමුහුණතේ. උමග තුළ ග්රහණය ඉන් පිටත එකට වඩා නීත්යානුකූලව වෙනස් වේ, පරිවර්තනය සිදුවන තැන නොදැන දෙකම සසඳන කෙනෙක් වැරදි සත්කාරකය පසුපස යනු ඇත.
ආපසු යන රථවාහනය සිතියම රඳවා ගන්නා උපාංගය හරහා යා යුතුය. පිළිතුර වෙනත් මාර්ගයක්, දෙවන ඉහළ සම්බන්ධතාවයක්, ප්රතිපත්ති මාර්ගයක් හෝ ඔබේ පෞද්ගලික පරාසය ගැන කිසිදා නොඇසූ සැපයුම්කරුවෙක් ගත්තොත්, තත්ත්ව සහිත ප්රතිලෝම පරිවර්තනය කිසිදා සිදු නොවන අතර සේවාදායකයා එක්දිශානුගත රථවාහනයක් දකී. තවත් මූලාශ්ර NAT එකතු කිරීම නැතිවූ ආපසු මාර්ගය බොහෝ විට නොසකසයි; එය එක් ප්රවාහයක ලක්ෂණය සඟවා අනෙක් සෑම තැනම ලිපින පාදක ප්රතිපත්තිය බිඳිය හැක.
අනෙක් පොදු වැරැද්ද උමගක් මාර්ගගත කළ හැකියාවක් නිර්මාණය කරයි යැයි අපේක්ෂා කිරීමයි. පැකට්ටු අන්තර්ජාලයට යන පෞද්ගලික සේවාදායකයාට වලංගු නිකාස විධිවිධානයක් අවශ්යයි: පෙරනිමි මාර්ගයක්, ඉදිරියට යවන ද්වාරයක් සහ සාමාන්යයෙන් පොදු ලිපිනයකට මූලාශ්ර පරිවර්තනයක්. එන්ක්රිප්ෂනය පමණක් පෞද්ගලික ලිපිනයක් ළඟා විය හැකි එකක් නොකරයි.
Masquerade ද පැහැදිලි SNAT ද
දෙකම පොරොන්දු වන දේ අනුව සසඳන්න. Masquerade නිකාස ලිපිනය තෝරයි, පැහැදිලි SNAT එය සවි කරයි. ස්ථාවර පොදු ලිපිනයක් ඇති ද්වාරයක සවි කිරීම ලොග සහ හවුල්කාර අවසර ලැයිස්තුවලට එක් පුරෝකථනය කළ හැකි අගයක් දෙයි. ගතික WAN සබැඳියක සවි කළ SNAT ලිපිනය බදු වෙනස් වන මොහොතේම වැරදි වේ, Masquerade නිර්මාණය කළේ හරියට ඒ අවස්ථාව සඳහාය.
විෂය පථය තේරීම තරම්ම වැදගත් වේ. ද්වාරය හැර යන සෑම පැකට්ටුවකටම ගැළපෙන, මූලාශ්ර හෝ ගමනාන්ත සීමාවක් නැති Masquerade නියමයක් ඔබ නොසැලී තබා ගැනීමට අදහස් කළ රථවාහනයද පරිවර්තනය කරයි, වෙනත් පෞද්ගලික ජාලවලට යන රථවාහන ඇතුළුව. නියමය සේවාදායක පරාසය, අදහස් කළ ගමනාන්තය සහ අතුරුමුහුණතට සීමා කරන්න.
ප්රතිපත්ති පාදක IPsec හි මෙය වැඩිපුරම හපයි. strongSwan හි ඉදිරියට යැවීමේ මාර්ගෝපදේශය IP ඉදිරියට යැවීම සක්රීය කිරීම සහ සේවාදායකයන් සඳහා මූලාශ්ර-NAT නියමයක් එකතු කිරීම පියවරෙන් පියවර පෙන්වයි, එම ලේඛනයම මුල් ලිපිනය රඳවා ගත යුතු රථවාහනය බැහැර කිරීමද ආවරණය කරයි. ආරක්ෂක ප්රතිපත්තිය එයට ගැළපෙන්නට පෙර මූලාශ්රය පරිවර්තනය කරන්න, එවිට උමග ඉහළට එන්නට පුළුවන් නමුත් රථවාහනය තවමත් වැටේ, මන්ද පැකට්ටුව තවදුරටත් සාකච්ඡා කළ තේරීම්කරු වගේ නොපෙනේ.
දුර කෙළවර දකින්නේ කුමක්ද යන්නද තීරණය කරන්න. පරිවර්තනයෙන් පසු සේවාවක් දකින්නේ ද්වාරයයි, තනි සේවාදායකයා නොවේ. එය ආපසු මාර්ගගත කිරීම සරල කරන අතර එමගින්ම ලොග පැතලි කර සේවාදායකයාට වෙන වෙනම අවසර ලැයිස්තු අවලංගු කරයි. සේවාදායක ලිපින සුරැකීම වැදගත් නම්, පරීක්ෂණයක් සමත් වීමට ඒවා සැඟවීම වෙනුවට මාර්ගගත ආපසු මාර්ගයක් සැලසුම් කරන්න.
Linux ද්වාරයක නියම කියවීම
10.8.0.0/24 හි සේවාදායකයන් සහ eth0 නම් WAN අතුරුමුහුණතක් ඇති දුරස්ථ ප්රවේශ ද්වාරයකට සක්රීය ඉදිරියට යැවීම සහ ප්රවාහයට අවසර දෙන පෙරනය ප්රතිපත්තියක් අවශ්යයි, එවිට කිසියම් NAT නියමයකට උදව් කළ හැක. iptables අනුවාදය දිශා දෙකම nat වගුවේ තබා ගනී:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 51820 \
-j DNAT --to-destination 10.8.0.2:51820
nftables ආකෘතිය එම කොකු දෙකම නම් කළ අතුරුමුහුණතක් සහ පැහැදිලි දාමයක් සමඟ භාවිතා කරයි:
nft add rule ip nat postrouting ip saddr 10.8.0.0/24 oifname "eth0" masquerade
nft add rule ip nat prerouting iifname "eth0" udp dport 51820 dnat to 10.8.0.2:51820
කොටස් දෙකම උපකල්පනය කරන්නේ පෙරනය දාමය ඉදිරියට යැවූ ප්රවාහය දැනටමත් පිළිගන්නා බවයි. NAT යනු අවසර නියමයක් නොවේ, නිවැරදිව පරිවර්තනය කළ පැකට්ටුවක් පවා එක් වගුවක් පසුව ඉවත දැමිය හැක. conntrack -L සමඟ සජීවී සිතියම තහවුරු කරන්න, nft list ruleset හෝ iptables-save -t nat සමඟ කුමක් පූරණය වී ඇත්ද යන්න තහවුරු කරන්න, පසුව ලිපිනය සැබවින්ම වෙනස් වන බව දැකීමට අතුරුමුහුණත් දෙකෙහිම ග්රහණය කරන්න.
නරක නියමයක් ලෙස පෙනෙන දෝෂ රටා
හෙයර්පින් රථවාහනය සම්භාව්ය වේ. සේවාදායකයේ පොදු ලිපිනය හරහා අභ්යන්තර සේවාදායකයට ළඟා වන අභ්යන්තර සේවාදායකයාට ඇතුළට යන මාර්ගයේ DNAT සහ ආපසු පිටතට යන මාර්ගයේ මූලාශ්ර පරිවර්තනයක් අවශ්යයි, නැත්නම් සේවාදායකය සෘජුවම සේවාදායකයාට පිළිතුරු දෙන අතර පිළිතුර ප්රතික්ෂේප වේ. විසඳුම එම අභ්යන්තර-සිට-පොදු අවස්ථාව සඳහා දෙවන, පටු නියමයකි, සියල්ලටම පුළුල් Masquerade නියමයක් නොවේ.
ද්විත්ව පරිවර්තනය නිහඬ එකයි. දැනටමත් ක්රියාකරු මට්ටමේ NAT පිටුපස සිටින සේවාදායකයෙක් ආපසු මාර්ගගත කළ නොහැකි ලිපිනයක් සමඟ ඔබේ ද්වාරයට එයි, එබැවින් නැවත පරිවර්තනය කරයි. එය ක්රියා කරයි, නමුත් ලොගවල දැන් පෞද්ගලික ලිපිනකරණයේ පිම්ම දෙකක් ඇති අතර ඕනෑම විමර්ශනයකට සිතියම් දෙකම අවශ්යයි. ප්රතිපත්ති පාදක IPsec තුන්වන විකෘතිය එකතු කරයි: ප්රතිපත්තිය ගැළපෙන්නට පෙර පරිවර්තනය කරන්න, එවිට රථවාහනය නොගොස්ම ඉහළට ආ SA එකක් ලැබේ, එය NAT එකේ නොව ගිනි පවුරේ දෝෂයක් ලෙස කියවේ.
ඉන්පසු සමත් වන පරීක්ෂණය සහ අසාර්ථක වන යෙදවීම ඇත. NAT විධානය අතින් ධාවනය කිරීම යාන්ත්රණය සනාථ කරයි, වින්යාසය නොවේ. ධාවන කාලයේදී එකතු කළ නියමයක් නැවත ආරම්භයේදී හෝ ඊළඟ අතුරුමුහුණත් සිදුවීමේදී අතුරුදහන් වේ, අංකය වෙනස් වන අතුරුමුහුණතකට බැඳුණු Masquerade නියමයක් දුර කෙළවර දකින ලිපිනය නිහඬව වෙනස් කළ හැක. නියමය එය හිමි ගිනි පවුරේ වින්යාසයට දමා නැවත සම්බන්ධ වූ පසු නැවත පරීක්ෂා කරන්න.
නියමය සුරැකීමට පෙර පිරික්සුම් ලැයිස්තුව
මුලින්ම දිශාව නම් කරන්න: මූලාශ්රය, ගමනාන්තය හෝ දෙකම. ඉන්පසු තත්ත්වය රඳවා ගත යුත්තේ කවුද යන්න තීරණය කරන්න — ද්වාරය, ඉහළ රවුටරය හෝ IPsec සහකරු — සහ පිළිතුරු මාර්ගය එය හරහා ආපසු එන බව තහවුරු කරන්න. නියමය ඔබ සැබවින්ම අදහස් කරන සේවාදායක පරාසය, ගමනාන්තය සහ අතුරුමුහුණතට සීමා කරන්න, දුර කෙළවර දකින්නේ ද්වාරය ද මුල් සේවාදායක ලිපිනය ද යන්න කලින්ම තීරණය කරන්න.
ද්වාරයෙන් නොව සේවාදායකයෙන් පරීක්ෂා කරන්න. ද්වාරයේම ඇති බ්රවුසරයකට සේවාදායක පරිවර්තන නියමය සම්පූර්ණයෙන්ම මග හැරිය හැක, එබැවින් එහි ක්රියා කරන පිටුවක් උමග ගැන කිසිවක් සනාථ නොකරයි. සේවාදායකයෙන් ආරම්භ වූ එක් ඉල්ලීමක් යවන්න, කවුන්ටර සහ conntrack වගුව නිරීක්ෂණය කරන්න, ඔබ සේවය කරන තැන ඉන් එකක් හෝ හැකි නම් උමග නැවත සම්බන්ධ වූ පසු සහ WAN ලිපිනය වෙනස් වූ පසු එය නැවත කරන්න.