Ẹnubodè méjì, VPN kan: kí ni ìdí tí OpenVPN fi ń yan ọ̀nà òkè tí kò tọ́
Tunnel náà dára; socket náà ń jáde nípasẹ̀ WAN tí kò tọ́. Ka àdírẹ́sì ẹlẹgbẹ́ tó ń ṣiṣẹ́, fi ọ̀nà host múlẹ̀, kí o sì wo àwọn òfin ìlànà kọ́kọ́.
Ọ̀nà òkè méjì, tunnel kan, àti pé ìrìnàjò ń jáde nípasẹ̀ ọ̀nà tí ìwọ kò yàn. Àwọn ẹ̀ka-ìsopọ̀ àdáni wà, àkọsílẹ̀ náà sọ nípa ìsopọ̀ tó ṣàṣeyọrí, àti pé ọ̀nà tí wọ́n wọ̀n ni ó ń gbé e. Kò sí ohunkóhun nínú ìjáde OpenVPN tó mẹ́nu kan ẹnubodè, nítorí pé ẹrọ ìsopọ̀ kò yàn ọ̀kan rí. Ó ṣí socket sí àdírẹ́sì jíjìnnà, ó sì fi í sílẹ̀ fún kọ́npútà láti pinnu bí a ṣe lè dé àdírẹ́sì yẹn.
Àdírẹ́sì tunnel kì í ṣe ibi ìparí
Ọ̀nà méjì tó yàtọ̀ wà nínú ìpàdé kọ̀ọ̀kan. Ọ̀nà ìta ń gbé ìrìnàjò tí a ti yọjú dé àdírẹ́sì gbangba ti sẹ́bà. Ọ̀nà inú ń gbé gbogbo ohun tí sẹ́bà ń tì sínú tunnel, àwọn òfin ìtọ́sọ́nà ọ̀kan kò sì ní ipa lórí èkejì.
Àkọsílẹ̀ remote nínú profáìlì ń dárúkọ ibi ìlọ ìta, nítorí náà ìyẹn ni àdírẹ́sì tí a gbọ́dọ̀ fi múlẹ̀. Ìyẹn tún ni iye tí ń yí padà nígbà tí orúkọ host bá yanjú lọ́nà mìíràn tàbí profáìlì bá kójọ remote púpọ̀.
Wá àdírẹ́sì tí ẹrọ ìsopọ̀ pe ní tòótọ́
Ka socket tó ń ṣiṣẹ́ dípò fáìlì ìṣètò. Tábìlì socket fi ẹlẹgbẹ́ tí ìlànà náà so mọ́ gan-an hàn, ìyẹn sì ni iye tí ìyàtọ̀ gbọ́dọ̀ bá mu. A lè ṣàtúnṣe profáìlì lẹ́yìn tí ìpàdé bá bẹ̀rẹ̀, socket sì ni ẹ̀rí kan ṣoṣo nípa ohun tí a pe:
ss -tunp | grep -i openvpn
journalctl -u openvpn-client@work --no-pager | grep -i "Peer Connection Initiated"
Ìlà àkọsílẹ̀ ń dárúkọ àdírẹ́sì àti ibùdó ẹlẹgbẹ́ ní àkókò ìsopọ̀. Bí kò bá bá profáìlì mu, ohun kan níwájú ẹrọ ìsopọ̀ ń tún ibi ìlọ kọ ṣáájú kí ìsopọ̀ tó bẹ̀rẹ̀.
Wo ẹbí àdírẹ́sì pẹ̀lú. Profáìlì ọ̀pá méjì lè so mọ́ nípasẹ̀ IPv6 nígbà tí ìyàtọ̀ rẹ kò bo bí i IPv4 nìkan, nígbà náà ìrìnàjò ń tẹ̀lé òfin mìíràn ju èyí tí o kọ. Bẹ́ẹ̀ náà ni fún proxy tó ń dáhùn ní orúkọ ibi ìparí. Àwọn ìṣẹ̀lẹ̀ méjèèjì ń mú tunnel tó ń ṣiṣẹ́ jáde nígbà tí ọ̀nà rẹ kò ṣe ohunkóhun.
Fi ibi ìparí múlẹ̀ kí o sì ka ìtẹ̀lé ìlànà
Ọ̀nà host ṣe pàtó ju ọ̀nà àìlẹ́gbẹ́kẹ́lẹ́ èyíkéyìí lọ. Nítorí náà /32 fún àdírẹ́sì ẹlẹgbẹ́ ń borí nínú tábìlì tó ní í. Ìrísí tó wọ́pọ̀ ń dárúkọ ẹnubodè àti ẹ̀rọ ní kedere:
ip route add 203.0.113.40/32 via 192.168.10.1 dev eth0
Ọ̀nà yẹn ń ṣèrànwọ́ nìkan bí ìwádìí bá dé tábìlì yẹn. Àwọn òfin ìlànà ni a ń ṣàyẹ̀wò lẹ́sẹẹsẹ, ìbámu àkọ́kọ́ sì ń pinnu, nítorí náà òfin tó ń fi gbogbo nǹkan lọ sí tábìlì kejì yẹ̀wò ọ̀nà host rẹ nínú main. Ka àwọn òfin kí o tó rò pé ọ̀nà náà ní àṣẹ:
ip rule show
ip route get 203.0.113.40
Bèèrè àṣẹ kejì pẹ̀lú àdírẹ́sì orísun tàbí àmì kan náà tí ẹrọ ìsopọ̀ ń lò nígbà tí ìlànà bá gbára lé wọn. Ó ń sọ ọ̀nà tí kọ́npútà yóò yàn, èyí tó jẹ́ ẹ̀rí nípa ìwádìí kì í ṣe ẹ̀rí pé socket tó ń ṣiṣẹ́ ń lò ọ̀nà yẹn.
Nígbà tí ibi ìparí bá ṣí kiri
Orúkọ host tí ó ń yanjú sí àdírẹ́sì púpọ̀ ń sọ /32 tó dúró ṣinṣin di asán ní kété tí ìdáhùn bá yí padà. Profáìlì tó ní ìlà remote púpọ̀ ní ìṣòro kan náà, nítorí pé ẹrọ ìsopọ̀ lè balẹ̀ sórí èyíkéyìí nínú wọn. Sọ ọ̀nà náà di tuntun láti inú àwọn ìkọ́kọ̀ ìgbésí-ayé ẹrọ ìsopọ̀ fúnra rẹ̀ dípò kí o fi ọwọ́ kún un. up script tó ń ka ẹlẹgbẹ́ tí a ti gbàdúrà, tó sì fi ọ̀nà host sórí ẹ̀rọ, ń pa ìyàtọ̀ mọ́ ní ìbámu pẹ̀lú òtítọ́, down script tó bá a mu sì ń yọ ọ́ kúrò.
Ṣàkọsílẹ̀ ìsọdọ̀tun ní ibi kan náà pẹ̀lú ìyókù ìṣètò ìtọ́sọ́nà host. Ọ̀nà tó wà nìkan títí dé ìtúnbẹ̀rẹ̀ tó kàn jẹ́ ìdánwò, kì í ṣe àtúnṣe.
Pa ìlànà inú mọ́ lọ́tọ̀
Yíyí ọ̀nà ìta kò fún ni ní àǹfààní sí ẹ̀ka-ìsopọ̀ àdáni tuntun, kò sì yí i padà irú ibi tí sẹ́bà ń tì sínú tunnel. Ọ̀nà ẹ̀yà ìsàlẹ̀ ń yan waya; àwọn ọ̀nà tí a tì ń yan ohun tó ń wọ inú tunnel. Pípà àwọn ìpinnu méjèèjì mọ́ lọ́tọ̀ ni ó ń jẹ́ kí ìpín náà lè ṣe àsọtẹ́lẹ̀.
Bí èròǹgbà bá kàn jẹ́ láti pa ìrìnàjò tí a yọjú mọ́ kúrò lọ́dọ̀ ọ̀nà tí wọ́n wọ̀n, fi ọ̀nà àìlẹ́gbẹ́kẹ́lẹ́ sílẹ̀ kí o sì fi ìyàtọ̀ host kan ṣoṣo kún un. Yíyí ọ̀nà àìlẹ́gbẹ́kẹ́lẹ́ gbogbo ẹ̀rọ padà láti gbé ìsopọ̀ VPN kan sókè yóò ba gbogbo ohun èlò mìíràn lórí host jẹ́.
Fi ìdí èsì náà múlẹ̀ pẹ̀lú àwòrán méjì tó yàtọ̀: àdírẹ́sì ìbílẹ̀ àti ẹ̀rọ socket, àti ọ̀nà tí ibi ìlọ àdáni ń yanjú sí. Nígbà tí àwọn méjèèjì bá bá èròǹgbà rẹ mu, ìpín náà jẹ́ òtítọ́. Ìwé ìtọ́nisọ́nà OpenVPN 2.6 ń ṣàlàyé àwọn àṣàyàn remote àti ìdè ìbílẹ̀ tó ń pinnu àdírẹ́sì tí ẹrọ ìsopọ̀ yóò pè.