Ṣé àwọn oníbàárà lórí àwọn sáfà OpenVPN méjì lè dé ọ̀dọ̀ ara wọn?
Sáfà OpenVPN méjì ń dá àwọn ẹgbẹ́ oníbàárà méjì, kì í ṣe nẹ́tíwọ́kì kan. Ṣe ìtọ́sọ́nà láàárín wọn pẹ̀lú àwọn subnet ọ̀tọ̀ọ̀tọ̀, àwọn ọ̀nà ìpadà méjì àti ààlà ìgbẹ́kẹ̀lé tí ó ṣe kedere.
Gbígbé OpenVPN sáfà kejì kalẹ̀ ń fún ọ ní ibi kejì tí àwọn oníbàárà lè so mọ́, kò sì ju bẹ́ẹ̀ lọ. Kò gbé àwọn oníbàárà yẹn sínú nẹ́tíwọ́kì sáfà kìíní, àṣàyàn tí a pè ní client-to-client kìkì yí ìfiránṣẹ́ padà nínú ìlànà sáfà kan. Àwọn ẹgbẹ́ méjì náà di nẹ́tíwọ́kì kan nígbà tí o bá ṣe ìtọ́sọ́nà láàárín wọn pẹ̀lú ìmọ̀ọ́nú, pẹ̀lú olùṣàkóso fún ọ̀nà kọ̀ọ̀kan. Gbogbo ohun tí ó wà nísàlẹ̀ ń gbà pé a wà ní ipò TUN nínú ààyè olùlò pẹ̀lú ìfiránṣẹ́ inú yẹn tí a pa, nítorí náà kernel ni ó ń ṣe ìpinnu.
Ìtàn àròsọ: àkójọ àkọsílẹ̀ kan, nẹ́tíwọ́kì kan
À ń da ìjẹ́rìí àti ànfààní ìdé pọ̀ nítorí méjèèjì wà nínú ìṣètò sáfà. Olùlò tí ó lè wọlé sí èyíkéyìí nínú àwọn ẹnubodè méjì dàbí, láti ìta, olùlò lórí ẹ̀rọ kan tí ó ní ilẹ̀kùn méjì. Nínú, sáfà kọ̀ọ̀kan ń fi àwọn àdírẹ́sì fúnni láti inú ẹgbẹ́ tirẹ̀, ó sì ń gbé àwọn ọ̀nà kalẹ̀ fún àwọn oníbàárà tí ó ń parí nìkan. Nítorí náà oníbàárà kan ní ẹnubodè A tí ó ń fi pákẹ́ẹ̀tì ránṣẹ́ sí oníbàárà kan ní ẹnubodè B ń béèrè ibi tí sáfà tirẹ̀ kò gbọ́ rí. Pákẹ́ẹ̀tì náà ń lọ sí ọ̀nà àkọ́kọ́ ti A, ó ń jáde kúrò nínú ọ̀nà abẹ́lẹ̀, ó sì ń dé ọ̀dọ̀ firewall tí a kò tíì béèrè rí pé kí ó gbà á.
Nítorí náà fífi sáfà kejì kún kò fi àfojúsùn, ìwádìí tàbí agbègbè ìkéde tí a pín kún. Ó ń fi nẹ́tíwọ́kì tí a ṣe ìtọ́sọ́nà kún tí ó nílò ètò, ètò náà sì bẹ̀rẹ̀ pẹ̀lú fífi àdírẹ́sì kalẹ̀.
Fún ẹnubodè kọ̀ọ̀kan ní ẹgbẹ́ tirẹ̀ àti àdírẹ́sì ìrékọjá
Àwọn ìwọ̀n méjì tí kò lè gbà ara wọn àti ìsopọ̀ ìrékọjá kékeré láàárín àwọn agbàlejò, ni gbogbo ètò àdírẹ́sì. Tọ́jú ìrékọjá lórí apá àdáni tí o ń darí, kí o sì kọ àwọn nọ́mbà náà sílẹ̀ kí sáfà kankan tó fi iyalo fúnni.
| Gateway | Client pool | Transit address |
|---|---|---|
| gateway-a | 10.64.10.0/24 | 172.28.44.1/30 |
| gateway-b | 10.64.20.0/24 | 172.28.44.2/30 |
Kọ́ ìtànjẹ láti fi ẹgbẹ́ kan náà fún àwọn sáfà méjèèjì kí àwọn prófáìlì lè dúró bákan náà. Ọ̀nà kernel kò lè sọ èwo nínú àwọn agbàlejò méjì ni ó ni àdírẹ́sì àìdábọ̀ kan nínú ìwọ̀n tí a pín lọ́wọ́lọ́wọ́, nítorí náà tábìlì ìtọ́sọ́nà yóò tọ́ka sí ẹnubodè kan, oníbàárà sì lè so mọ́ èkejì. Àwọn orúkọ interfeis jẹ́ àṣà ibílẹ̀, kì í ṣe ipò tí a pín. Àwọn agbàlejò méjèèjì níbí ń pe ẹ̀rọ ọ̀nà abẹ́lẹ̀ ní tun0 àti ìsopọ̀ ìrékọjá ní transit0, èyí dára nítorí kò sí pákẹ́ẹ̀tì tí ó gbé àwọn orúkọ yẹn.
Gbé ọ̀nà náà kalẹ̀ ní ẹ̀gbẹ́ méjèèjì
Ẹnubodè kọ̀ọ̀kan nílò ọ̀nà sí ẹgbẹ́ èkejì nípasẹ̀ àdírẹ́sì ìrékọjá, ìfiránṣẹ́ sì gbọ́dọ̀ wà ní ṣíṣí kí èyíkéyìí lè ṣiṣẹ́ gẹ́gẹ́ bí ìpele. Kọ́kọ́ jẹ́rìí tábìlì tí ó wà lọ́wọ́lọ́wọ́, lẹ́yìn náà fi àkọsílẹ̀ náà kún, kí o sì jẹ́ kí ó dúró gbọn-in nípasẹ̀ olùdarí nẹ́tíwọ́kì agbàlejò dípò ìkọ̀kọ̀ ìsopọ̀mọ́-àtúnṣe.
sysctl net.ipv4.ip_forward
ip route add 10.64.20.0/24 via 172.28.44.2 dev transit0
ip route get 10.64.20.37
Ṣe àfihàn èyí lórí agbàlejò kejì pẹ̀lú àwọn ẹgbẹ́ tí a yí padà. Fífi ọ̀nà kan náà kún lẹ́ẹ̀kọ̀ọ̀kan láti inú script tí kò ní í ṣe ni ọ̀nà tí agbàlejò kan fi ní ọ̀pọ̀ àdàkọ àti ìyípadà àràmù nísàlẹ̀ nígbà tí ẹnìkan bá ka tábìlì náà. Bí ìsopọ̀ ìrékọjá fúnra rẹ̀ bá jẹ́ ọ̀nà abẹ́lẹ̀, ọ̀nà náà ń tọ́ka sí ẹ̀ya-ìtọ́sọ́nà ti ọ̀nà abẹ́lẹ̀ yẹn, ìpele sì gbọ́dọ̀ wà láàyè lẹ́yìn ìsopọ̀mọ́-àtúnṣe rẹ̀. Àdírẹ́sì ìrékọjá tí ó pòórá fún ọgbọ̀n àáyá yóò gbé ọ̀nà láàárín àwọn ẹgbẹ́ pẹ̀lú, èyí jẹ́ ànímọ́ àpẹẹrẹ tí ó tọ́ láti sọ ju kí a ṣàwárí rẹ̀.
Ti ọ̀nà oníbàárà jáde láìṣe bí ẹni tí ó ni í
Àwọn oníbàárà nílò ọ̀nà sí ẹgbẹ́ tí ó jìnnà, bí bẹ́ẹ̀ kọ́ ẹ̀rọ ìṣiṣẹ́ wọn fúnra rẹ̀ yóò fi pákẹ́ẹ̀tì ránṣẹ́ sí ẹnubodè àkọ́kọ́, ọ̀nà abẹ́lẹ̀ kò sì ní rí i rí. Ìṣètò sáfà ni ibi àdánidá láti gbé e dé.
push "route 10.64.20.0 255.255.255.0"
Fi ìlà àfihàn náà sínú ìṣètò sáfà kejì, lẹ́yìn náà so oníbàárà ìdánwò mọ́ àtúnṣe kí o sì ka tábìlì rẹ̀. Oníbàárà tí ó ń pa àwọn ọ̀nà tí a ti jáde kù nílò ìṣètò rẹ̀ tí a fọwọ́ sí, ọ̀nà tí kò sì dé rí kì í ṣe ìṣàkóso ànfààní. Má ṣe fún oníbàárà ní iroute fún gbogbo ẹgbẹ́ ẹnubodè kejì. Ìtọ́ni yẹn wà fún subnet kan lẹ́yìn oníbàárà kan tí ó so mọ́, lílo rẹ̀ láti bo ọ̀nà tí ó ṣẹ́ kù láàárín àwọn ẹnubodè ń mú sáfà tí ó gbà pé òun ni àwọn àdírẹ́sì tí òun kò lè dé jáde.
Jẹ́rìí ìbéèrè kan kí o sì kọ èkejì
Yan ìṣe gidi kan, fún àpẹẹrẹ HTTPS láti oníbàárà kan ní 10.64.10.21 sí iṣẹ́ kan ní 10.64.20.37, kí o sì gba irú rẹ̀ gan-an láàyè lórí àwọn agbàlejò méjèèjì. Firewall kọ̀ọ̀kan ń gba ìbéèrè náà ní ẹ̀gbẹ́ àbáwọlé àti ìdáhùn tí a tọ́jú ní ẹ̀gbẹ́ ìpadà; ìlànà iṣẹ́ ibi tí ó ń lọ fúnra rẹ̀ ṣì gbọ́dọ̀ gbà á.
iptables -A FORWARD -i tun0 -o transit0 -s 10.64.10.21 -d 10.64.20.37 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i transit0 -o tun0 -d 10.64.10.21 -s 10.64.20.37 -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Nígbà tí àwọn ọ̀nà ìpadà méjì wà, NAT orísun kò pọn dandan, ó sì ń ṣe ìpalára níbí: yíyí orísun padà ń fi oníbàárà tí ó fi ìbéèrè ránṣẹ́ pamọ́, ó sì ń ba ìlànà tí ó dá lórí orísun jẹ́ ní ẹ̀gbẹ́ ibi tí ó ń lọ. Ṣàyẹ̀wò pé ìlànà masquerade tí ó wà fún jíjáde sí íńtánẹ́ẹ̀tì kò gbá ọ̀nà yìí pẹ̀lú. Lẹ́yìn náà dán ìkọ̀wọ́lé náà wò. Iṣẹ́ tí ó yẹ kí ó dúró ní ẹgbẹ́ B gbọ́dọ̀ dúró ní àìdé láti ẹgbẹ́ A, àwọn tọkọtaya oníbàárà lórí ẹnubodè kan náà sì nílò ìdánwò pẹ̀lú, nítorí ìlànà ìfiránṣẹ́ tí o ṣẹ̀ṣẹ̀ yí padà kan àwọn pẹ̀lú.
Àtúnṣe mìíràn sí àwòrán ọkàn: ìsopọ̀ ìrékọjá ń gbé àwọn pákẹ́ẹ̀tì inú tí a ti yọ àṣírí, nítorí náà ó jẹ́ ààlà ìgbẹ́kẹ̀lé kì í ṣe ìdánilójú àdáni. Bí ó bá kọjá nẹ́tíwọ́kì tí o kò darí, dáàbò bo ìpele yẹn pẹ̀lú ọ̀nà abẹ́lẹ̀ ẹ̀rọ tí a fọwọ́ sí, kí o sì ṣe ìtọ́sọ́nà nípasẹ̀ ẹ̀ya-ìtọ́sọ́nà gidi rẹ̀. TLS láti òpin dé òpin ṣì ń jẹ́rìí ìṣẹ̀dá náà fúnra rẹ̀, ìdí nìyẹn tí iṣẹ́ inú fi gbọ́dọ̀ máa lò ó.