සේවාවක් කැරියර්-ශ්‍රේණියේ NAT පිටුපස ලැප්ටොප් එකක තබන්න, එම ලැප්ටොප් එක VPN හරහා VPS එකකට යොමු කරන්න, එවිට පිටතින් කිසිවෙකුට එයට ළඟා විය නොහැක. ඔබ VPS එකේ ගමනාන්ත NAT රීතියක් එකතු කර නිහඬතාවටත් වඩා නරක දෙයක් ලබා ගනී: සම්බන්ධතා විවෘත වී පසුව නතර වේ. පිළිතුර අතුරුදහන් වී නැත, එය ක්ලයන්ට්ගේම පෙරනිමි මාර්ගයෙන් පිටවෙමින් පවතී, එනම් සර්වරය එය කිසිදා නොදකී. මෙම පරීක්ෂණ පහ අනුපිළිවෙලින් කර පළමුව අසමත් වන තැන නවතින්න.

සර්වරය කිසිසේත් ඉදිරියට යවනවාදැයි තහවුරු කරන්න

එක් පරිවර්තනයක්වත් ලිවීමට පෙර මෙම කොටුව සලකුණු කරන්න. කර්නලය ඉදිරියට යැවීම ප්‍රතික්ෂේප කරන පැකට් එකක් සඳහා DNAT රීතිය රීති විග්‍රහකය පිළිගෙන පසුව ඉදිරියට යැවීමේ මාර්ගය එය ඉවත් කරයි, එය ෆයර්වෝල් ගැටලුවක් මෙන් පෙනෙන කාල ඉකුත්වීමක් ඇති කරයි.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1

එය ක්‍රියාත්මක වන කර්නලයක සැකසීම නැවත ආරම්භ කිරීම හරහා සැකසීමට සමාන නොවේ. net.ipv4.ip_forward=1 /etc/sysctl.d/ යටතේ ඇති ගොනුවක ලියන්න, sysctl --system ක්‍රියාත්මක කරන්න, පසුව ගොනුව ගෙන ගත් බව විශ්වාස කිරීම වෙනුවට අගය නැවත කියවන්න. තමන්ගේම ජාල නාම අවකාශය කළමනාකරණය කරන කන්ටේනරයකට එම අවකාශය තුළම එම අගය අවශ්‍ය වේ, හොස්ටයේ පමණක් නොවේ.

නැවත කියවීම තවමත් ශුන්‍ය නම්, මෙතැන නවතින්න. පහළ කිසිවක් ක්‍රියා නොකරනු ඇත.

කිසිදු රීතියක් එයට යොමු වීමට පෙර ටනල් ලිපිනය ස්ථාවර කරන්න

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

client-config-dir /etc/openvpn/ccd
ifconfig-push 10.77.0.14 10.77.0.13

එම යුගලය ලක්ෂ්‍යයෙන් ලක්ෂ්‍යයට ටනලයේ ක්ලයන්ට් කෙළවර සහ සගයාගේ කෙළවර වන අතර, සර්වරය සහතිකයේ පොදු නාමයට යතුරු කර ඇත. උපජාල ටොපොලොජියේදී දෙවන අගය ඒ වෙනුවට ජාල ආවරණයක් ලෙස කියවයි, එබැවින් භාවිතා කරන ටොපොලොජියට ගැළපෙන ආකාරය ලියන්න. පසුව ක්ලයන්ට් නැවත සම්බන්ධ කර ලිපිනය ක්ලයන්ට් මතම කියවන්න, මන්ද පූලය පිළිබඳ සර්වරයේ දැක්ම ක්ලයන්ට් වින්‍යාස කළ දේ සනාථ නොකරයි.

නැවත සම්බන්ධ කිරීමෙන් පසු ලිපිනය වෙනස් වේ නම්, නවතින්න. චලනය වන ඉලක්කයක් අනුගමනය කරන NAT රීතියක් කලින් කල විවේකයෙන් අසමත් වන අතර ඔබට කිසිවක් උගන්වන්නේ නැත.

දෙපැත්තටම පරිවර්තනය කරන්න

ගමනාන්ත පරිවර්තනය ඇතුළට එන පැකට් එක ක්ලයන්ට් වෙත යවයි. මූලාශ්‍ර පරිවර්තනය තමයි ක්ලයන්ට් මුල් යවන්නාට නොව සර්වරයට පිළිතුරු දීමට සලස්වන්නේ, එය මිනිසුන් අතින් මඟ හරින රීතියයි.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 29443 -j DNAT --to-destination 10.77.0.14:29443
iptables -t nat -A POSTROUTING -d 10.77.0.14 -p tcp --dport 29443 -j SNAT --to-source 10.77.0.13

