Tliet qabżiet WireGuard jaslu għal netwerk li m’għandux indirizz pubbliku, u mbagħad il-magna tan-nofs tieqaf twieġeb fuq il-port li kellha tisma’ fuqu. It-tunnel ’il quddiem għadu jaħdem, il-host ’il bogħod għadu jwieġeb, u huwa biss is-server tan-nofs innifsu li sar sieket minn barra. Dan l-għaqda huwa konfuż proprju għax huwa awtoimpost: il-qabża tan-nofs tobdi t-tabella tar-rotot tagħha stess, u t-tabella tibgħat it-tweġibiet tagħha fid-direzzjoni ħażina.

Katina li taħdem sakemm titkellem mal-kaxxa tan-nofs

Ħu katina illustrattiva: il-klijent A jasal għas-server B fuq UDP 500, u B jitkompla għas-server C fuq UDP 500. C jaċċetta traffiku biss mill-indirizz tal-unika sieħbu, li tagħmlu werqa u żżomm l-imġiba tiegħu sempliċi. B mhuwiex werqa, u kull ħaġa interessanti f’dan il-ħsara sseħħ hemmhekk.

Id-distinzjoni hija importanti għax ir-rwoli tal-werqa u tan-nofs jiġbdu f’direzzjonijiet opposti. Werqa tista’ tibgħat kollox f’tunnel wieħed mingħajr konsegwenzi, għax xejn ieħor ma jiddependi minnha. Qabża tan-nofs hija fl-istess ħin punt finali għall-klijenti u klijent lejn in-naħa ’l bogħod, u dawn iż-żewġ xogħlijiet iridu routing differenti.

Għaliex it-tweġiba toħroġ mit-tunnel

Fuq B, l-interface li tħares lejn C iġġorr AllowedIPs = 0.0.0.0/0 flimkien mar-rotta prestabbilita li taqbel. Għalhekk kull pakkett li B joħloq jidħol f’dak it-tunnel, sakemm xi ħaġa aktar speċifika ma tieħux preċedenza.

Pakkett minn A indirizzat lil B jasal u jiġi aċċettat, għax B huwa d-destinazzjoni u l-kunsinna lokali sseħħ l-ewwel. It-tweġiba hija pakkett ġdid għal kollox iġġenerat lokalment u indirizzat lejn l-indirizz pubbliku ta’ A, u dak id-destinazzjoni jaqbel mar-rotta prestabbilita fit-tunnel. C jirċevih, m’għandux dak l-indirizz, u jarmih.

Is-sintomu jinqara bħala problema ta’ firewall jew nuqqas ta’ qbil fil-muftieħ, u ebda waħda mhija vera hawn. Qabda fuq it-tunnel lejn C turi li t-tweġibiet sejrin fid-direzzjoni ħażina. Dik l-osservazzjoni waħda tiffranka aktar ħin milli kwalunkwe ammont ta’ qari tal-konfigurazzjoni, għalhekk iktebha qabel tibda tbiddel il-muftieħ. Kull min ma rax il-qabda se jassumi li t-tunnel innifsu huwa miksur.

It-tiswija dejqa: regoli tal-politika li jaqblu ma’ port tas-sors

It-tweġibiet mis-socket tal-wiri ta’ B joħorġu bil-port tas-sors 500. Regola tal-politika tista’ taqbel ma’ dan u tibgħat dawk il-pakketti lura lejn it-tabella ordinarja:

ip rule add sport 500 table main priority 100
ip rule add sport 8080 table main priority 101

Ir-regoli tal-politika jiġu kkonsultati bl-ordni tal-prijorità, u t-tabella prinċipali tinsab fi 32766, għalhekk regola fi 100 tiġi mistoqsija qabel ma r-rotta prestabbilita tat-tunnel tgħid xi ħaġa. Żid entrata waħda għal kull port li għandu jibqa’ aċċessibbli minn barra u xejn aktar, sabiex it-traffiku mgħoddi jibqa’ juża t-tunnel li għalih inbena.

Kun af il-limitu ta’ dan it-trick. Is-selettur sport jaqbel ma’ pakketti ġġenerati lokalment, li jkopri eżattament il-każ tat-tweġiba u apposta ma jkoprix traffiku li B sempliċement jgħaddi għal xi ħadd ieħor. Servizz ospitat wara B għadu jeħtieġ it-tweġiba tiegħu stess, u li tgħid il-kuntrarju jipproduċi tiswija li taħdem għall-ewwel servizz u tfalli għat-tieni.

Agħti sid lir-regola

Regola miktuba fil-prompt tisparixxi l-ħin li jmiss meta l-interface tinbena mill-ġdid. F’settup WireGuard, poġġiha fejn l-interface tinħoloq u titneħħa:

PostUp = ip rule add sport 500 table main priority 100
PostDown = ip rule del sport 500 table main priority 100

Jekk l-interface hija proprjetà ta’ NetworkManager, ta’ hook tad-distribuzzjoni jew ta’ punt tad-dħul ta’ container, il-par jappartjeni lil dak is-sid u mhux lil fajl editjat bl-idejn. Iċċekkja r-regoli effettivi wara qbil mill-ġdid, mhux biss wara l-ewwel tnedija, għax l-ewwel tnedija hija l-każ li dejjem jaħdem.

Qabbel l-alternattivi b’onestà

Ir-regola tal-port tas-sors hija waħda minn erba’ toroq ’il barra, u hija l-iktar dejqa minnhom. Għandha l-vantaġġ li ma tmissx il-politika tat-tunnel xejn, u għalhekk għandha t-tendenza li tgħix mill-bidliet aktar tard. Is-swiwi dejqa wkoll ifallu bl-għajjat meta jieqfu japplikaw, filwaqt li eċċezzjoni wiesgħa tibqa’ taħdem bil-kwiet ħafna wara li r-raġuni tagħha tkun sparixxiet. Dik id-differenza timporta iktar mill-eleganti meta xi ħadd ieħor ikollu l-kaxxa fi żmien sentejn.

ApproachWhat it costsWhere it breaks
Source-port policy ruleOne rule per exposed portAnything B forwards rather than originates
Destination exception routeA route pinned to specific client addressesClients whose address changes
Stop full-tunnelling on BLoses the catch-all path toward CDesigns that depend on it
Split into two tunnelsMore interfaces and more policyNothing, at the cost of complexity

Ivverifika miż-żewġ trufijiet ladarba tkun għażilt. Minn A, ibda konnessjoni mal-port ta’ B u żommha okkupata għal ftit. Fuq B, ġiegħel il-kernel jiġġustifika t-triq tat-tweġiba b’xi ħaġa bħal ip route get <address-of-A> sport 500, u kkonferma li ssemmi l-interface WAN u mhux it-tunnel. Wara dan, iċċekkja li xi ħaġa wara C għadha twieġeb mill-katina, li jipprova li l-eċċezzjoni baqgħet dejqa minflok ma saret bypass. Fl-aħħar, innota l-ports fin-noti tad-disinn, inkella l-operatur li jmiss se jerġa’ jiskopri dan fuq servizz ieħor.

Artikli relatati