කෙනෙක් බ්‍රවුසරය උමං මාර්ගය භාවිත කරන ලෙස ඉල්ලා සිටින අතර, පිළිතුර ගමනාන්ත පෝට් 80 සහ 443 සමඟ ගැලපෙන ෆයර්වෝල් නීතියක් ලෙස ආපසු එයි. එය නිවැරදි බව පෙනේ, නමුත් නොවේ. පෝට් ගැලපීම පැකට් තෝරන්නේ ඒවායේ ප්‍රවාහන ශීර්ෂය අනුව මිස කුමන වැඩසටහන සොකට් විවෘත කළාද යන්න අනුව නොවේ, සහ නවීන බ්‍රවුසින් TCP හි එම පෝට් දෙකට සීමා නොවේ. නීතිය ඔබට ඇතුළත් කිරීමට අවශ්‍ය වූ යම් රථවාහනයක් අතපසු කරන අතර ඔබ කිසිදා ස්පර්ශ කිරීමට අදහස් නොකළ රථවාහනයක් අල්ලා ගනී. එය ලිවීමට පෙර, වෙනස් සීමා තුනකින් ඔබට ඇත්තටම අවශ්‍ය කුමක්දැයි තීරණය කරන්න.

නීතිය විස්තර කරන්නේ ප්‍රවාහන පන්තියක්, යෙදුමක් නොවේ

Linux හි, ගමනාන්ත-පෝට් ගැලපීම TCP ශීර්ෂය පරීක්ෂා කරන අතර එයට ඉහළින් කිසිවක් නොවේ. එම පැකට් සලකුණු කර ප්‍රතිපත්ති මාර්ගයකින් යොමු කිරීම ලේඛනගත පරිදිම ක්‍රියා කරයි, සහ එම යන්ත්‍රවලින් කිසිවක් පේලෝඩයේ අර්ථය හෝ එය යැවූ ක්‍රියාවලිය නොදනී. සලකුණ යනු පැකට්ටුවකට අමුණා ඇති අංකයකි, යෙදුමකට අමුණා ඇති අනන්‍යතාවක් නොවේ.

nft add rule inet mangle output tcp dport { 80, 443 } meta mark set 0x1
ip rule add fwmark 0x1 table 100
ip route add default dev wg0 table 100

වහාම ප්‍රතිවිපාක දෙකක් එයි. TCP 443 සමඟ සම්බන්ධ වන මෘදුකාංග යාවත්කාලීන කරන්නාට බ්‍රවුසරයට මෙන්ම එකම සැලකිල්ල ලැබේ, එය හොඳ විය හැකිය, නැතහොත් ඊළඟ යාවත්කාලීන චක්‍රය එනතෙක් රැඳී සිටින බාධාවක් විය හැකිය. තවද අනෙක් පෝට් එකක, කියන්න 8443, හිතාමතා ප්‍රකාශයට පත් කළ වෙබ් සේවාවක් නීතියෙන් සම්පූර්ණයෙන්ම පිටතට වැටේ, නමුත් එය තවමත් පරිශීලකයාට වැදගත් වූ වෙබ් රථවාහනයයි.

අවශ්‍යතාව ඇත්තටම එම පෝට් ගැන නම් සංඛ්‍යා නීත්‍යානුකූල තේරීම්කරුවන් වේ. ටිකට්පතේ «බ්‍රවුසරය» ලෙස ලියා නීති කට්ටලයේ පෝට් පරාසයක් ක්‍රියාත්මක කරන විට ඒවා ප්‍රබන්ධයක් බවට පත්වේ. මෙම පරතරය ලේඛනකරණ සියුම්කමක් නොවේ. එය සමාලෝචනයකදී ඔබට ආරක්ෂා කළ හැකි නීතියක් සහ කිසිවෙකුට පරීක්ෂා කළ නොහැකි නීතියක් අතර වෙනසයි.

HTTP/3 ඔබේ TCP නීතිය නිහඬව හැර යයි

HTTP/3 QUIC මත ක්‍රියා කරන අතර, QUIC UDP හි ගෙන යනු ලැබේ. TCP සමඟ පමණක් ගැලපෙන නීතියකට එය දැකිය නොහැක, එබැවින් ඔබේ පරීක්ෂණ පිටුව සමත් වන එම බ්‍රවුසරයටම පසුව ඉල්ලීමක් UDP හරහා යවා, කිසිවෙකු සැකසුමක් නොවෙනස් කරමින් උමං මාර්ගය මගහැරිය හැක. RFC 9114 HTTP/3 QUIC පාදක ප්‍රොටෝකෝලයක් ලෙස විස්තර කරන අතර, සාමාන්‍ය යෙදවීමේදී QUIC පෙරනිමි පෝට් 443 සහිත UDP භාවිත කරයි.

යම් බ්‍රවුසරයක් HTTP/3 උත්සාහ කරයිද යන්න එහි වින්‍යාසය, අඩවිය සහ පෙර උත්සාහයක් සාර්ථක වූවාද යන්න මත රඳා පවතී. එබැවින් මතකයෙන් ඒ ගැන තර්ක කිරීම අපහසුය. ඒ වෙනුවට මෙවලමෙන් අසන්න:

