It-talba dejjem hija varjant tal-istess sentenza: żomm il-VPN għall-ibbrowsjar, imma ħalli SSH jew kompitu ta' backup jużaw il-konnessjoni normali. Il-parir li joqgħod idur dwar dan, jiġifieri tgħaddi l-port b'regoli NAT ta' iptables, ma jagħmilx dan. Regola NAT terġa' tikteb indirizzi u portijiet ġewwa fluss; qatt ma tagħżel minn liema interface il-pakkett joħroġ. Dik id-deċiżjoni tappartjeni għat-tfittxija tar-rotta, u t-tfittxija tar-rotta teħtieġ għajnuna biex tara port.

Għaliex rotta sempliċi ma tistax taqbel ma' port

Linux jagħżel rotta billi jfittex l-indirizz tad-destinazzjoni f'tabella, wara li t-tabelli kandidati jiġu ffiltrati b'regoli tal-politika. Dawk ir-regoli jistgħu jaqblu ma' marka tal-firewall, indirizz tas-sors, interface li tidħol jew UID. L-entrata tar-rotta nnifisha m'għandhiex qasam tal-port, għax ir-rotta tingħażel qabel ma l-intestatura tat-trasport tidher.

L-iproute2 u l-kernel tal-lum iwessgħu l-għażla tar-regola: ipproto, sport u dport huma aċċettati, għalhekk ip rule add ipproto tcp dport 22 table 100 jesprimi l-ħsieb f'linja waħda. Mexxi ip rule add help fuq il-host veru biex tara jekk il-build tiegħek jimmotax dport. Jekk iva, spiċċajt b'kmand wieħed; jekk le, it-triq tal-marka hawn taħt hija l-ekwivalenti.

Kif ikun, ir-regola hija biss indikatur. It-tabella 100 għadha teħtieġ rotta, u dak huwa l-biċċa li n-nies jinsu.

Tliet biċċiet, jew waħda

Il-forma moderna hija r-regola waħda ta' fuq flimkien ma' rotta fit-tabella alternattiva. Il-forma klassika żżid netfilter fin-nofs: immarka l-pakkett, imbagħad qabbel il-marka f'regola. It-tnejn jispiċċaw fl-istess tfittxija; huma differenti f'fejn jinqara l-port.

L-approċċ tal-marka jeżisti għax netfilter jara l-intestatura tat-trasport u l-kodiċi tar-routing storikament ma jarahiex. Dan huwa l-mekkaniżmu kollu, u jispjega għaliex l-alternattiva hija tliet biċċiet li jaħdmu flimkien u mhux kmand wieħed għaqli.

It-tliet biċċiet fl-ordni

L-ewwel, immarka l-flussi li trid iddawwar, f'katina li taħdem kmieni biżżejjed biex il-marka tkun teżisti qabel id-deċiżjoni tar-rotta:

nft add table inet vpnexempt
nft 'add chain inet vpnexempt out { type route hook output priority mangle; }'
nft add rule inet vpnexempt out tcp dport 22 meta mark set 0x1

It-tieni, ibgħat il-pakketti mmarkati lejn tabella separata:

ip rule add fwmark 0x1/0x1 table 100

It-tielet, agħti lil dik it-tabella rotta default permezz tar-rabta fiżika. L-indirizzi huma eżempji; daħħal tiegħek:

ip route add default via 192.168.1.1 dev wlan0 table 100

Aqbeż it-tielet pass u l-pakkett immarkat ma jsib l-ebda rotta fit-tabella 100, għalhekk ifalli. Is-sintomu jidher qisu r-regola kissret in-netwerk, meta fil-fatt neħħet l-uniku triq li kien fadal għall-pakkett.

X'iqajmu għaddej wara l-ewwel pakkett

Il-marki japplikaw għall-pakketti li joħorġu. It-tweġiba tasal fuq l-interface fiżika bl-indirizz li tat dik ir-rabta, u t-tabella prinċipali tista' għadha tippreferi t-tunnel għal dik id-destinazzjoni. Żewġ mekkaniżmi jżommu t-triq tat-tweġiba konsistenti: regola bbażata fuq is-sors għall-indirizz tar-rabta, u t-traċċar tal-konnessjonijiet li jippreserva d-deċiżjoni għall-ħajja kollha tal-fluss. Li tħaddan il-marka f'conntrack u terġa' tistabbilixxiha fit-tweġiba hija l-mod tas-soltu biex tagħmel eċċezzjoni bl-istat stabbli.

Il-filtrazzjoni tat-triq maqluba hija l-qattiel sieket l-ieħor. Jekk il-kernel jivvalida t-triq tar-ritorn b'mod strett u t-tweġiba tasal fuq interface li t-tabella prinċipali ma tagħżilx, il-pakkett jitwaddab mingħajr messaġġ. rp_filter il-valuri default ivarjaw skont id-distribuzzjoni u skont jekk l-interface hijiex mgħoddija 'l quddiem, għalhekk aqra l-valur effettiv minflok ma tassumi li huwa mitfi.

Timmarkax it-trasport tat-tunnel innifsu. Tunnel WireGuard jew UDP OpenVPN mhuwiex TCP 22, għalhekk ir-riċetta ta' fuq hija sigura, imma eċċezzjoni miktuba bħala kollox ħlief id-destinazzjoni tat-tunnel tista' taqbad il-pakketti kriptati u tkisser it-tunnel b'mod li jidher bħal linja tar-routing.

Iċċekkja minflok ma tassumi

Staqsi lill-kernel liema triq jieħu, għad-destinazzjoni u għall-port, imbagħad wettaq it-trasferiment veru:

ip route get 203.0.113.10
ip rule show
nft list ruleset

Jekk il-marka teżisti imma l-kontaturi qatt ma jiċċaqilqu, ir-regola ma taqbilx. Il-kontaturi huma d-differenza bejn konfigurazzjoni li ktibt u politika li l-kernel qed japplika.

Meta dan huwa l-għodda ħażina

Eċċezzjonijiet ibbażati fuq il-port huma fraġli min-natura tagħhom. Is-servizzi jċaqilqu l-portijiet, HTTP/3 jasl bħala UDP 443, u applikazzjoni waħda tista' tiftaħ diversi flussi ta' tipi differenti. Jekk il-ħtieġa vera hija li dan il-programm juża r-rabta normali, is-saff tar-routing huwa l-post ħażin; namespace tan-netwerk jew proxy għal kull applikazzjoni jaqblu aħjar.

Jekk il-ħtieġa hija li dan is-subnet juża r-rabta normali, aqbeż il-marki kollha u żid rotta aktar speċifika. Huwa aktar sempliċi, jidher f'tabella waħda, u l-persuna li jmiss tista' tawditjah mingħajr ma taqra sett ta' regoli.

Ikteb liema mit-tliet ħtiġijiet għandek tassew qabel ma tmiss il-firewall. Il-mekkaniżmu ta' fuq huwa preċiż, u l-preċiżjoni applikata lis-saff ħażin hija biss waqfa itwal.

Artikli relatati