Dídá àdírẹ́sì padà láti skripti client-connect dà bí ẹni pé ó yẹ kí ó ṣètò IP alágbàṣe. Ṣùgbọ́n kò ṣe bẹ́ẹ̀: ọ̀nà kan ṣoṣo tí hóòkù ní sí ọ̀dọ̀ ẹ̀rọ ni fáìlì ìgbà díẹ̀ tí ọ̀nà rẹ̀ ń wá gẹ́gẹ́ bí àríyànjiyàn ìkẹyìn skripti, àti pé àdírẹ́sì gbọ́dọ̀ wà níbẹ̀ nínú ìlànà ifconfig-push. Skripti tí ó tẹ̀ àdírẹ́sì jáde tàbí tí ó jáde pẹ̀lú òdo láìkọ ohunkóhun ń dá alágbàṣe tí ó so pọ̀ pẹ̀lú àdírẹ́sì láti inú àkójọ, àti pé àkọsílẹ̀ ẹ̀rọ dà bí ẹni tí ó ní ìlera pátápátá.

Ìdàrúdàpọ̀ yẹ, nítorí pé ọ̀pọ̀lọpọ̀ hóòkù mìíràn ń dáhùn ní tòótọ́ nípasẹ̀ àmì àbájáde tàbí àwọn oníyẹ̀yẹ̀ àyíká. Èyí ní àdéhùn tirẹ̀, àdéhùn sì bẹ̀rẹ̀ pẹ̀lú orúkọ fáìlì.

Hóòkù ń kọ fáìlì, kì í ṣe iye ìdápadà

Ìkéde jẹ́ ìlà méjì: script-security 2 láti gba ìpè láàyè, lẹ́yìn náà client-connect /etc/openvpn/server/assign-address.sh. Nígbà tí alágbàṣe bá ṣe ìjẹ́rìí, ẹ̀rọ máa ń ṣiṣẹ́ skripti yẹn pẹ̀lú ọ̀nà fáìlì tí a ṣẹ̀dá tí a fi kún gẹ́gẹ́ bí àríyànjiyàn ìkẹyìn, èyí tí ó jẹ́ $1 nígbà tí ìkéde kò bá fi àwọn àríyànjiyàn àfikún tirẹ̀ ránṣẹ́. Ohun gbogbo tí a fi sí alágbàṣe yẹn ń lọ sínú fáìlì yẹn gẹ́gẹ́ bí ìtọ́ni lasan, ọ̀kan ní ìlà kọ̀ọ̀kan, gan-an bí wọ́n yóò ti farahàn nínú ìṣètò. Apò tí ó ń fi àwọn pàrámítà tirẹ̀ kún ń yí ipò padà, àmì àtọwọ́dá sì ni skripti tí ó ń kọ sí ọ̀nà tí ó dà bí --verbose.

Ipò àbájáde ni ìdajì kejì àdéhùn. Òdo túmọ̀ sí gbà àti kà fáìlì náà; ohunkóhun mìíràn ń kọ̀ ìsopọ̀, àti pé bẹ́ẹ̀ ni a ṣe ń kọ̀ ìdánimọ̀ tí a kò mọ̀ sí ojú-ìwé kí ó tó padà sínú àkójọ ní ìdákẹ́jẹ́ẹ́. Kọ ìtọ́ni kíkún kí o tó dá àṣeyọrí padà, kí fáìlì tí a kọ ní ìdajì má baà di ìṣètò alágbàṣe rí.

