WireGuard àpapọ̀: ìgbésẹ̀ ààrín kò lè dáhùn ibùdó tirẹ̀
Nígbà tí ìgbésẹ̀ ààrín bá fi gbogbo nǹkan ránṣẹ́ sínú ọ̀nà kan, àwọn ìdáhùn sí iṣẹ́ tí ń wọlé fún un ń jáde ní ọ̀nà tí kò tọ́. Ìlànà ibùdó orísun lórí ibàjẹ́kù náà ń ṣàtúnṣe rẹ̀.
Àwọn ìgbésẹ̀ WireGuard mẹ́ta dé ọ̀nà àjọ̀ kan tí kò ní àdírẹ́sì gbangba, lẹ́yìn náà ẹ̀rọ ààrín yóò dáwọ́ ìdáhùn dúró ní ibùdó tí ó yẹ kí ó máa gbọ́. Ọ̀nà náà ṣì ń ṣiṣẹ́, ẹ̀rọ tí ó jìnnà ṣì ń dáhùn, àti pé ẹ̀rọ ààrín fúnra rẹ̀ nìkan ló ti dákẹ́ ní ìta. Àpapọ̀ yẹn ń da ènìyàn rú, nítorí pé òun fúnra rẹ̀ ló ṣe é: ìgbésẹ̀ ààrín ń tẹ̀lé tábìlì ọ̀nà tirẹ̀, tábìlì náà sì ń fi àwọn ìdáhùn rẹ̀ ránṣẹ́ sí ọ̀nà tí kò tọ́.
Ẹ̀wọ̀n tí ń ṣiṣẹ́ títí tí ìwọ yóò fi bá àpótí ààrín sọ̀rọ̀
Muu ẹ̀wọ̀n àpẹẹrẹ kan: alábàáṣepọ̀ A dé ibùdó B lórí UDP 500, B sì ń tẹ̀síwájú sí ibùdó C lórí UDP 500. C ń gba ìrìnàjò láti àdírẹ́sì alábàákẹ́gbẹ́ rẹ̀ kan ṣoṣo, èyí tí ó sọ ọ́ di ewé tí ó sì ń pa ìwà rẹ̀ mọ́ ní rírọrùn. B kì í ṣe ewé, gbogbo ohun tí ó fani mọ́ra nípa àìṣedéédé yìí ń ṣẹlẹ̀ níbẹ̀.
Ìyàtọ̀ yìí ṣe pàtàkì nítorí pé ipa ewé àti ipa ààrín ń fa sí ọ̀nà òdì kejì. Ewé lè fi gbogbo nǹkan ránṣẹ́ sínú ọ̀nà kan láìsí àbájáde, nítorí pé kò sí ohun mìíràn tí ó gbára lé e. Ìgbésẹ̀ ààrín jẹ́ ìparí fún àwọn alábàáṣepọ̀ àti alábàáṣepọ̀ sí ẹ̀gbẹ́ tí ó jìnnà ní àkókò kan náà, iṣẹ́ méjì yẹn sì fẹ́ ọ̀nà ọ̀tọ̀ọ̀tọ̀.
Kí ni ìdáhùn fi ń jáde gba ọ̀nà náà
Lórí B, ibàjẹ́kù tí ó kọjú sí C gbé AllowedIPs = 0.0.0.0/0 pẹ̀lú ọ̀nà àkọ́kọ́ tí ó bá a mu. Nítorí náà gbogbo pákéètì tí B ṣẹ̀dá ń wọ inú ọ̀nà yẹn, àyàfi tí ohun kan tí ó ṣe pàtó bá gba ipò àkọ́kọ́.
Pákéètì láti A tí a fi sí B dé, a sì gbà á, nítorí pé B ni ibi tí a ń lọ àti pé ìfijíṣẹ́ àdúgbò ń ṣẹlẹ̀ kọ́kọ́. Ìdáhùn jẹ́ pákéètì tuntun pátápátá tí a ṣẹ̀dá ní àdúgbò tí a sì dojú kọ àdírẹ́sì gbangba A, ibi tí a ń lọ yẹn sì bá ọ̀nà àkọ́kọ́ nínú ọ̀nà mu. C gbà á, kò ni àdírẹ́sì yẹn, ó sì sọ ọ́ nù.
Àmì náà ń kà bí ìṣòro odi iná tàbí àìbámu kọ́kọ́rọ́, kò sì sí ọ̀kan nínú wọn tí ó jẹ́ òtítọ́ níbí. Gbígbé lórí ọ̀nà sí C fi hàn pé àwọn ìdáhùn ń lọ sí ọ̀nà tí kò tọ́. Ìwòye kan ṣoṣo yẹn ń fi àkókò pamọ́ ju bí a ti ń ka ìṣètò lọ, nítorí náà kọ ọ́ sílẹ̀ kí o tó bẹ̀rẹ̀ sí yí kọ́kọ́rọ́ padà. Ẹnikẹ́ni tí kò tíì rí gbígbé náà yóò rò pé ọ̀nà náà fúnra rẹ̀ ti bàjẹ́.
Àtúnṣe tóóró: àwọn ìlànà ètò tí ó bá ibùdó orísun mu
Àwọn ìdáhùn láti ṣókẹ́ẹ̀tì gbígbọ́ B ń jáde pẹ̀lú ibùdó orísun 500. Ìlànà ètò kan lè bá a mu kí ó sì fi àwọn pákéètì yẹn padà sínú tábìlì déédéé:
ip rule add sport 500 table main priority 100
ip rule add sport 8080 table main priority 101
A ń wo àwọn ìlànà ètò ní ìtẹ̀lé ipò àkọ́kọ́, tábìlì pàtàkì sì wà ní 32766, nítorí náà a ń béèrè ìlànà ní 100 kí ọ̀nà àkọ́kọ́ ọ̀nà náà tó sọ̀rọ̀. Fi àfikún kan kún fún gbogbo ibùdó tí ó gbọdọ̀ wà ní àrúgbọ́n láti ìta àti kò sí ohun mìíràn, kí ìrìnàjò tí a ń gbé lọ lè máa lo ọ̀nà tí a kọ́ fún un.
Mọ ààlà ọgbọ́n yìí. Yíyàn sport bá àwọn pákéètì tí a ṣẹ̀dá ní àdúgbò mu, èyí tí ó bo ìṣẹ̀lẹ̀ ìdáhùn gan-an, kò sì mọ̀ọ́mọ̀ bo ìrìnàjò tí B kàn ń gbé lọ fún ẹlòmíràn. Iṣẹ́ tí a gbà sínú ilé lẹ́yìn B ṣì nílò ìdáhùn tirẹ̀, dídi ẹni tí ó sọ òdì kejì ń mú àtúnṣe tí ó ń ṣiṣẹ́ fún iṣẹ́ àkọ́kọ́ tí ó sì kùnà fún èkejì.
Fún ìlànà ní ẹni
Ìlànà tí a tẹ̀ sínú ìtọ́ni yóò pàdánù nígbà tí a bá tún ibàjẹ́kù kọ́ ní ìgbà tí ó ń bọ̀. Nínú ìṣètò WireGuard, fi í sí ibi tí a ti ń dá ibàjẹ́kù àti ibi tí a ti ń yọ ọ́ kúrò:
PostUp = ip rule add sport 500 table main priority 100
PostDown = ip rule del sport 500 table main priority 100
Bí NetworkManager, ìkọ̀kọ̀ pínpín tàbí ibi ìwọlé pátákó bá ni ibàjẹ́kù náà, àwọn méjì náà jẹ́ ti ẹni yẹn kì í ṣe fáìlì tí a fi ọwọ́ ṣàtúnṣe. Ṣàyẹ̀wò àwọn ìlànà tí ó ń ṣiṣẹ́ lẹ́yìn àtúnso pọ̀, kì í ṣe lẹ́yìn ìbẹ̀rẹ̀ àkọ́kọ́ nìkan, nítorí pé ìbẹ̀rẹ̀ àkọ́kọ́ ni ìṣẹ̀lẹ̀ tí ó ń ṣiṣẹ́ nígbà gbogbo.
Fi àwọn àṣàyàn wé pẹ̀lú òtítọ́
Ìlànà ibùdó orísun jẹ́ ọ̀kan nínú àwọn ọ̀nà mẹ́rin jáde, ó sì tóóró jù nínú wọn. Ó ní àǹfààní pé kò fi ọwọ́ kan ètò ọ̀nà rárá, ìdí nìyẹn tí ó fi ń ye àwọn ìyípadà tí ó ń bọ̀ já. Àwọn àtúnṣe tóóró pẹ̀lú ń kùnà ní àríwo nígbà tí wọ́n bá jáwọ́ lílò, nígbà tí ìyọkùrò gbòòrò ń máa ń ṣiṣẹ́ ní ìdákẹ́jẹ́ẹ́ pẹ́ lẹ́yìn tí ìdí rẹ̀ ti parẹ́. Ìyàtọ̀ yẹn ṣe pàtàkì ju ẹ̀wà lọ nígbà tí ẹlòmíràn bá ni àpótí náà ní ọdún méjì sí i.
| Approach | What it costs | Where it breaks |
|---|---|---|
| Source-port policy rule | One rule per exposed port | Anything B forwards rather than originates |
| Destination exception route | A route pinned to specific client addresses | Clients whose address changes |
| Stop full-tunnelling on B | Loses the catch-all path toward C | Designs that depend on it |
| Split into two tunnels | More interfaces and more policy | Nothing, at the cost of complexity |
Ṣàyẹ̀wò láti ẹ̀gbẹ́ méjèèjì lẹ́yìn tí o bá yàn. Láti A, bẹ̀rẹ̀ ìsopọ̀ sí ibùdó B kí o sì jẹ́ kí ó máa ṣiṣẹ́ fún ìgbà díẹ̀. Lórí B, jẹ́ kí kérúnà ṣe ìdáláre ọ̀nà ìdáhùn pẹ̀lú ohun kan bí ip route get <address-of-A> sport 500, kí o sì jẹ́rìí pé ó dárúkọ ibàjẹ́kù WAN kì í ṣe ọ̀nà náà. Lẹ́yìn náà, ṣàyẹ̀wò pé ohun kan lẹ́yìn C ṣì ń dáhùn gba ẹ̀wọ̀n náà, èyí tí ó fi hàn pé ìyọkùrò náà wà ní tóóró dípò kí ó di ọ̀nà àyọkùrò. Níkẹyìn, kọ àwọn ibùdó sínú àwọn àkọsílẹ̀ àpẹẹrẹ, bí bẹ́ẹ̀ kọ́ olùṣiṣẹ́ tí ó ń bọ̀ yóò tún ṣàwárí èyí lórí iṣẹ́ mìíràn.