සෑම VPN සේවාලාභී තටාකයක් සඳහා එක් ගමනාන්ත පරාසයක් අවහිර කරන්න
එක් nftables නියමයකට ගේට්වේහිම රහස්ය ගමනාන්ත පෙරනිමියක් ප්රතික්ෂේප කළ හැක. හුක් සහ ස්ථානය ගැලපීම කරන්න.
එක් නියමයකට අනුමත VPN තටාකයක් ගමනාන්ත පරාසයකින් ඈත් කර තැබිය හැක, ගේට්වේ කරන වෙනත් කිසිවකට බාධා නොකර. නියමයම කෙටිය; එය ක්රියා කරන්නේද යන්න තීරණය කරන කොටස් වන්නේ එය ජීවත් වන හුක් සහ දාමයේ එහි ස්ථානයයි. මේ දෙක වැරදුණොත් නිවැරදි ලෙස පෙනෙන නමුත් අසමගි ලෙස හැසිරෙන ෆයර්වෝලයක් ලැබේ. නියමය පැකට්ටුව දකින විට පැකට්ටුව කරන්නේ කුමක්ද යන්නෙන් ආරම්භ කරන්න.
නියමය ඇත්තටම ගැලපෙන්නේ කුමකටද
නියමය එකවර කරුණු තුනකට ගැලපේ: ආදාන අතුරුමුහුණත, මූල පෙරනිමිය සහ ගමනාන්ත පෙරනිමිය. ඩ්රොප් යෙදීමට පෙර තුනම සත්ය විය යුතු අතර එයම එය පටු කර තබයි. එය නීති තුනක් ලෙස කියවනවාට වඩා එක් ප්රකාශයක් ලෙස කියවීම පහසුය.
අතුරුමුහුණත ගැලපීම යනු යොමු කරන ලද සේවාලාභී රහස්ය ගමනාන්ත ගේට්වේහිම සම්බන්ධතා වලින් වෙන් කරන දෙයයි. එය නොමැතිව, මූල තටාකය පමණක් නම් කරන නියමයක් ගේට්වේ එම ලිපිනයෙන්ම නිපදවන පැකට්ටු වලටද බලපානු ඇත, එය කවදා හෝ සිදුවුවහොත්. මූල පෙරනිමිය ප්රතිපත්තිය අනුමත සේවාලාභීන්ට සීමා කරයි, ගමනාන්ත පෙරනිමිය එය එක් පරාසයකට සීමා කරයි. නියමය ලැයිස්තුවක් ලෙස නොව ඡේදනයක් ලෙස කියවන්න.
කිසිවක් සංස්කරණය කිරීමට පෙර අගයන් තුනක් ලියන්න: ටනල් අතුරුමුහුණතේ නම, සේවාදායකය බෙදාහරින තටාකය, සහ ඔබ ප්රතික්ෂේප කිරීමට අදහස් කරන පෙරනිමිය. ඒවායින් එකකවත් ටයිපෝ දෝෂයක් සිටී නම් පිරිසිදුව විග්රහ වන නමුත් කිසිවක් ආරක්ෂා නොකරන නියමයක් ලැබේ. එම අගයන් තුන නියමය අසල වෙනස්කම් වාර්තාවේ තබා ගන්න.
හුක් නියමය කාට අදාළද යන්න තීරණය කරයි
netfilter දාමයක් හුක් එකකට සම්බන්ධ වේ, සහ දාමය කුමන පැකට්ටු දකින්නේද යන්න තීරණය කරන්නේ හුක් ය. forward හුක් ගේට්වේ හරහා මාර්ගගත වන රහස්ය දකියි, එය සේවාලාභියාගෙන් ගමනාන්තයට රහස්යම වේ. දාමයේ අනෙක් සියල්ල වෙනත් ප්රේක්ෂකයන් දෙසට යොමු වී ඇත.
input හුක් ගේට්වේ වෙතම ලිපිනගත රහස්ය දකියි, එබැවින් එහි තබන නියමයක් සංක්රමණය නොව එහිම සේවා වෙත ප්රවේශය පාලනය කරයි. output හුක් ගේට්වේ විසින්ම නිපදවන රහස්ය දකියි, එය සේවාලාභී තටාක ප්රතිපත්තියට අවශ්ය දෙයට විරුද්ධයි. දාම නාම රීති කට්ටලය ලියූ තැනැත්තා තෝරාගත් අත්තනෝමතික ලේබල වේ, එබැවින් නාමයෙන් හුක් අනුමාන නොකරන්න. දාමය සම්බන්ධ වී ඇත්තේ කොහේදැයි පරීක්ෂා කර, පසුව එය කුමකට ගැලපිය හැකිදැයි අනුමාන කරන්න.
| Hook | Traffic it sees | Right for this policy |
|---|---|---|
| input | Addressed to the gateway | No, that is the host's own services |
| forward | Routed through the gateway | Yes, for client-to-destination traffic |
| output | Generated by the gateway | No, that is the opposite direction |
සම්බන්ධතාව කියවීම එක් පේළියක පරීක්ෂාවක් වන අතර, පැකට්ටුව කිසිදා නොදකින දාමයකට නියමය වැටීම වළක්වයි.
පුළුල් accept ට පෙර නියමය තබන්න
නීති අනුපිළිවෙලින් ඇගයේ, පළමු තීන්දුව ජය ගනී. දාමයේ මුලින් ඇති පුළුල් accept එකක් තමා ගැලපෙන පැකට්ටු සඳහා ඇගයීම අවසන් කරයි, එබැවින් පසුව එකතු කරන ඩ්රොප් ඒවා සඳහා කිසිදා ක්රියාත්මක නොවේ. එම අනුපිළිවෙල නීතියම නිවැරදි ලෙස පෙනෙන නියමයකට බලපෑමක් නොමැති වීමට පූර්ණ හේතුවයි.
නියමය අවසානයේ එකතු කරනවා වෙනුවට accept ට පෙර ඇතුළු කරන්න. දාමයේ ටනල් අතුරුමුහුණත සඳහා දැනටමත් සාමාන්ය accept එකක් තිබේ නම්, නව නියමය ඊට පෙර විය යුතුය, නැතහොත් එය අලංකරණයක් පමණි. ඔබ සංස්කරණය කළ ගොනුව නොව, ලැබෙන අනුපිළිවෙල පරීක්ෂා කරන්න, මන්ද ගොනු කිහිපයකින් එකලස් කළ රීති කට්ටලයක් ඒ කිසිවකට නොගැලපිය හැක. පසුව තටාකයෙන් ගත් පරීක්ෂණ පැකට්ටුවකින් තහවුරු කරන්න.
sudo nft list chain inet filter forward
sudo nft insert rule inet filter forward iifname "tun0" ip saddr 10.90.0.0/24 ip daddr 198.51.100.0/24 drop
sudo nft -c -f /etc/nftables.conf
තුන්වන විධානය ගොනුව යෙදීමකින් තොරව විග්රහ කරයි, එය ව්යාකරණ දෝෂ බාධාවක් වීමට පෙර අල්ලා ගනී. පසුගමන යෝජනා ක්රමයක් සමඟ යොදන්න, මන්ද forward දාමයේ වැරදි නියමයක් ඔබ වැඩ කරන ටනලය කපා දැමිය හැක.
දැනටමත් ඇති ප්රවාහ ඔබේ නව නියමය ගණන් නොගනී
නියමය පැවතීමට පෙර සාදන ලද conntrack සටහනක් කලින් accept එකට ගැලපෙමින් පවතී. එබැවින් නව ඩ්රොප් එකක් සමහර විට නව සම්බන්ධතා සඳහා ක්රියා කරන බවත් පරීක්ෂා කරන එකට කිසිවක් නොකරන බවත් පෙනේ.
දාමයේ මුදුනේ ඇති තත්ත්ව ගැලපීම කියවන්න. එය ඔබේ නියමයට පෙර established සහ related රහස්ය පිළිගන්නවා නම්, දැනටමත් ගලා යන සෑම ප්රවාහයක්ම වැසෙන තෙක් ගලා යයි. හදිසි නියමයකට සාමාන්යයෙන් අවශ්ය වන්නේ එම හැසිරීමයි, සහ ක්ෂණික කැපීමක් අපේක්ෂා කරන විට එය ව්යාකූල කරයි. යෙදවීමට පෙර අවශ්ය බලපෑම තීරණය කරන්න. විවෘත සම්බන්ධතාවක් නැවත භාවිත කරන පරීක්ෂණයක් ඔබට වැරදි කතාවක් කියයි.
sudo conntrack -L -s 10.90.0.14 -d 198.51.100.20
sudo nft list ruleset | grep -n -A3 'ct state'
පළමු විධානය ප්රවාහයක් තිබේදැයි පෙන්වයි, දෙවැන්න මුල් කාලීන තත්ත්ව නියමය එය පිළිගනිමින් සිටීදැයි පෙන්වයි. දෙකම කියවීමට පමණක් වන අතර සිදුවීමක් අතරතුර ධාවනය කිරීම ආරක්ෂිතය.
මෙම නියමය කුමක් නොවේද
නියමය වසම් කළු ලැයිස්තුවක්, IPv6 ප්රතිපත්තියක් හෝ තනි යෙදුම් ගිණුමක් මත සීමාවක් නොවේ.
එක් එක් ඒවාට තමන්ගේම ක්රියාකාරී ක්රමයක් අවශ්යයි. වසම් අවහිර කිරීම නාම විසඳිය යුතුය, එය පැකට්ටු පෙරහන නොකරයි. IPv6 රහස්යට තමන්ගේම ගැලපීමක් අවශ්යයි, මන්ද ip ප්රකාශය ip6 පැකට්ටු ගැන කිසිවක් නොකියයි. යෙදුම් මට්ටමේ සීමාව පෙරනිමි ගැලපීමට නොව, සේවාවට හෝ සත්යාපිත ප්රොක්සියට අයත් වේ. එම අවශ්යතා වෙන් කර තැබීමම එක් පටු නියමයකට කාර්යයන් හතරක් ඉල්ලීම වළක්වයි.
මෙම නියමය දෙන ගිවිසුම නිශ්චිතයි: අනුමත තටාකයක සිට එක් ගමනාන්ත පෙරනිමියකට රහස්ය ප්රතික්ෂේප වේ, අසම්බන්ධිත ගේට්වේ රහස්ය එහි වර්තමාන ප්රතිපත්තිය රඳවා ගනී. එම වාක්යය නියමය අසල ලියන්න, ඊළඟ පුද්ගලයා එය කුමක් සඳහාදැයි දැන ගනීවි.