Dínà ìlànà SNAT OpenVPN kí ó tó ba nginx jẹ́
Àwọn olùgbà máa ń jẹ́rìí ṣùgbọ́n kò sí ohun tí wọ́n ń darí, tàbí ojú-ìwé náà kú lẹ́yìn tí VPN gòkè. Ṣàyẹ̀wò àwọn àǹfààní tun, lẹ́yìn náà dínà ìtumọ̀ sí pool àti interface kan.
Àwọn ìkùnà méjì máa ń wá láti inú irú host kan náà nígbà gbogbo. Nínú èkíní, àwọn olùgbà máa ń jẹ́rìí kí wọ́n sì máa kò dé ohunkóhun tí ó kọjá tunnel. Nínú èkejì, VPN máa ń gòkè kí ojú-ìwé server fúnra rẹ̀ jáwọ́ sí ìdáhùn, èyí tí ó jẹ́ èyí tí ó ń dani jù nítorí ó dàbí ìbàjẹ́ ẹ̀gbẹ́. Lórí VPS tí ó dá lórí container, àwọn méjèèjì máa ń padà sí àkójọ àyẹ̀wò kúkúrú kan náà, àti pé ìtòlẹ́sẹẹsẹ ṣe pàtàkì: ẹ̀rọ ní àkọ́kọ́, ìtumọ̀ ní èkejì, ìwọ̀n ní ẹ̀kẹta.
Jẹ́rìí pé container lè dá ẹ̀rọ tun
Kò sí ohun mìíràn tí ó ṣe pàtàkì bí interface tunnel kò bá lè wà. Ṣàyẹ̀wò pé /dev/net/tun wà àti pé ṣíṣe ẹ̀rọ ìdánwò máa ń yọrísí rere, nítorí ọ̀pọ̀ olùpèsè máa ń pa tun kúrò nínú container ní àkókò ìpilẹ̀. Kò sí iṣẹ́ firewall tí ó lè ṣe àtúnṣe fún ẹ̀rọ tí a kò dá rí.
Bí ẹ̀rọ kò bá sí, host tàbí olùpèsè nìkan ló lè mú un ṣiṣẹ́. Ètò mìíràn sábà máa ń hàn ju ìtẹ̀jáde àtìlẹ́yìn tí ó ṣí tí ó sì gba ọ̀sẹ̀ kan. Jẹ́rìí èyí kí o tó ka ìlà kan pàápàá nínú àkọsílẹ̀ OpenVPN. Bí bẹ́ẹ̀ kọ́, ìwọ yóò lo àṣálẹ́ náà ní ṣíṣe àtúnṣe àwọn ìlànà tí kò ní rí àkójọpọ̀ kankan.
Pinnu ohun tí MASQUERADE ń ṣe lórí interface yìí
Lórí ẹ̀rọ virtual tí ó wọ́pọ̀, ìlànà ìjáde tí ó wọ́pọ̀ ni POSTROUTING MASQUERADE láti interface àkọ́kọ́. Nínú container OpenVZ, ẹ̀rọ tí a rí sábà máa ń jẹ́ venet0, interface virtual tí host ń ṣàkóso kì í ṣe NIC tí a darí, àti pé MASQUERADE kì í ṣe bẹ́ẹ̀ nígbà gbogbo níbẹ̀ gẹ́gẹ́ bí àwọn ìkẹ́kọ̀ọ́ ṣe gbà.
Ọ̀nà tí ó lè ṣiṣẹ́ ni ìtumọ̀ tí ó ṣe kedere sí àdírẹ́sì tí àwọn olùgbà ti ń dé, pẹ̀lú ìyọ̀ǹda gbígbékalẹ̀ ní ẹ̀gbẹ́ méjèèjì. Yíyí pool padà láti ìṣètò server ṣe pàtàkì bákan náà bí yíyí àdírẹ́sì padà. Ka gbogbo ìlà kí o tó lẹ̀ ẹ́.
iptables -t nat -A POSTROUTING -o venet0 -s 10.8.0.0/24 -j SNAT --to-source 203.0.113.10
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTLáìsí àwọn ìlànà gbígbékalẹ̀, ìtumọ̀ ṣì ń ṣẹlẹ̀ àti pé kernel ṣì ń kọ̀ láti gbékalẹ̀. Àkópọ̀ yẹn máa ń dá ipò ìdàrúdàpọ̀ tí àwọn kíkà lórí ìlànà NAT ń gòkè nígbà tí olùgbà kò rí nkankan. Àwọn ìlà FORWARD méjèèjì gbọ́dọ̀ wà ṣáájú ìlànà drop gbòòrò kankan nínú ẹ̀wọ̀n kan náà. Ìtòlẹ́sẹẹsẹ jẹ́ apá kan ìṣètò, kì í ṣe àlàyé ìmúṣẹ.
Dínà ìlànà náà sí pool kan àti interface kan
Àmì èkejì ní ìdí mìíràn: ìlànà POSTROUTING tí kò ní ìdínà orísun tàbí ìdínà ìjáde. Irú ìlànà bẹ́ẹ̀ máa ń tún kọ gbogbo àkójọpọ̀ tí ó ń jáde kúrò ní host.
Àwọn iṣẹ́ tí ó sinmi lórí orísun àkọ́kọ́ máa ń hùwà lọ́nà tí kò tọ́ lẹ́yìn náà. Server wẹ́ẹ̀bù tí ó wà lẹ́yìn proxy àdúgbò lè jáwọ́ sí ìdáhùn, àti pé àtúnbẹ̀rẹ̀ kò yí nkankan padà nítorí ìlànà náà ṣì wà lójú ọ̀nà. Tirafiki tí host ń firanṣẹ́ sí àdírẹ́sì gbangba tirẹ̀ pẹ̀lú ní ìpa, ìdí nìyẹn tí ìkùnà fi lè dàbí ìṣòro DNS tàbí ẹ̀rí-ìjẹ́rìí dípò firewall. Ó fẹ́rẹ̀ẹ́ dájú pé a fi ìlànà náà kún fún àtúnṣe àmì àkọ́kọ́.
Òǹà àtúnṣe ni láti dínà ìbáramu sí pool tunnel àti interface ìjáde, lẹ́yìn náà fi ìlànà kan kún fún pool kọ̀ọ̀kan dípò fífa ìlànà kan gbòòrò láti bo ọ̀pọ̀.
Sọ àwọn ìlànà di aláìlópin kí o sì wádìí ẹni mìíràn tí ó ní wọ́n
Àwọn ìlànà tí a fi ọwọ́ kún máa ń pàdánù nígbà àtúnbẹ̀rẹ̀, nítorí náà gbà wọ́n pamọ́ pẹ̀lú iptables-save tàbí ṣàkóso wọ́n nípasẹ̀ netfilter-persistent níbi tí ó ti wà. Jẹ́rìí pé ìmúpadàbọ̀ ń ṣiṣẹ́ kí OpenVPN tó bẹ̀rẹ̀. Lẹ́yìn náà tún bẹ̀rẹ̀ lẹ́ẹ̀kan pẹ̀lú ìmọ̀ dípò ṣíṣe àwárí àlàfo nígbà ìṣẹ̀lẹ̀.
Lórí host container, jẹ́rìí pẹ̀lú pé fáìlì ìdúró ṣinṣin wà nínú ìpamọ́ container tí a lè kọ sínú rẹ̀ àti pé olùpèsè kò rọ́pò ìṣẹ́ àyọkúrò nígbà ìpilẹ̀. Àwọn pẹ̀tẹ́lì kan máa ń ṣàkóso ìlànà ní ìta container, níbi tí a ti ń kọbi ara àwọn ìlànà àdúgbò tàbí tí wọ́n ń bá ti host fúnra rẹ̀ jà.
Ṣàyẹ̀wò pẹ̀lú àwọn kíkà àti ṣísàn kan tí a mú
Láti ọ̀dọ̀ olùgbà tí ó so mọ́, ṣàyẹ̀wò àdírẹ́sì gbangba tí iṣẹ́ ìta ń ròyìn. Bí ó bá bá àdírẹ́sì server mu, ìtumọ̀ ń ṣiṣẹ́; bí kò bá bá mu, àkójọpọ̀ ń jáde ní ọ̀nà mìíràn tàbí kò jáde rara. Lẹ́yìn náà dán iṣẹ́ tí a gbà lórí server àti ọ̀kan lórí íńtánẹ́ẹ̀tì gbangba wò, nítorí wọ́n ń gba ọ̀nà ọ̀tọ̀ọ̀tọ̀ la àkójọ ìlànà kan náà.
Lórí server, ka àwọn kíkà àkójọpọ̀ lórí àwọn ìlànà NAT àti FORWARD pẹ̀lú iptables -t nat -L -v -n kí o sì wo ṣísàn kan nínú ìmúdànù. Bí àdírẹ́sì olùgbà bá farahàn nínú ìmúdànù tí kò sì sí ìdáhùn tí ó tẹ̀lé, àlàfo wà lójú ọ̀nà ìpadàbọ̀ tàbí nínú àyọkúrò olùpèsè, kì í ṣe nínú profáìlì olùgbà. Fi orísun tí a mú wé àdírẹ́sì tí ìlànà ń tumọ̀ sí, nítorí àìbáramu túmọ̀ sí pé ìlànà mìíràn bá mu ní àkọ́kọ́. Ṣísàn kan tí a ṣàyẹ̀wò máa ń pinnu ju ojú-ìwé kan ìkàwé ìṣètò lọ.
Pa pool, àdírẹ́sì tí a tumọ̀ àti orúkọ interface mọ́ pọ̀ nínú àkọsílẹ̀ ìyípadà. Ìlànà tí ó tọ́ fún pool kan máa ń tumọ̀ èyí tí ó tẹ̀lé lọ́nà tí kò tọ́.