Ìtọ́ni méjì yẹ kí wọ́n gba àfiyèsí nítorí pé wọ́n ń bá gbogbo ohun mìíràn ṣiṣẹ́. ifconfig-push ń fi àdírẹ́sì múlẹ̀, nígbà tí route tí a tì ń sọ fún alágbàṣe ohun tí ó lè dé nípasẹ̀ ojú-òpó; dá ti àkọ́kọ́ padà kí o gbàgbé ti kejì, ìwọ yóò rí alágbàṣe tí ó ní àdírẹ́sì ṣùgbọ́n tí kò ní ibi láti lọ. Ìtò nínú fáìlì kò ṣe pàtàkì, ṣùgbọ́n kíkún ṣe pàtàkì. Hóòkù tí ó tì ọ̀nà fún ìpilẹ̀ kan tí kò sí ẹlẹgbẹ́ tí ó lè dé ni àṣìṣe kan náà tí a rí láti ẹ̀gbẹ́ kejì.

Àwọn ìwọlé ń wá nípasẹ̀ àwọn oníyẹ̀yẹ̀ àyíká: common_name, trusted_ip, ifconfig_pool_remote_ip àti àwọn ìyókù. Tọ́jú gbogbo wọn gẹ́gẹ́ bí okùn láti òde ẹ̀rọ, kì í ṣe gẹ́gẹ́ bí àpáàpá shell rí.

Mímọ àwọn àdírẹ́sì jẹ́ ìlànà, kì í ṣe ìṣirò

Ọ̀nà kúkúrú tí ó ń fa ìfẹ́ ni láti ṣàyẹ̀wò orúkọ ẹ̀rí àti lò ó àwọn nọ́mbà gẹ́gẹ́ bí òkítẹ́ẹ̀tì ìkẹyìn. Ìyẹn kì í ṣe olùpín, ó sì ń kùnà ní àwọn ọ̀nà lasan: orúkọ méjì tí ó ní ìparí kan náà ń bọ́ ara wọn, orúkọ tí ó parí ní 300 kì í ṣe àdírẹ́sì, ẹ̀rí tí olùṣàkóso tún orúkọ rẹ̀ ṣe ń gbé ẹ̀rọ kan lọ ní ìdákẹ́jẹ́ẹ́. Ṣàyẹ̀wò ẹ̀dá inú subnet, ìwọ̀n àwọn agbalejo tí ó ṣeé lò, àwọn àdírẹ́sì tí a ti pamọ́ àti àìlẹ́gbẹ́ ní gbogbo ìpè, kí o sì tọ́jú mímọ̀ náà nínú tábìlì tí ènìyàn lè kà.

Ẹnikẹ́ni tí ó ṣàkóso orúkọ náà ń ṣàkóso àdírẹ́sì náà, nítorí náà pinnu ohun tí common_name ń dúró fún ní tòótọ́ nínú ìfilélẹ̀ yìí. Pẹ̀lú username-as-common-name tí ó ṣiṣẹ́, ìdánimọ̀ ni ìwọlé kì í ṣe kókó ẹ̀rí. Má ṣe fi iye yẹn ránṣẹ́ sí ìgbéléwọ̀n shell, kí o má sì jẹ́ kí alágbàṣe ní ipa lórí ọ̀nà fáìlì.

Olùpín tí ó dá lórí ìforúkọsílẹ̀ gbọ́dọ̀ farada ìgbà-kan-náà. Fi àdírẹ́sì pamọ́ ní ọ̀nà átọ́míìkì, kojú kíkọ tí ó kùnà láìgbà alágbàṣe tí a ṣètò ní ìdajì, kí o sì fi àmì ìsopọ̀ tí ó ní í mọ́ gbogbo ìpín, kí ìpínyà alẹ́ẹ̀ tí ó pẹ́ láti ìpàdé àtijọ́ má baà lè dá àdírẹ́sì tí ọ̀dọ́ tuntun ti ní lọ́wọ́ sílẹ̀. Ọ̀pọ̀lọpọ̀ àwòrán ẹ̀rọ tí wọ́n ń pín àkójọ kan ń mú ìbéèrè yẹn le kí ó má ṣe àṣàyàn.

Ìtòlẹ́sẹẹsẹ ń pinnu ohun tí ifconfig-push túmọ̀ sí

