Nid yw rheolau porth 80 a 443 yn anfon y porwr trwy VPN
Mae paru porth yn dewis ffrydiau TCP, nid porwr. Mae HTTP/3 yn rhedeg ar UDP, gall DNS fynd ar hyd llwybr arall, ac mae diweddarwr yn paru'r un rheol a ysgrifennwyd gennych.
Mae rhywun yn gofyn i'r porwr ddefnyddio'r twnnel, ac mae'r cais yn dod yn ôl fel rheol wal dan sy'n paru porthladdoedd cyrchfan 80 a 443. Mae'n edrych yn fanwl ac nid yw. Mae paru porth yn dewis pecynnau yn ôl eu pennawd cludiant, nid yn ôl pa raglen a agorodd y soced, ac nid yw pori modern yn cyfyngu ei hun i'r ddau borth hynny ar TCP. Bydd y rheol yn colli rhywfaint o draffig yr oeddech am ei gynnwys ac yn dal traffig na fwriedid i chi ei gyffwrdd. Cyn ei hysgrifennu, penderfynwch pa un o'r tair ffin wahanol rydych ei eisiau mewn gwirionedd.
Mae'r rheol yn disgrifio dosbarth cludiant, nid rhaglen
Ar Linux, mae paru porth cyrchfan yn archwilio pennawd TCP a dim byd uwch ei ben. Mae marcio'r pecynnau hynny a'u llywio â llwybr polisi yn gweithio'n union fel y'i dogfennwyd, ac nid oes yr un o'r peiriannau hynny'n gwybod beth mae'r llwyth yn ei olygu na pha broses a'i hanfonodd. Rhif yw'r marc a atodwyd wrth becyn, nid hunaniaeth a atodwyd wrth raglen.
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
Mae dwy ganlyniad yn dilyn ar unwaith. Mae diweddarwr meddalwedd sy'n cysylltu â TCP 443 yn cael yr un driniaeth â'r porwr, a allai fod yn iawn neu a allai fod yn ddiffyg sy'n aros am y cylch diweddaru nesaf. Ac mae gwasanaeth gwe a gyhoeddwyd yn fwriadol ar borth arall, dyweder 8443, yn syrthio y tu allan i'r rheol yn gyfan gwbl er mai dyna o hyd y traffig gwe y gofalodd y defnyddiwr amdano.
Mae'r rhifau'n ddetholwyr dilys pan fo'r gofyniad mewn gwirionedd yn ymwneud â'r porthladdoedd hynny. Maent yn troi'n ffuglen pan ysgrifennir „porwr“ yn y tocyn ac y gweithredir amrediad porth yn y set rheolau. Nid mireinder dogfennaeth yw'r bwlch. Dyma'r gwahaniaeth rhwng rheol y gallwch ei hamddiffyn mewn adolygiad ac un na all neb ei phrofi.
Mae HTTP/3 yn gadael eich rheol TCP yn dawel
Mae HTTP/3 yn rhedeg dros QUIC, ac mae QUIC yn cael ei gludo yn UDP. Ni all rheol sy'n paru TCP yn unig ei gweld, felly gall yr un porwr sy'n bodloni eich tudalen brawf anfon cais diweddarach dros UDP a mynd heibio'r twnnel heb i neb newid gosodiad. Mae RFC 9114 yn disgrifio HTTP/3 fel protocol sy'n seiliedig ar QUIC, ac mae QUIC yn defnyddio UDP gyda phorth rhagosodedig 443 yn y defnyddiad arferol.
Mae a yw porwr penodol yn ceisio HTTP/3 yn dibynnu ar ei ffurfweddiad, ar y safle, ac ar a lwyddodd cais blaenorol. Mae hynny'n ei wneud yn beth gwael i resymu amdano o'r cof. Gofynnwch i'r offeryn yn lle hynny:
curl --http3 -sS -o /dev/null -w '%{http_version} %{time_total}\n' https://example.com
ss -tunp | grep -E ':443\b'
Mae llinell curl yn argraffu'r fersiwn a drafodwyd, felly mae 3 yn cadarnhau bod y llwybr UDP wedi'i ddefnyddio. Yna mae'r rhestr socedi'n dangos a yw'r cysylltiad hwnnw wedi'i rwymo i ryngwyneb y twnnel neu i'r un ffisegol. Os nad yw HTTP/3 ar gael yn eich adeiladwaith curl, mae'r faner yn methu'n uchel yn lle cilio'n dawel, sy'n drugaredd fach iddi'i hun.
Mae DNS yn benderfyniad ar wahân y mae'n rhaid i chi ei wneud
Nid yw rheol porth ar gyfer traffig gwe yn dweud dim am ddatrys enwau. Gall y porwr ddefnyddio'r datryswr system, datryswr a ffurfweddwyd y tu mewn i'r porwr, neu un a wthiwyd gan beth bynnag a gysylltodd ddiwethaf. Gall pob un ohonynt anfon ymholiadau ar hyd llwybr gwahanol i'r un y mae eich rheol yn ei ddewis, sy'n cynhyrchu'r hollt glasurol: mae'r dudalen yn llwytho, mae'r enw'n cael ei ddatrys yn rhywle na wnaethoch ei ddisgwyl, ac mae'r safle mewnol yn datrys i gyfeiriad cyhoeddus neu ddim o gwbl.
Penderfynwch yn benodol. Os rhaid i enwau mewnol ddatrys trwy'r twnnel, rhaid i'r datryswr fod y tu mewn iddo, a rhaid i'r set rheolau ganiatáu DNS i'r datryswr hwnnw tra'n cadw ymholiadau eraill allan. Os yw'r porwr yn defnyddio DNS over HTTPS i ddarparwr cyhoeddus, mae'r ymholiad yn osgoi eich datryswr yn gyfan gwbl ac ni all y rheol porth helpu. Ysgrifennwch y dewis yn yr un cofnod newid a'r rheol lwybro, oherwydd mae'r ddau yn cael eu darllen gyda'i gilydd gan bwy bynnag sy'n dadfygio'r methiant nesaf.
Yna gwiriwch gyda'r datryswr yn hytrach na chyda'r dudalen:
resolvectl query intranet.example.internal
resolvectl status | grep -A3 'Current DNS Server'
Mae ateb ar goll yn broblem datrys hyd yn oed pan fo neges gwall y porwr yn beio'r rhwydwaith. Mae'r ddau fethiant hyn yn edrych yn union yr un fath i ddefnyddiwr ac yn docynnau hollol wahanol.
Tri ffin, tri mecanwaith gwahanol
Mae'r rhan fwyaf o'r dryswch yn diflannu unwaith y byddwch yn enwi'r ffin rydych ei heisiau. Nid ydynt yn gyfnewidiol, ac mae gan bob un fodd methu gwahanol yn ystod diffyg twnnel.
| What you actually want | Mechanism that fits | What it does not cover |
|---|---|---|
| These transport ports use this exit | Firewall mark plus policy route | Applications, HTTP/3 over UDP, DNS |
| This browsing session stays separate | Application-aware VPN, or a separate network namespace plus a proxy | Other applications in the same session |
| Only these private sites are reachable | Destination-based routes with private DNS | Public sites on the same address family |
Proffil porwr ar wahân yw'r fagl yn y rhes ganol. Mae'n gwahanu cwcis a hanes, ac nid yw'n newid dim byd am dabl llwybro'r gwesteiwr, felly mae'r ddau broffil yn cymryd yr un llwybr. Mae arwahanu yn gofyn am rywbeth y mae'r cnewyllyn yn ei orfodi, sef enw gofod, cynhwysydd, neu raglen sy'n berchen ar ei rhyngwyneb twnnel ei hun.
Pa res bynnag sy'n berthnasol, ysgrifennwch beth ddylai ddigwydd pan fo'r twnnel yn syrthio. Mae llwybr sy'n seiliedig ar farc sy'n diflannu gyda'r rhyngwyneb fel arfer yn disgyn yn ôl i'r llwybr rhagosodedig ffisegol, sef ymddygiad fail-open. Gallai hynny fod yn dderbyniol ar gyfer pori ac yn annerbyniol ar gyfer unrhyw beth arall, a phenderfyniad yw hynny, nid manylyn gweithredu.
Profwch y ffrydiau rydych yn honni eu bod yn cael eu cynnwys
Rhaid i'r prawf derbyn ddilyn y ffin a ysgrifennwyd gennych, nid y rhifau porth a oedd yn gyfleus. Dewiswch un ffrwd sy'n rhaid mynd trwy'r twnnel, un na chaiff fynd, ac un sy'n defnyddio cludiant na wnaethoch feddwl amdano:
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'
Mae'r chwiliad llwybr yn dweud pa ryngwyneb mae cyrchfan yn ei ddefnyddio mewn gwirionedd, a dyna'r ffaith y mae'r rhan fwyaf o adroddiadau yn ei chael yn anghywir. Mae llinell curl yn cadarnhau'r fersiwn a drafodwyd a'r teulu cyfeiriadau. Mae dymp y set rheolau yn dal y rheol a ychwanegwyd gennych wrth brofi ac yr anghofiwyd ei chwmpasu, a dyna sut mae marc dros dro yn troi'n llwybro fail-open parhaol.
Cofnodwch y tri allbwn gyda stamp amser a'u cadw gyda'r newid. Pan fydd rhywun yn adrodd yn ddiweddarach fod „y VPN wedi torri'r fewnrwyd“, bydd y gwahaniaeth rhwng y ffin a fwriadwyd a'r un a weithredwyd i'w weld yn y cofnod hwnnw, a newid rheol fydd y cywiriad yn hytrach nag ymryson.