O yẹ̀wò tunnel náà, o run systemctl status openvpn, o sì rí active (exited) láìsí Main PID àti pẹ̀lú àkọsílẹ̀ process tí ó ṣofo. Kíkà àdáyébá ni pé iṣẹ́ náà bẹ̀rẹ̀, ó sì kú, nítorí náà o ṣí unit, o rí /bin/true, o sì pinnu pé package náà ti bàjẹ́. Nínú ìṣèlú Debian, ipò yẹn ni wrapper tí ń ṣiṣẹ́ bí a ti ṣe é, tunnel sì ń gbé nínú ọ̀kan lára instance unit tí ó ń bẹ̀rẹ̀. Unit àpapọ̀ kò ní sọ fún ọ rí i irú instance tí ó kọ́ ọ.

Kí ni active (exited) túmọ̀ sí gan-an lórí unit yìí

Unit tí a ti ṣe package jẹ́ iṣẹ́ ẹ̀ẹ̀kan: ExecStart rẹ̀ ni /bin/true, RemainAfterExit=yes sì ni ohun tí ó ń jẹ́ kí unit tí ó ti parí ṣì jẹ́ ìròyìn bí active (exited). Yọ ìtọ́nisọ́nà yẹn kúrò, iṣẹ́ /bin/true kan náà tí ó ṣàṣeyọrí yóò parí ní inactive (dead), èyí sì ni ipò gan-an tí àwọn ènìyàn ń retí tí wọ́n sì ń kà ní ìdàkejì. Àṣẹ náà kì í ṣe ju apò kan lọ, unit sì ń sọ̀rọ̀ nípa iṣẹ́ tí àwọn unit mìíràn ń ṣe. Kò sí ohun tí ó bàjẹ́ nínú ètò yẹn, pípààrọ̀ /bin/true sì ń yí àdéhùn package padà, kì í ṣe tunnel.

Wrapper ń fi iṣẹ́ lé ẹlòmíràn. Ó ń bẹ̀rẹ̀ àwọn instance unit tí ìṣètò package tàbí generator systemd rẹ̀ pèsè, ìdí ni pé àkọsílẹ̀ process tí ó ṣofo kò fi ohunkóhun hàn nípa tunnel. Nígbà tí a kò bá yan instance kankan, wrapper ṣì ṣàṣeyọrí, kò sì ṣì bẹ̀rẹ̀ ohunkóhun. Ipò náà ń dáhùn bóyá wrapper ti ṣiṣẹ́, kì í ṣe bóyá tunnel wà.

Ka ìlà mẹ́ta tí ìjáde status ṣe, kì í ṣe ọ̀rọ̀ tí ó wà nínú àkọsílẹ̀. Loaded ń dárúkọ fáìlì unit tí systemd kà, Active ń gbé àmì àkókò ìgbésẹ̀ àṣeyọrí tí ó kẹ́yìn, àìsí Main PID sì bá iṣẹ́ ẹ̀ẹ̀kan tí ó ti parí mu. Àwọn ìlà mẹ́ta yẹn tún ni ọ̀nà láti yà wrapper yìí sí iṣẹ́ tí ó já bọ́ lẹ́yìn ìṣẹ́jú kan.

Ṣe àkọsílẹ̀ àwọn unit kí o tó ka status lẹ́ẹ̀kan sí i

Bèèrè lọ́wọ́ systemd ohun tí ó wà kí o tó béèrè ohun tí ń ṣiṣẹ́. Template lè wà nígbà tí a kò tíì dá instance kankan, unit tí a dá nìkan sì ni ó ń gbé tunnel. Bẹ̀rẹ̀ pẹ̀lú àkójọ tí a ti gbé wọlé:

systemctl list-units 'openvpn*'

Àkọsílẹ̀ yẹn ni ohun tí systemd gbé wọlé ní àkókò yìí, ó sì jẹ́ ohun tí ó súnmọ́ àkọsílẹ̀ tunnel jùlọ. Àwọn fáìlì unit tí a ti fi sórí ẹ̀rọ ń dáhùn ìbéèrè mìíràn, àkọsílẹ̀ yẹn sì ṣì ń fi template hàn nígbà tí a kò bá dá ohunkóhun:

systemctl list-unit-files 'openvpn*'

Ka àkọsílẹ̀ méjèèjì papọ̀, nítorí template nínú èkejì àti instance nínú èkíní jẹ́ ìdáhùn méjì tí ó yàtọ̀. Template tí ó wà àti instance tí ń ṣiṣẹ́ kì í ṣe òtítọ́ kan náà, èkejì nìkan sì ni ó ń túmọ̀ sí tunnel. Àwọn ìtòlẹ́sẹẹsẹ package tún yàtọ̀ láàrín àwọn ìpín àti àwọn ẹ̀dà OpenVPN. Template openvpn@ àtijọ́, pair client àti server tí ó yà sọ́tọ̀, àti wrapper ìpín lè jẹ́ ẹ̀tọ́ nínú package tiwọn.

Ṣe àdàpọ̀ pẹ̀lú ẹ̀rọ rẹ, kì í ṣe pẹ̀lú ìtọ́sọ́nà tí o rí. Orúkọ instance nínú ìjáde ẹlòmíràn lè jẹ́ office nígbà tí tìrẹ jẹ́ home tàbí work. Ohun tí a ń gbé kúrò ni ọ̀nà, kì í ṣe ọ̀rọ̀.