දෙවන රීතිය නොමැතිව ක්ලයන්ට් තම ISP ඉහළ සම්බන්ධතාවය හරහා පිළිතුරු දෙයි, එබැවින් දුරස්ථ සගයා කිසිදා කතා නොකළ මූලාශ්‍ර ලිපිනයක් දකින අතර සර්වරය පිළිතුර සඳහා කිසිදු ලුහුබැඳීම් සටහනක් නොතබයි. පිටත නිරීක්ෂකයා අර්ධ වශයෙන් සම්පූර්ණ වන හස්ත සම්පර්කයක් දකින අතර, එය නොමැති ෆයර්වෝල් දෝෂයක් සොයා යාමට මිනිසුන් යවන ලක්ෂණයයි.

iptables -t nat -S සමඟ රීති දෙකම නැවත කියවා අතුරුමුහුණතේ නම පොදු ලිපිනය දරන එකම දැයි තහවුරු කරන්න. දැනටමත් nftables සමඟ පෙරහන කරන හොස්ටයක, මෙවලම් මිශ්‍ර කිරීම වෙනුවට ගැළපෙන ලිපින පවුලේ nftables NAT දාමයේ පරිවර්තනය ලියන්න.

පෙරහන් වගුවට යාමට ඉඩ දෙන්න

NAT වගු ශීර්ෂ ප්‍රතිලේඛනය කරයි; ඒවා අවසර නොදේ. පෙරනිමි DROP ප්‍රතිපත්තියක් සමඟ ඉදිරියට යවන ප්‍රවාහයට තමන්ගේම පිළිගැනීමක් අවශ්‍ය වන අතර, ආපසු දිශාව බොහෝ ප්‍රතිපත්ති දැනටමත් established,related රීතියකින් ආවරණය කරයි.

iptables -A FORWARD -i eth0 -o tun0 -p tcp --dport 29443 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

කිසිවක් එකතු කිරීමට පෙර FORWARD දාමයේ ප්‍රතිපත්තිය පරීක්ෂා කරන්න, මන්ද මුල් DROP එකක අනුපිළිවෙල ඔබේ රීතිය කිසිදා සලකා බලනවාදැයි තීරණය කරයි. පෙරහන nftables තුළ ජීවත් වන හොස්ටයක, inet වගුවේ forward කොක්කට සමාන රීතිය එකතු කර මූලික දාමය ස්ථානීය ආදානය පමණක් නොව සැබවින්ම ඉදිරියට යවන රියදුරු දකින බව තහවුරු කරන්න. නව රීතියේ පැකට් ගණන ශුන්‍යව පවතින අතර NAT ගණන වැඩි වේ නම්, පැකට් ඔබේ රීතියට පෙර ඉවත් කරනු ලැබේ. එය දාම අනුපිළිවෙල කියවීමේ සංඥාවයි, එම රීතියේ දෙවන පිටපතක් එකතු කිරීමේ සංඥාව නොවේ.

එය බාහිර ජාලයකින් ඔප්පු කරන්න

සම්බන්ධ නොවන ජාලයකින් පරීක්ෂා කරන්න. එකම LAN හි තවත් යන්ත්‍රයකින් කරන පරීක්ෂාවක් hairpin NAT ආධාරය හරහා යා හැකි අතර දුරස්ථ ක්ලයන්ට් භාවිතා කරන මාර්ගය කිසිදා පුහුණු නොකරයි, එබැවින් එහි හරිත ප්‍රතිඵලය වැරදි දෙයක් ඔප්පු කරයි.

tcpdump -ni any port 29443
conntrack -L | grep 29443

සර්වරයේ සහ ක්ලයන්ට්හි එකම වේලාවක ග්‍රහණය ධාවනය කරන්න. සර්වරයේ ග්‍රහණය පරිවර්තිත පැකට් ටනලය දෙසට පිටවේදැයි පෙන්වයි; ක්ලයන්ට්ගේ ග්‍රහණය ඉල්ලීම පැමිණේද සහ පිළිතුර ලිපිනගත වන්නේ කොහේදැයි පෙන්වයි. conntrack -L හි පරිවර්තන සටහනක් රීතිය ගැළපුණු බව ඔප්පු කරයි, එය නොමැති වීම පැකට් කිසිදා NAT දාමයට ළඟා නොවූ බව ඔප්පු කරයි.

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

අදාළ ලිපි