Pẹ̀lú topology subnet lórí 10.77.0.0/24, ifconfig-push 10.77.0.20 255.255.255.0 jẹ́ àdírẹ́sì àti bojú-ẹ̀rọ rẹ̀. Lábẹ́ topology net30 àríyànjiyàn kejì kì í ṣe bojú-ẹ̀rọ rárá ṣùgbọ́n àdírẹ́sì ẹlẹgbẹ́, nítorí náà dídà ọ̀nà subnet sí ẹ̀rọ net30 ń fún ọ ní alágbàṣe tí ó so mọ́ ṣùgbọ́n tí kò lè gbé ìjáwọ̀ kọjá. Yí ìtòlẹ́sẹẹsẹ padà pẹ̀lú ìmọ̀, kì í ṣe kí àpẹẹrẹ kan dà bí ó bámu. Ẹ̀rọ tí ó ti ń ṣiṣẹ́ net30 ní àwọn alágbàṣe alààyè lórí àdírẹ́sì àtijọ́, nítorí náà ìyípadà yẹn jẹ́ ìṣípòpadà pẹ̀lú fèrèsé ìtọ́jú, kì í ṣe àtúnṣe ìlà kan.

Àwọn àdírẹ́sì dúró ṣinṣin gbọ́dọ̀ wà ní òde àkójọ alágbéèrè àti ní òde gbogbo ìpín dúró ṣinṣin mìíràn, pẹ̀lú àwọn tí àwọn fáìlì client-config-dir lasan ń pín. Bí ọ̀nà méjì bá lè ṣẹ̀dá àdírẹ́sì kan náà fún àwọn alágbàṣe oríṣiríṣi, ọ̀kan nínú wọn yóò ṣe bẹ́ẹ̀ ní ìparí.

Dán àwọn ipò mẹ́rin wò kí o tó gbẹ́kẹ̀lé e

Ṣiṣẹ́ àwọn àyẹ̀wò kan náà lórí ìdánimọ̀ tí a mọ̀, èyí tí a kò mọ̀, àtisopọ̀ àti ìkùnà ìforúkọsílẹ̀ tí a ṣe àfarawé. openvpn --config client.ovpn --verb 4 ń fi àdírẹ́sì tí a pín hàn nínú ìdáhùn push, àti lórí ẹ̀rọ grep -A2 PUSH_REPLY /var/log/openvpn/openvpn.log ń fìdí rẹ̀ múlẹ̀ ohun tí a rán ní tòótọ́. Fún ìdánimọ̀ tí a kò mọ̀, àbájáde tí a retí ni ìsopọ̀ tí a kọ̀, kì í ṣe àdírẹ́sì àkójọ.

Lẹ́yìn náà ṣàyẹ̀wò àpò tí daemon ń kọ àwọn fáìlì ìgbà díẹ̀ yẹn sínú. Skripti ń ṣiṣẹ́ nínú ipò iṣẹ́ tí a rẹ̀lẹ̀, nítorí náà ọ̀nà tí root lè kọ sínú ṣùgbọ́n tí daemon kò lè kọ ń yí gbogbo ìsopọ̀ padà sí ìkọ̀ pẹ̀lú àṣìṣe àṣẹ tí a sin ní ìlà mélòó kan nísàlẹ̀ nínú àkọsílẹ̀.

Ìpín kì í ṣe àṣẹ: àdírẹ́sì tí a fìdí múlẹ̀ kò síbẹ̀ ń fún ní àǹfààní sí gbogbo ibi tí ó wà lẹ́yìn ẹ̀rọ. Tọ́jú ìlànà ọ̀nà àti ògiri iná nínú ìpele rẹ̀, kí o sì ṣàyẹ̀wò rẹ̀ lòdì sí àdírẹ́sì tí o ṣẹ̀ṣẹ̀ fi múlẹ̀.

Àwọn àpilẹ̀kọ tó jọra