یو څوک غواړي چې براوزر تونل وکاروي، او ځواب د اورګاډي دېوال د قاعدې په ډول راګرځي چې د منزل پورټونو 80 او 443 سره سمون خوري۔ دا دقیق ښکاري او دقیق نه دی۔ د پورټ سره سمون پاکټونه د هغوی د لېږد سرلیک له مخې غوره کوي، نه د دې له مخې چې کوم پروګرام سوکیټ پرانیست، او عصري براوزنګ په TCP کې په هماغه دوو پورټونو محدود نه دی۔ قاعده به ستاسو د شاملولو هغه ټرافیک له لاسه ورکړي او هغه ټرافیک به ونیسي چې هیڅکله یې د لمس کولو اراده نه وه۔ له لیکلو مخکې پرېکړه وکړئ چې له درېیو بېلابېلو حدونو کوم یو واقعاً غواړئ۔

قاعده د لېږد ټولګه بیانوي، نه یو اپلیکیشن

په Linux کې، د منزل-پورټ سمون د TCP سرلیک کتنه کوي او له هغې پورته هېڅ نه۔ د هغو پاکټونو نښه کول او د پالیسۍ لارې له مخې یې لېږل په بشپړه توګه لکه څنګه چې مستند شوي کار کوي، او د دې چارو هېڅ یوه نه پوهېږي چې payload څه معنا لري یا کوم پروسه هغه لېږلې ده۔ نښه هغه شمېره ده چې پاکټ ته نښلول شوې، نه هغه هویت چې اپلیکیشن ته نښلول شوی۔

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 انټرانیټ مات کړ»، د پام وړ او پلي شوي حد ترمنځ توپیر به په هماغه ریکارډ کې ښکاره وي، او سمون به د قاعدې بدلون وي، نه جنجال۔

اړوندې مقالې