Tẹ̀lé orúkọ instance lọ sí fáìlì tí ó ń kà

Nínú template client upstream, àpò iṣẹ́ unit náà ni /etc/openvpn/client, àṣẹ rẹ̀ sì ń gbé %i.conf láti ibẹ̀, nítorí náà openvpn-client@office ń ka /etc/openvpn/client/office.conf. Fi ìtẹ̀sí yẹn múlẹ̀ lórí unit tí a ti fi sórí ẹ̀rọ dípò gbígbẹ́kẹ̀lé àpẹẹrẹ, nítorí template rẹ lè jẹ́ àtijọ́ tàbí àtúnkọ láti ọ̀dọ̀ ìpín:

systemctl cat [email protected]

Ka àwọn drop-in tí ó farahàn ní ìsàlẹ̀ ìjáde yẹn, nítorí fáìlì lábẹ́ .d/ lè yí ExecStart, àpò iṣẹ́ tàbí ipa ọ̀nà ìṣètò padà. Profile tí o gba sílẹ̀ gẹ́gẹ́ bí office.ovpn kì í ṣe fáìlì tí instance ń ṣí. Àlàfo yẹn ni ìdí tí ó sábà jẹ́ kí àṣìṣe dárúkọ ipa ọ̀nà tí o kò tíì ṣàtúnṣe rí.

Àwọn ipa ọ̀nà ìbátan nínú profile ni àwọn páká kan. Gbígbé fáìlì pàtàkì kúrò nígbà tí àwọn ìtọ́kasí ca, cert àti key ṣì jẹ́ ìbátan ń pààrọ̀ àṣìṣe fáìlì tí ó sọnù pẹ̀lú àṣìṣe fáìlì mìíràn tí ó sọnù. Èkejì ń tọ́ka sí fáìlì tí o dá ọ́ lójú pé ó wà, nítorí náà àpò profile ṣe pàtàkì ju orúkọ fáìlì lọ.

Bẹ̀rẹ̀ rẹ̀, lẹ́yìn náà ka journal instance yẹn

Bẹ̀rẹ̀ instance tí o ṣẹ̀ṣẹ̀ yẹ̀wò, nítorí log ti unit àpapọ̀ kò ní ní àwọn àṣìṣe tunnel. Lẹ́yìn náà ka journal ti boot yìí kí o sì wá àṣìṣe ìṣètò, àṣìṣe àgbàwọlé fáìlì àti àṣìṣe ìsopọ̀ ní ọ̀nà yẹn, nítorí ọ̀kọ̀ọ̀kan ń kùnà ní ìpele tí ó yàtọ̀.

sudo systemctl start [email protected]
journalctl -u [email protected] -b

Bíbẹ̀rẹ̀ àti mímú ṣiṣẹ́ jẹ́ ìpinnu tí ó yàtọ̀: start ń ṣiṣẹ́ unit ní báyìí, enable ń ṣètò boot tí ó kàn, enable --now sì ń ṣe méjèèjì ní ìgbésẹ̀ kan. daemon-reload ń ka àwọn ìtumọ̀ unit lẹ́ẹ̀kan sí i, kò sì tún process tí ń ṣiṣẹ́ bẹ̀rẹ̀, kò sì fi profile tí a ṣàtúnṣe sílò. Lẹ́yìn tí o bá yí profile padà, tún instance bẹ̀rẹ̀, nítorí ìyẹn ni ó ń ka fáìlì lẹ́ẹ̀kan sí i.

Má ṣe fi olùtọ́jú kejì sórí tunnel kan náà

NetworkManager àti àwọn olùtọ́jú ìpàdé OpenVPN 3 ní ipò ìsopọ̀ tiwọn, instance systemd lẹ́gbẹ̀ẹ́ ọ̀kan nínú wọn sì ń fi olùní méjì sórí tunnel kan náà. Àmì ni tunnel tí ó gòkè tí a sì rọ́pò rẹ̀ ní ìṣẹ́jú mélòó kan, tàbí èyí tí ó kọ̀ láti dúró. Yan olùtọ́jú tí ìpín rẹ ṣe àkọsílẹ̀ fún desktop, kí o sì lo systemd ní ìmọ̀ọ́mọ̀ lórí server.

Ṣàyẹ̀wò bóyá olùní kan ti wà kí o tó bẹ̀rẹ̀ instance. Nígbà tí applet desktop bá fi ìsopọ̀ hàn, instance tí o bẹ̀rẹ̀ ń díje pẹ̀lú rẹ̀ dípò pípé rẹ̀. Pa olùtọ́jú tí o kò lò, dípò ṣíṣe méjèèjì kí o sì retí pé ìtòlẹ́sẹẹsẹ yóò dúró. Ìforígbá yẹn tún ń ṣàlàyé àwọn journal tí a ti fi tunnel múlẹ̀ tí process tí o kò tíì bẹ̀rẹ̀ rí sì wó o.

Dáhùn ìbéèrè ìpilẹ̀ pẹ̀lú orúkọ instance, fáìlì tí ó kà àti ìlà journal tí ó kùnà.Àwọn àkọsílẹ̀ OpenVPN nípa ìsopọ̀ systemd ń ṣàpèjúwe ìtòlẹ́sẹẹsẹ template àti ìtẹ̀sí fáìlì tí a ti ń yanjú orúkọ instance.

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