Àwọn òfin pọ́ọ̀tì 80 àti 443 kò gbé ẹ̀rọ ìwé kọjá VPN
Ìbámu pọ́ọ̀tì ń yan àwọn ṣíṣàn TCP, kì í ṣe ẹ̀rọ ìwé. HTTP/3 ń ṣiṣẹ́ lórí UDP, DNS lè gbà ọ̀nà mìíràn, àti ohun ìmúdójúìwọ̀n ń bá òfin kan náà mu tí o kọ.
Ẹnìkan béèrè pé kí ẹ̀rọ ìwé lo ọ̀nà ìkọ̀kọ̀, ìdáhùn sì padà bọ̀ gẹ́gẹ́ bí òfin odi iná tí ó bá pọ́ọ̀tì ìdí 80 àti 443 mu. Ó dà bí ẹni pé ó péye, kò sì rí bẹ́ẹ̀. Ìbámu pọ́ọ̀tì ń yan àwọn pákẹ́ẹ̀tì nípa orí gbígbé wọn, kì í ṣe nípa ètò tí ó ṣí sọ́kẹ́ẹ̀tì, àti ìṣàwárí òde òní kò ní ààlà sí pọ́ọ̀tì méjì yẹn lórí TCP. Òfin náà yóò pàdánù díẹ̀ nínú ìrìnnà tí o fẹ́ kí ó wà, yóò sì mú ìrìnnà tí o kò ní ìrònú láti fọwọ́ kàn. Kí o tó kọ ọ́, pinnu irú ààlà wo nínú ààlà mẹ́ta ọ̀tọ̀ọ̀tọ̀ ni o fẹ́ gan-an.
Òfin náà ṣàpèjúwe ẹ̀ka gbígbé, kì í ṣe ètò kan
Lórí Linux, ìbámu pọ́ọ̀tì ìdí ń yẹ orí TCP wò, kò sì sí ohun mìíràn lókè rẹ̀. Síṣamì àwọn pákẹ́ẹ̀tì yẹn àti dídarí wọn pẹ̀lú ọ̀nà ìṣèlú ń ṣiṣẹ́ gẹ́gẹ́ bí a ti kọ ọ́ sílẹ̀, kò sì sí ọ̀kan nínú àwọn ẹ̀rọ yìí tí ó mọ ohun tí ẹrù túmọ̀ sí tàbí ètò wo ló fi ránṣẹ́. Àmì jẹ́ nọ́mbà tí a so mọ́ pákẹ́ẹ̀tì, kì í ṣe ìdánimọ̀ tí a so mọ́ ètò.
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
Àbájáde méjì ń tẹ̀le lẹ́sẹ̀kẹsẹ̀. Ohun ìmúdójúìwọ̀n sọ́fítíwéà tí ó bá TCP 443 pàdé gba ìtọ́jú kan náà bí ẹ̀rọ ìwé, èyí tí ó lè dára tàbí ó lè jẹ́ ìdálẹ́sẹ̀ tí ń dúró de yíyí ìmúdójúìwọ̀n tó ń bọ̀. Àti iṣẹ́ wẹ́ẹ̀bù tí a mọ̀ọ́mọ̀ tẹ̀ jáde lórí pọ́ọ̀tì mìíràn, sọ pé 8443, ń jáde pátápátá kúrò nínú òfin náà bó tilẹ̀ jẹ́ pé ìrìnnà wẹ́ẹ̀bù náà ni olùlò náà kìyèsí.
Àwọn nọ́mbà jẹ́ olùyàn tó tọ́ nígbà tí ìbéèrè bá kan àwọn pọ́ọ̀tì yẹn gan-an. Wọ́n di ìtàn àròsọ nígbà tí a bá kọ «ẹ̀rọ ìwé» sínú tíkẹ́ẹ̀tì tí a sì fi ààlà pọ́ọ̀tì ṣiṣẹ́ nínú àkójọ òfin. Àlàfo yẹn kì í ṣe kúlẹ̀kúlẹ̀ ìwé. Ó jẹ́ ìyàtọ̀ láàárín òfin tí o lè gbèjà lójú àyẹ̀wò àti èyí tí kò sẹ́ni tó lè dán wò.
HTTP/3 ń fi òfin TCP rẹ sílẹ̀ ní ìdákẹ́jẹ́
HTTP/3 ń ṣiṣẹ́ lórí QUIC, a sì ń gbé QUIC nínú UDP. Òfin tí ó bá TCP nìkan mu kò lè rí i, nítorí náà ẹ̀rọ ìwé kan náà tí ó gbà ojú-ìwé ìdánwò rẹ lè fi ìbéèrè tó ń bọ̀ ránṣẹ́ lórí UDP kí ó sì gbá ọ̀nà ìkọ̀kọ̀ kọjá láìsí ẹnikẹ́ni tí ó yí ètò kan padà. RFC 9114 ṣàpèjúwe HTTP/3 gẹ́gẹ́ bí ìlànà tí ó dúró lórí QUIC, QUIC sì ń lo UDP pẹ̀lú pọ́ọ̀tì àkọ́kọ́ 443 nínú ìṣàfilọ́lẹ̀ tó wọ́pọ̀.
Bóyá ẹ̀rọ ìwé kan pàtó yóò gbìyànjú HTTP/3 dá lórí ìṣètò rẹ̀, ojú-ìwé àti bóyá ìgbìyànjú àtẹ̀yìnwá ṣe àṣeyọrí. Èyí mú kí ó ṣòro láti ṣe àròyé lé e lórí ìrántí. Bèèrè lọ́wọ́ irinṣẹ́ náà pàápàá:
curl --http3 -sS -o /dev/null -w '%{http_version} %{time_total}\n' https://example.com
ss -tunp | grep -E ':443\b'
Ìlà curl ń tẹ ẹ̀yà tí a ti gbà jáde, nítorí náà 3 ń jẹ́rìí pé a lo ọ̀nà UDP. Lẹ́yìn náà àkójọ sọ́kẹ́ẹ̀tì ń fi hàn bóyá ìsopọ̀ yẹn so mọ́ ibi-ìsopọ̀ ọ̀nà ìkọ̀kọ̀ tàbí ti ara. Tí HTTP/3 kò bá sí nínú ìkọ́ curl rẹ, àsíá yóò kùnà ní gbèèrègbèèrè dípò yíyọ̀ padà ní ìdákẹ́jẹ́, èyí tí í ṣe àánú kékeré tirẹ̀.
DNS jẹ́ ìpinnu ọ̀tọ̀ tí o gbọ́dọ̀ ṣe
Òfin pọ́ọ̀tì fún ìrìnnà wẹ́ẹ̀bù kò sọ ohun kan nípa yíyanjá orúkọ. Ẹ̀rọ ìwé lè lo olùyánjá ti ẹ̀rọ, olùyánjá tí a ṣètò nínú ẹ̀rọ ìwé, tàbí èyí tí ìsopọ̀ tó kẹ́yìn ti tì wọlé. Ọ̀kọ̀ọ̀kan wọn lè fi àwọn ìbéèrè ránṣẹ́ ní ọ̀nà tó yàtọ̀ sí èyí tí òfin rẹ yàn, èyí tí ń dá ìpínyà àtẹ̀yìnwá: ojú-ìwé ń gbé wọlé, orúkọ ń yanjá ní ibi tí o kò retí, àti ojú-ìwé inú ń yanjá sí àdírẹ́sì gbangba tàbí kò yanjá rárá.
Pinnu èyí ní gbangba. Tí àwọn orúkọ inú gbọ́dọ̀ yanjá nípasẹ̀ ọ̀nà ìkọ̀kọ̀, olùyánjá gbọ́dọ̀ wà nínú rẹ̀, àkójọ òfin sì gbọ́dọ̀ gba DNS lọ sí olùyánjá yẹn nígbà tí ó ń pa àwọn ìbéèrè mìíràn mọ́ ní òde. Tí ẹ̀rọ ìwé bá ń lo DNS over HTTPS sí olùpèsè gbangba, ìbéèrè náà ń gbá olùyánjá rẹ kọjá pátápátá, òfin pọ́ọ̀tì kò sì lè rànwọ́. Kọ ìyàn náà sínú àkọsílẹ̀ ìyípadà kan náà pẹ̀lú òfin ọ̀nà, nítorí ẹni tí yóò ṣàtúnṣe ìkùnà tó ń bọ̀ ń ka àwọn méjèèjì papọ̀.
Lẹ́yìn náà fi olùyánjá ṣe ìjẹ́rìí dípò ojú-ìwé:
resolvectl query intranet.example.internal
resolvectl status | grep -A3 'Current DNS Server'
Ìdáhùn tí kò sí jẹ́ ìṣòro yíyanjá pàápàá nígbà tí ìfiránṣẹ́ àṣìṣe ẹ̀rọ ìwé bá fi ẹ̀bi lé nẹ́tíwọ́kì. Àwọn ìkùnà méjì yìí dà bí ohun kan fún olùlò, wọ́n sì jẹ́ tíkẹ́ẹ̀tì tó yàtọ̀ pátápátá.
Ààlà mẹ́ta, ọ̀nà mẹ́ta ọ̀tọ̀ọ̀tọ̀
Ọ̀pọ̀ ìdàrúdàpọ̀ ń parẹ́ ní kété tí o bá dárúkọ ààlà tí o fẹ́. Wọn kò fi ara wọn rọ́pò, ọ̀kọ̀ọ̀kan sì ní ọ̀nà ìkùnà tó yàtọ̀ nígbà tí ọ̀nà ìkọ̀kọ̀ bá ṣubú.
| 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 |
Profáìlì ẹ̀rọ ìwé ọ̀tọ̀ jẹ́ tàkúté ilà àárín. Ó ń ya kúkí àti ìtàn, kò sì yí ohun kan padà nínú tábìlì ọ̀nà ti agbàlejò, nítorí náà profáìlì méjèèjì ń gbà ọ̀nà kan náà. Ìyàsọ́tọ̀ nílò ohun tí kọ́nà ń fi agbára mú, ìyẹn àyè orúkọ, kọ́ńténíà tàbí ètò tí ó ní ibi-ìsopọ̀ ọ̀nà ìkọ̀kọ̀ tirẹ̀.
Ilà tí ó bá kan, kọ ohun tí ó yẹ kí ó ṣẹlẹ̀ nígbà tí ọ̀nà ìkọ̀kọ̀ bá já. Ọ̀nà tí ó dúró lórí àmì tí ó ń parẹ́ pẹ̀lú ibi-ìsopọ̀ sábà padà sí ọ̀nà àkọ́kọ́ ti ara, èyí tí í ṣe ìhùwàsí fail-open. Èyí lè jẹ́ ìtẹ́wọ́gbà fún ìṣàwárí kì í sì í ṣe fún ohunkóhun mìíràn, ìpinnu sì ni, kì í ṣe kúlẹ̀kúlẹ̀ ìmúṣẹ.
Dán àwọn ṣíṣàn tí o sọ pé o bo wò
Ìdánwò ìtẹ́wọ́gbà gbọ́dọ̀ tẹ̀le ààlà tí o kọ, kì í ṣe àwọn nọ́mbà pọ́ọ̀tì tó rọrùn. Yan ṣíṣàn kan tí ó gbọ́dọ̀ gba ọ̀nà ìkọ̀kọ̀ kọjá, ọ̀kan tí kò gbọ́dọ̀, àti ọ̀kan tí ó ń lo gbígbé tí o kò rò nípa rẹ̀:
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'
Ìwádìí ọ̀nà ń sọ ibi-ìsopọ̀ wo ni ìdí ń lò gan-an, èyí sì ni òtítọ́ tí ọ̀pọ̀ ìròyìn ń sọ lọ́nà tí kò tọ́. Ìlà curl ń jẹ́rìí ẹ̀yà tí a gbà àti ìdílé àdírẹ́sì. Ìtújáde àkójọ òfin ń mú òfin tí o fi kún nígbà ìdánwò tí o sì gbàgbé láti dín kù, àti bẹ́ẹ̀ ni àmì ìgbà díẹ̀ ń di ọ̀nà fail-open tòótọ́.
Kọ àwọn ìtújáde mẹ́tẹ̀ẹ̀ta pẹ̀lú àmì àkókò kí o sì tọ́jú wọn pẹ̀lú ìyípadà náà. Nígbà tí ẹnìkan bá royin lẹ́yìn náà pé «VPN ti ba nẹ́tíwọ́kì inú jẹ́», ìyàtọ̀ láàárín ààlà tí a wéwèé àti èyí tí a mú ṣẹ yóò hàn nínú àkọsílẹ̀ yẹn, àtúnṣe yóò sì jẹ́ ìyípadà òfin, kì í ṣe àríyànjiyàn.