Kí ni ọ̀nà OpenVPN fi ń pọ́n ìlànà XFRM strongSwan lójú
Ọ̀nà OpenVPN kan pàtó kò bori ìlànà XFRM: kà ọ̀nà àti àwọn olùyàn ìlànà, lẹ́yìn náà dín kù, ṣe ìyàsọ́tọ̀ tàbí lọ sí ìtakùn XFRM.
Àwọn pákẹ́tì lè tẹ̀lé ọ̀nà OpenVPN kí wọ́n sì tún wà nínú ìkọ́ ìlànà IPsec, ìdàpọ̀ yìí sì dàbí àṣìṣe ìpalọ́nà láti gbogbo igun àyàfi igun tí ó tọ́. Linux yanjú ọ̀nà kan lẹ́yìn náà ó béèrè lọ́wọ́ ibi ìpamọ́ ìlànà ààbò ọ̀tọ̀, nítorí náà ọ̀nà ibi-àfojúsùn tí ó ṣe pàtó ju kò lé ìlànà XFRM tí ó báramu kúrò. Àmì tí ó hàn ni ọkọ̀ tí ó fi agbalejo sílẹ̀ tí kò sì dé rárá, nígbà tí àwọn ọ̀nà abẹ́ ilẹ̀ méjèèjì ń sọ pé àwọn ní ìlera. Àwọn àṣàyàn mẹ́ta yanjú rẹ̀, àti èyí tí o bá yàn dá lórí èyí tí ó yẹ kí ó gbé orí-ìbẹ̀rẹ̀ yẹn nínú àwọn ọ̀nà méjèèjì.
Ìpinnu méjì, kì í ṣe ọ̀kan
Yíyàn ọ̀nà ń dáhùn ìbéèrè tóóró: irúfẹ́ ìfò tí ó kàn àti àdírẹ́sì orísun tí ó yẹ kí ó gbé pákẹ́tì yìí. Ibi ìpamọ́ ìlànà ààbò ń dáhùn òmíràn: ṣé pákẹ́tì yìí nílò ààbò IPsec, àti lábẹ́ àwọn olùyàn wo. Àwọn méjèèjì ń ṣiṣẹ́ fún pákẹ́tì kan náà, àti mímú èkíní ṣẹ kò sọ nǹkan kan nípa èkejì. Ìdí ni pé yíyí ìwọ̀n kan padà tàbí fífi ọ̀nà dúró ṣe é lè fi àmì náà sílẹ̀ láìfọwọ́ kàn.
Olùyàn IPsec tí ó gbòòrò ni ìdí tí ó wọ́pọ̀. Ìlànà tí ń dáàbò bo 172.16.0.0/12 tún bo 172.20.8.0/24, níbi tí olùdarí lè ní èrò láti dé nípasẹ̀ ọ̀nà abẹ́ ilẹ̀ OpenVPN. Èrò náà wà nínú tábìlì ìpalọ́nà nìkan, ibi ìpamọ́ ìlànà kò sì kúkú mọ̀ nípa rẹ̀.
Kà á bí ìforígbárí láàrin ọ̀nà ààbò méjì tí a ti ṣètò, kì í ṣe ìdíje láàrin ìwọ̀n méjì. Àtúnṣe náà jẹ́ ti ẹ̀ka tí a ṣètò pẹ̀lú ìwọ̀n tí kò tọ́.
Ka ọ̀nà tí kẹ́nẹ́lì ń yàn gan-an
Bẹ̀rẹ̀ pẹ̀lú ìwá tí kẹ́nẹ́lì ń ṣe, pẹ̀lú àdírẹ́sì orísun àti ìlànà èyíkéyìí tí ó lè yí i lọ sí tábìlì mìíràn. Ọ̀nà tí ó wà nínú tábìlì àkọ́kọ́ lè máà ṣe àyẹ̀wò rárá tí ìlànà tí ó ṣáájú bá yàn tábìlì mìíràn, ìbáramu orí-ìbẹ̀rẹ̀ tí ó gùn jùlọ sì ń ṣiṣẹ́ nínú tábìlì tí ìlànà yàn nìkan.
ip rule show
ip route show table all
ip route get 172.20.8.20 from 10.44.7.15
Àṣẹ ìkẹyìn ni èyí tí ó ṣe pàtàkì, nítorí ó ń tẹ̀ ọ̀nà tí a yàn pẹ̀lú àdírẹ́sì orísun tí kẹ́nẹ́lì yóò lò. Fi ìjáde yẹn wé olùyàn tí ìlànà IPsec báramu. Nígbà tí ọ̀nà bá ń tọ́ka sí ìtakùn OpenVPN tí ìlànà sì ṣì ń báramu pẹ̀lú ẹgbẹ́ kan náà, o ti tún ìforígbárí náà ṣe láìronú.
Jẹ́ kí àwọn àdàkọ padà máà ní àdírẹ́sì tí kò ní í ṣe kí wọ́n tó dé tíkẹ́ẹ̀tì. Tábìlì ìpalọ́nà láti agbalejo ìgbékalẹ̀ ń gbé ìlà ìsopọ̀ inú, àwọn ìlà tí ń dáhùn ìbéèrè nìkan ni ó yẹ kí a lẹ̀ mọ́.
Ka ìlànà tí ó tún kan náà
Àkójọ ìlànà ń fi ìtọ́sọ́nà, àwọn olùyàn àti àwòrán tí ń pinnu ohun tí yóò ṣẹlẹ̀ sí pákẹ́tì tí ó báramu hàn. Ka ìtọ́sọ́nà ìjáde ní àkọ́kọ́, lẹ́yìn náà ẹ̀gbẹ́ ìwọlé fún ọkọ̀ tí ń padà, nítorí ìyàsọ́tọ̀ọ̀kan-ọ̀nà ń dá ìsopọ̀ tí ó bẹ̀rẹ̀ tí kò sì parí rárá.
ip -s xfrm policy
swanctl --list-sas
Fi àwọn olùyàn inú àkójọ wé àwọn orí-ìbẹ̀rẹ̀ tí ìsopọ̀ náà dúnàdúrà. Pípa fífi ọ̀nà sórí strongSwan kò mú àwọn ìlànà yẹn kúrò, yíyí ìwọ̀n padà kò sì yí ẹgbẹ́ orísun àti ibi-àfojúsùn tí ìlànà ń dáàbò bo padà. Àwọn àtúnṣe irọ́ méjì yìí yẹ kí a dín kù níbẹ̀rẹ̀, nítorí àwọn ni ènìyàn ń kọ́kọ́ dán wò.
Tí àkójọ kò bá ní ìlànà fún orí-ìbẹ̀rẹ̀ tí o retí, ìṣòro wà níbòmíràn, tábìlì ìpalọ́nà sì ṣeé ṣe kí ó ń sọ òtítọ́. Tí ó bá ní ìlànà tí ó gbòòrò jù tí ó bo orí-ìbẹ̀rẹ̀ náà, o ti rí àmújáde náà.
Àṣàyàn mẹ́ta nígbà tí àwọn ọ̀nà méjèèjì bá tọ́
Dín olùyàn IPsec kù ni àṣàyàn tí ó mọ́ jùlọ nígbà tí orí-ìbẹ̀rẹ̀ gbòòrò náà jẹ́ ìrọ̀rùn kì í ṣe àìní. Dídín olùyàn ọkọ̀ tí ó jìnnà kù sí àwọn ẹ̀ka-ìsopọ̀ tí ó wà lẹ́yìn IPsec gan-an ń mú ìforígbárí kúrò fún gbogbo agbalejo lẹ́ẹ̀kan náà, ìye rẹ̀ sì jẹ́ ìdúnàdúrà kọ́kọ́rọ́ tuntun, kì í ṣe ẹ̀ka tuntun.
Ìyàsọ́tọ̀ ìgbékalẹ̀ ni àṣàyàn iṣẹ́ abẹ nígbà tí olùyàn gbòòrò náà gbọdọ̀ wà. strongSwan ń ṣe àtìlẹ́yìn ìsopọ̀ ọ̀tọ̀ tí child rẹ̀ ń lo ipò pass, èyí tí ń sọ fún kẹ́nẹ́lì pé kò gbọdọ̀ ṣe ìtọ́jú ọkọ̀ tí ó báramu pẹ̀lú IPsec. Àdírẹ́sì jìnnà loopback ń dá ìsopọ̀ yẹn dúró kí a máà yàn án fún àwọn ẹlẹgbẹ́ tí ń wọlé, àwọn olùyàn sì gbọdọ̀ ṣàpèjúwe ẹgbẹ́ tí a fọwọ́ sí gan-an kì í ṣe ohun gbogbo.
connections {
openvpn-exception {
remote_addrs = 127.0.0.1
children {
openvpn-exception {
local_ts = 10.44.7.0/24
remote_ts = 172.20.8.0/24
mode = pass
start_action = trap
}
}
}
}
Àwọn àpẹẹrẹ ìṣètò strongSwan ń ṣàkọsílẹ̀ irú ìlànà yìí àti àṣà ẹlẹgbẹ́ loopback. Àṣàyàn kẹta ni àpẹẹrẹ ìṣètò tí ó dá lórí ìpalọ́nà pẹ̀lú àwọn ìtakùn XFRM, tí ó so ìlànà mọ́ ọkọ̀ tí a palọ́nà nípasẹ̀ ìtakùn tí a pè ní orúkọ dípò olùyàn àgbáyé. Ìṣípò ni kì í ṣe àtúnṣe, ọkọ̀ sì gbọdọ̀ tún tẹ́ àwọn olùyàn tí a dúnàdúrà lọ́rùn.
| Option | Use it when | Cost |
|---|---|---|
| Narrow the selector | The broad prefix was convenience | A rekey and a policy review |
| Passthrough child | The broad selector must stay | One exception per intended pair |
| XFRM interface | Policy should follow routing | A design migration |
Fi ìyàsọ́tọ̀ náà hàn láìjẹ́ kí ìyókù di aláìlera
Lẹ́yìn gbígbé ìyípadà náà, dán ìyàsọ́tọ̀ náà àti ibi-àfojúsùn déédéé tí ó gbọdọ̀ wà ní ààbò wò. Ṣàyẹ̀wò àwọn ìtọ́sọ́nà méjèèjì, lẹ́yìn náà ju ọ̀nà abẹ́ ilẹ̀ OpenVPN sílẹ̀ kí o sì fìdí rẹ̀ múlẹ̀ ohun tí ó ṣẹlẹ̀ sí ọkọ̀ tí a yà sọ́tọ̀. Ìyàsọ́tọ̀ tí ń fi orí-ìbẹ̀rẹ̀ yẹn ránṣẹ́ ní ìdákẹ́jẹ́ẹ́ ní gbangba nígbà tí ọ̀nà abẹ́ ilẹ̀ wà ní ìsàlẹ̀ jẹ́ ìpinnu ìlànà tí o yẹ kí o ṣe létòlétò, kì í ṣe láti ṣàwárí nígbà ìṣẹ̀lẹ̀.
Kọ sílẹ̀ irú orí-ìbẹ̀rẹ̀ tí ó ń lo irú ọ̀nà wo àti ìdí rẹ̀. Bí bẹ́ẹ̀ kọ́, ẹlẹ́rọ̀ tí yóò tẹ̀lé tí ó bá rí olùyàn gbòòrò yóò tún ìwádìí kan náà ṣí, ìdáhùn náà yóò sì wà nínú ìfiránṣẹ́ commit tí ẹnikẹ́ni kò kà.