curl --http3 -sS -o /dev/null -w '%{http_version} %{time_total}\n' https://example.com
ss -tunp | grep -E ':443\b'

curl පේළිය සාකච්ඡා කළ අනුවාදය මුද්‍රණය කරයි, එබැවින් 3 මගින් UDP මාර්ගය භාවිත කළ බව තහවුරු කරයි. පසුව සොකට් ලැයිස්තුව පෙන්වන්නේ එම සම්බන්ධතාව උමං මාර්ගයේ අතුරුමුහුණතට බැඳී ඇත්ද නැතහොත් භෞතික එකටද යන්නයි. ඔබේ curl ගොඩනැගීමේ HTTP/3 නොමැති නම්, ධජය නිහඬව පසුගාමී නොවී ශබ්දයෙන් අසාර්ථක වේ, එය එහිම කුඩා කරුණාවයි.

DNS යනු ඔබ ගත යුතු වෙනම තීරණයකි

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

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

පසුව පිටුවෙන් නොව විසඳන්නාගෙන් තහවුරු කරන්න:

resolvectl query intranet.example.internal
resolvectl status | grep -A3 'Current DNS Server'

පිළිතුරක් නොලැබීම යනු විභේදන ගැටලුවකි, බ්‍රවුසරයේ දෝෂ පණිවිඩය ජාලයට දොස් පවරන විට පවා. මෙම අසාර්ථකත්ව දෙක පරිශීලකයාට එකම ලෙස පෙනෙන අතර සම්පූර්ණයෙන්ම වෙනස් ටිකට්පත් වේ.

එක් සීමා තුනක්, වෙනස් ක්‍රම තුනක්

ඔබට අවශ්‍ය සීමාව නම් කළ වහාම බොහෝ ව්‍යාකූලත්වය අතුරුදහන් වේ. ඒවා එකිනෙකට හුවමාරු කළ නොහැකි අතර, උමං මාර්ගය කැඩී යන විට එක් එක් එකට වෙනස් අසාර්ථක ක්‍රමයක් ඇත.

What you actually wantMechanism that fitsWhat it does not cover
These transport ports use this exitFirewall mark plus policy routeApplications, HTTP/3 over UDP, DNS
This browsing session stays separateApplication-aware VPN, or a separate network namespace plus a proxyOther applications in the same session
Only these private sites are reachableDestination-based routes with private DNSPublic sites on the same address family

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

කුමන පේළියක් වුවද අදාළ වන්නේ, උමං මාර්ගය වැටෙන විට කුමක් සිදු විය යුතුද යන්න ලියන්න. අතුරුමුහුණත සමඟ අතුරුදහන් වන සලකුණු පාදක මාර්ගය සාමාන්‍යයෙන් භෞතික පෙරනිමි මාර්ගයට ආපසු වැටේ, එය fail-open හැසිරීමකි. එය බ්‍රවුසින් සඳහා පිළිගත හැකි විය හැකි අතර අනෙක් සියල්ලට පිළිගත නොහැකි විය හැක, සහ එය තීරණයක් මිස ක්‍රියාත්මක කිරීමේ විස්තරයක් නොවේ.

ඔබ ආවරණය කරන බව කියන ප්‍රවාහ පරීක්ෂා කරන්න

පිළිගැනීමේ පරීක්ෂණය ඔබ ලිවූ සීමාව අනුගමනය කළ යුතු අතර, පහසු වූ පෝට් අංක නොවේ. උමං මාර්ගය හරහා යා යුතු එක් ප්‍රවාහයක්, නොයා යුතු තවත් එකක්, සහ ඔබ නොසිතූ ප්‍රවාහනයක් භාවිත කරන තවත් එකක් තෝරන්න:

ip route get 203.0.113.40
curl -sS -o /dev/null -w 'v4 %{http_version} %{remote_ip}\n' https://example.com
nft list ruleset | grep -A2 'dport'

මාර්ග සෙවීම ගමනාන්තයක් ඇත්තටම කුමන අතුරුමුහුණත භාවිත කරන්නේද යන්න කියයි, සහ එය බොහෝ වාර්තා වැරදි ලෙස දක්වන කරුණයි. curl පේළිය සාකච්ඡා කළ අනුවාදය සහ ලිපින පවුල තහවුරු කරයි. නීති කට්ටලයේ විග්‍රහය පරීක්ෂණයේදී එකතු කර සීමා කිරීමට අමතක වූ නීතිය අල්ලා ගනී, එලෙසම තාවකාලික සලකුණක් ස්ථිර fail-open රවුටින් බවට පත්වේ.

ප්‍රතිදාන තුනම කාල මුද්‍රාවක් සමඟ සටහන් කර වෙනස සමඟ තබා ගන්න. පසුව කෙනෙක් «VPN අභ්‍යන්තර ජාලය කැඩුවා» යැයි වාර්තා කළ විට, අභිප්‍රේත සහ ක්‍රියාත්මක කළ සීමා අතර වෙනස එම වාර්තාවේ පෙනෙනු ඇත, සහ නිවැරදි කිරීම විවාදයක් නොව නීති වෙනස්කමක් වනු ඇත.

අදාළ ලිපි