Ìtẹ̀jáde ibùdó Docker lòdì sí VPN: ibo ni ìdáhùn ń lọ
Ẹ̀rọ ìtẹ̀jáde kan ń dáhùn láti àdírẹ́sì tirẹ̀ ṣáájú NAT yíyí padà. Àwọn àpẹẹrẹ méjì lè pa ìdáhùn yẹn mọ́ ní ọ̀nà gbogbo ènìyàn, pẹ̀lú iye owó tí ó yàtọ̀.
Olùgbàlejò ń tẹ̀síwájú dídáhùn SSH lẹ́yìn tí VPN pẹ̀lú ipasẹ̀ kíkún bá gòkè, nígbà tí iṣẹ́ tí a tẹ̀jáde pẹ̀lú Docker lórí ẹ̀rọ kan náà di ìdákẹ́jẹ́. Kò sí àṣìṣe kankan nínú olùgbọ́: ẹ̀rọ ìkójọpọ̀ ń ṣiṣẹ́, àwòrán ibùdó wà, pákẹ́ẹ̀tì sì dé. Ẹ̀rọ ìkójọpọ̀ ní ìlera, ìbéèrè sì dé ọ̀dọ̀ rẹ̀ gan-an. Ohun tí ó yàtọ̀ ni ibi tí ìdáhùn bẹ̀rẹ̀ nígbà tí Linux yan ọ̀nà rẹ̀, ìyàtọ̀ yẹn sì pinnu irú àpẹẹrẹ wo nínú àwọn méjì tí ó wà ní ìsàlẹ̀ yìí tí ìwọ nílò.
Tẹ̀lé tuple náà nípasẹ̀ NAT ibi-àfojúsùn
Gba olùgbàlejò kan ní 192.0.2.10 tí ó ń tẹ̀jáde TCP 2222 sí ẹ̀rọ ìkójọpọ̀ kan ní 172.30.240.5:22. Ìbéèrè láti 198.51.100.25 ni a túmọ̀ kí ó tó dé ọ̀dọ̀ ẹ̀rọ ìkójọpọ̀, ẹ̀rọ ìkójọpọ̀ sì ń dáhùn gẹ́gẹ́ bí ara rẹ̀.
WAN request: 198.51.100.25 -> 192.0.2.10:2222
after DNAT: 198.51.100.25 -> 172.30.240.5:22
container reply: 172.30.240.5:22 -> 198.51.100.25
Ní ìpinnu ọ̀nà olùgbàlejò, ìdáhùn ṣì ń gbé àdírẹ́sì orísun ẹ̀rọ ìkójọpọ̀. Ìtúmọ̀ yíyí padà ń mú tuple tí a tẹ̀jáde padà nígbà tí ó yá, ìdí nìyẹn tí pákẹ́ẹ̀tì fi yàtọ̀ ní ìrísí ní àkókò gan-an tí a ti yan ọ̀nà.
Kí ni ìdí tí òfin olùgbàlejò nìkan fi ń pàdánù rẹ̀
Òfin tí ó ń yan tábìlì WAN fún àwọn pákẹ́ẹ̀tì láti 192.0.2.10 nìkan ń bo àwọn daemon olùgbàlejò fúnra rẹ̀, ó sì ń pàdánù ìdáhùn tí a gbé jáde yìí pátápátá. Àdírẹ́sì orísun lórí ìdáhùn ni 172.30.240.5, kì í ṣe olùgbàlejò.
Àtúnṣe àṣejù ni láti darí ohun gbogbo láti ẹ̀rọ ìkójọpọ̀ nípasẹ̀ WAN, èyí tí ó tún yọ àwọn ìsopọ̀ jáde tí kò ní í ṣe pẹ̀lú ẹ̀rọ ìkójọpọ̀ kúrò nínú VPN. Ìyẹn jẹ́ ètò ìmúlò tí ó yàtọ̀ sí èyí tí a béèrè, ó sì sábà máa ń ya ẹnìkan lẹ́nu nígbà tí ó yá.
Ìbáramu lẹ́yìn DNAT jẹ́ hook mìíràn
Ìwé Docker nípa àwọn odi iná sọ pé àlẹ̀mọ́ olùmúlò àkọ́kọ́ ń rí ibi-àfojúsùn lẹ́yìn DNAT, nítorí náà ìbáramu ibùdó 2222 tí a tẹ̀jáde nínú òfin déédéé kì í ṣe ohun kan náà pẹ̀lú ìbáramu ibùdó 22 ẹ̀rọ ìkójọpọ̀. Tí tuple àkọ́kọ́ bá ṣe pàtàkì, lo ẹ̀rọ ibi-àfojúsùn àkọ́kọ́ tí a ṣàtìlẹ́yìn dípò kí o ka ibùdó tí ó hàn.
Ìdàrúdàpọ̀ hook yìí ń dá àwọn òfin tí ó dàbí ẹni pé ó tọ́ tí kò sì báramu láé. Ṣàyẹ̀wò àwọn kọ́ńtà lórí òfin fúnra rẹ̀ kí o tó tún ètò ìmúlò kọ. Òfin tí kò ní ìkọlu kankan sọ fún ọ pé a ń ṣe àgbéléwò rẹ̀ ní ibi tí pákẹ́ẹ̀tì kò dé láé.
Àpẹẹrẹ A: gbé ìpinnu náà gẹ́gẹ́ bí ipò ìsopọ̀
Àmì ìsopọ̀ lè gbé ìpinnu ìwọlé kọjá ìtúmọ̀, ṣùgbọ́n a gbọ́dọ̀ mú un padà sórí pákẹ́ẹ̀tì kí wíwá ọ̀nà tí ó ṣe pàtàkì tó ṣẹlẹ̀. Àwọn ìgbésẹ̀ ni:
- Pamọ́ pápá àmì àti ipò àkọ́kọ́ òfin tí kò fi ara wọn gbá Docker, VPN tàbí ẹnìkan mìíràn tí ó ni ètò ìmúlò.
- Dámọ̀ ìsopọ̀ WAN tuntun tí a fẹ́ nìkan ní ibi tí ó wà ṣáájú DNAT níbi tí àfọ̀mọ́ ìsopọ̀ wà.
- Kọ ìpinnu náà sórí àmì ìsopọ̀, láìfi ipá mú ìbéèrè àkọ́kọ́ fúnra rẹ̀ wọ inú tábìlì WAN.
- Ní ìtọ́sọ́nà ìdáhùn, mú àwọn bíìtì àmì tirẹ̀ nìkan padà sórí pákẹ́ẹ̀tì kí ìtọ́sọ́nà ọ̀nà tó ṣẹlẹ̀.
- Yan tábìlì WAN kíkún ní àkókò tí ó tó pẹ́ kí òfin VPN má bàa ṣẹ́gun kọ́.
Tábìlì yẹn nílò àwọn ọ̀nà tí ó so pọ̀ gan-an àti ẹnu-ọ̀nà. Ó tún nílò ìhùwàsí tí a ṣàlàyé nígbà tí ọ̀nà kò sí. Jíjá bọ́ sínú ipasẹ̀ ní ìdákẹ́jẹ́ ni àbájáde tí ó burú jù, nítorí ètò ìṣètò ṣì dàbí ẹni pé ó ń ṣiṣẹ́. Dípò bẹ́ẹ̀, kùnà ní ọ̀nà tí ó dì kí o sì ṣàkọ́sílẹ̀.
Àpẹẹrẹ B: parí lórí olùgbàlejò
Ẹ̀yà iwájú olùgbàlejò tí a ṣètò pẹ̀lú ìmọ̀ọ́nú, bíi aṣojú TCP tàbí aṣojú yíyí padà níwájú ẹ̀rọ ìkójọpọ̀, ń pa ìdáhùn mọ́ bí ó ti ń jáde láti àdírẹ́sì olùgbàlejò. Nígbà náà àwọn òfin tí a kọ fún olùgbàlejò ń hùwà bí a ti retí, ẹ̀rọ ìkójọpọ̀ sì wà lórí nẹ́tíwọ́kì aládàáni rẹ̀.
Iye owó ni apá mìíràn tí ń rìn pẹ̀lú ètò ìṣètò tirẹ̀, ìtọ́jú àdírẹ́sì orísun àti àwọn ìṣàkóso àwọlé. Ó sábà jẹ́ ààlà tí a ṣàtìlẹ́yìn tí ó rọrùn jù, ó sì sábà jẹ́ ìdáhùn tí ó tọ́ nígbà tí ẹnìkan tí ó lè lọ yóò máa tọ́jú ètò ìmúlò ọ̀nà.
Ṣàdánwò ìyípadà, kì í ṣe èrò
Ṣí ìsopọ̀ tuntun tí a fọwọ́ sí láti ẹ̀gbẹ́ gbogbo ènìyàn kí o sì jẹ́rìí pé ìdáhùn ń jáde nípasẹ̀ ẹ̀rọ ìsopọ̀ tí a fẹ́. Lẹ́yìn náà ṣàyẹ̀wò pé ìbéèrè tí kò ní í ṣe pẹ̀lú ẹ̀rọ ìkójọpọ̀ tí ó bẹ̀rẹ̀ ṣì ń tẹ̀lé VPN.
Má ṣe fọ́ tábìlì ìsopọ̀ ẹ̀rọ náà kúrò láti dán òfin kan wò: àwọn àkọsílẹ̀ tí ó wà ń pa àwòrán wọn tẹ́lẹ̀ mọ́, fífọ́ náà sì ń ba gbogbo ohun mìíràn jẹ́ lórí olùgbàlejò. Ìtẹ̀jáde ibùdó ń ṣàlàyé ìwọlé. Kò ṣàlàyé ọ̀nà ìdáhùn. Kọ àpẹẹrẹ tí a yàn pẹ̀lú àwọn orúkọ tábìlì rẹ̀, kí ẹnìkan tí ó kàn má bàa ní láti tún un ṣàwárí nígbà ìṣẹ̀lẹ̀ kan.