Profáìlì vpnc kan ń tún so pọ̀ dáadáa lẹ́yìn ìrìnàjò; mẹ́ta nínú wọn ń pa sokẹ́ẹ̀tì, ọ̀nà àti ipò olùyẹ́nà ara wọn ní ọ̀wọ̀ọ̀kan. Àkọsílẹ̀ ìtúnso tí ó wà pẹ̀lú àpò náà ni a kọ fún ọ̀nà kan ṣoṣo, nítorí náà ó tún bẹ̀rẹ̀ gbogbo profáìlì nígbàkugbà tí ọ̀kan nínú wọn bá ṣubú. Láti tún èyí ṣe, ohun mẹ́ta ni ó nílò: àwọn èbúté ibùdó ọ̀tọ̀ọ̀tọ̀, àyẹ̀wò tí ń dán iṣẹ́ gidi wò fún ọ̀kọ̀ọ̀kan profáìlì, àti ẹ̀wọ̀n kan tí a tò lẹ́sẹẹsẹ tí kì í ṣe ìsopọ̀ méjì lẹ́ẹ̀kan náà.

Fún ọ̀kọ̀ọ̀kan profáìlì ní èbúté ibùdó tirẹ̀

Profáìlì vpnc tí a bá fi sí èbúté ibùdó àkọ́kọ́ yóò bá profáìlì tí ń ṣiṣẹ́ tẹ́lẹ̀ jà. Ìsopọ̀ kejì yóò kùnà nígbà tí èkínní di èbúté mú, ipa ọ̀nà inú àkọsílẹ̀ yóò sì dàbí ìṣòro ẹnubodè dípò ìforígbárí ibùdó. Dípò èyí, fi ìlà kan sílẹ̀ fún ọ̀kọ̀ọ̀kan fáìlì profáìlì:

Local Port 0

Òdo ń jẹ́ kí kọ́nù yan èbúté àìpẹ́, nítorí náà a lè gbé profáìlì méjì kalẹ̀ lẹ́ẹ̀kan náà. Sọ fáìlì kọ̀ọ̀kan ní orúkọ ẹnubodè àti ẹgbẹ́ tí ó ń sìn, pa á mọ́ kí root nìkan lè kà á, kí o sì so mọ́ ẹni tí ó bá profáìlì mu nígbà gbogbo dípò àkọ́kọ́ tí a pín. Fáìlì àkọ́kọ́ tí a pín ni ọ̀nà tí àkọsílẹ̀ ń gbà tún so ọ̀nà tí kò tọ́ pọ̀ lẹ́yìn tí ẹnìkan bá yí orúkọ profáìlì padà.

Àwọn fáìlì profáìlì ń gbé ẹ̀rí ìdánimọ̀, nítorí náà àwọn ìyọ̀ǹda jẹ́ apá kan ìṣètò, kì í ṣe iṣẹ́ ilé. Fáìlì tí gbogbo ènìyàn lè kà lábẹ́ /etc/vpnc ń fi àṣírí ẹgbẹ́ fún gbogbo olùlò ibùdó. Pa ipò mọ́ ní 0600 pẹ̀lú root gẹ́gẹ́ bí olówó, kí o sì jẹ́ kí àwọn àkọsílẹ̀ ka fáìlì náà gẹ́gẹ́ bí root dípò dídà àwọn àṣírí sínú àwọn àríyànjiyàn. Ìdí nìyẹn tí àkọsílẹ̀ àyẹ̀wò kò fi gbọdọ̀ kọ àkóónú fáìlì sínú àkọsílẹ̀ rárá.

Dán iṣẹ́ kan wò fún ọ̀kọ̀ọ̀kan profáìlì, kì í ṣe àdírẹ́sì ọ̀nà

Ìbéèrè ìpàdé sí àdírẹ́sì ọ̀nà náà fúnra rẹ̀ ń fi hàn pé ojú-ìkàwé wà ní pàtàkì. Kò sọ nǹkan kan nípa bóyá olùgbàlejò tí ó wà lẹ́yìn rẹ̀ ṣì ń dé ọ̀dọ̀ ìṣẹ̀dá tí ó fi ọ̀nà náà lẹ́tọ̀ọ́. Ojú-ìkàwé lè wà ní òkè nígbà tí ọ̀nà tí ó wà lẹ́yìn rẹ̀ ti lọ tẹ́lẹ̀.

Dán iṣẹ́ kan wò fún ọ̀kọ̀ọ̀kan profáìlì pẹ̀lú àkókò TCP kúkúrú, kí o sì tún so profáìlì tí àyẹ̀wò rẹ̀ kùnà nìkan. Ìṣẹ́jú méjì ń ya ọ̀nà tí ó kú sọ́tọ̀ kúrò nínú ọ̀nà tí ó lọra, àyẹ̀wò TCP kò sì gbára lé bóyá wọ́n gbà ICMP láàyè ní ibìkan lórí ọ̀nà. Yí ohun tí a ń lépa àti orúkọ ìṣètò nìkan padà láàrín àwọn profáìlì:

#!/bin/bash
set -eu
if ! nc -z -w 2 10.63.7.20 8443; then
  /usr/sbin/vpnc-connect ops.conf
fi

Fi èyí pamọ́ gẹ́gẹ́ bí /usr/local/bin/ensure-vpn-ops.sh, sọ ọ́ di èyí tí a lè ṣiṣẹ́, kí o sì tún ṣe fún ọ̀kọ̀ọ̀kan profáìlì ní yíyí ohun tí a ń lépa àti orúkọ ìṣètò nìkan padà. Àyẹ̀wò tí ń dáhùn ìbéèrè ìlànà yóò là kọjá àwọn ẹnubodè tí ń ju ìpàdé nù ṣùgbọ́n tí wọ́n ṣì ń fi àwọn iṣẹ́ tí ó ṣe pàtàkì fún àwọn olùlò kọjá.

So àwọn àyẹ̀wò pọ̀ gẹ́gẹ́ bí ẹ̀wọ̀n kí wọn má bàa díje laéláé

Àkọsílẹ̀ ìtúnso tí ó wà pẹ̀lú àpò náà lè pe àwọn àyẹ̀wò rẹ lẹ́sẹẹsẹ, ìtẹ̀lé sì ni gbogbo kókó. Ìpè vpnc-connect méjì tí ń ṣiṣẹ́ papọ̀ ń tún tábìlì ìtọ́sọ́nà kọ ní ìtẹ̀lé tí ẹnikẹ́ni kò darí, ọ̀nà sì ni profáìlì aláàárẹ̀ ń gbà pàdánù ọ̀nà rẹ̀.

Pa àwọn ìpè mọ́ ní iwájú, fi ìdúró ṣẹ́kẹ́ẹ̀kẹ́ kún fún ojú-ìkàwé tí ó wà nísàlẹ̀, kí o sì ṣètò ẹ̀wọ̀n láti inú tábìlì cron ti root, nítorí root nìkan ló lè tún àwọn ọ̀nà ọ̀nà kọ:

#!/bin/bash
sleep 20
/usr/local/bin/ensure-vpn-ops.sh
/usr/local/bin/ensure-vpn-lab.sh

Pa ìtẹ̀lé mọ́ bákan náà láàrín àkọsílẹ̀ ìbẹ̀rẹ̀ àti àkọsílẹ̀ cron, nítorí ẹ̀wọ̀n tí ó ń ṣiṣẹ́ ní ìtẹ̀lé mìíràn nígbà ìbẹ̀rẹ̀ jẹ́ ètò mìíràn ní ti gidi. Nígbà tí profáìlì kan bá gbára lé àwọn ọ̀nà ẹlòmíràn, fi ìgbára lé náà sí iwájú kí o sì jẹ́ kí àyẹ̀wò tí ó tẹ̀lé kùnà láìléwu nígbà tí ọ̀nà àkọ́kọ́ ṣì ń gòkè.

Wo àkọsílẹ̀ náà, lẹ́yìn náà fọ́ ọ̀kan mọ́ọ̀mọ̀

Kọ ìlà kan fún ìgbà ìṣiṣẹ́ kọ̀ọ̀kan pẹ̀lú profáìlì, ohun tí àyẹ̀wò ń lépa, àbájáde àti ìgbésẹ̀ tí a ṣe. Láìsí èyí, ọ̀nà tí ń gbòn kiri ní ìṣẹ́jú kọ̀ọ̀kan yóò dà bí èyí tí kò ṣubú rárá, aṣiṣe àyẹ̀wò kò sì lè yàtọ̀ sí ìdádúró ẹnubodè. Àkọsílẹ̀ náà tún fi hàn pé ẹ̀wọ̀n náà kàn kan profáìlì tí ó kùnà nìkan. Kọ ọ́ sí ibi tí yóò gbé jáde lẹ́yìn àtúnbẹ̀rẹ̀, bí bẹ́ẹ̀ kọ́ ẹ̀rí yóò lọ pẹ̀lú ìlànà.

Lẹ́yìn náà fọ́ ọ̀nà kan mọ́ọ̀mọ̀ kí o sì wo ohun tí yóò ṣẹlẹ̀. Dúró profáìlì kan ṣoṣo kí o sì jẹ́rìí àwọn ìlànà àti ọ̀nà tí ó ṣì wà:

pgrep -a vpnc
ip -4 route show | grep -E '10[.]63|10[.]90'
tail -n 5 /var/log/ensure-vpn.log

Profáìlì tí a dúró náà nìkan ni ó yẹ kí a tún so pọ̀, àwọn ìpàdé mìíràn sì yẹ kí wọ́n pa àwọn ìlànà àti àwọn ọ̀nà wọn mọ́. Bí profáìlì méjì bá tún bẹ̀rẹ̀, ẹ̀wọ̀n rẹ ń ṣiṣẹ́ lẹ́gbẹ̀ẹ́ ní ibìkan tí o kò retí.

Ohun tí olùṣọ́ kò gbọdọ̀ ṣe

Olùṣọ́ tí ń tún gbogbo nǹkan bẹ̀rẹ̀ nígbàkugbà tí nǹkan kan bá kùnà yóò dàbí aláàárẹ̀ nígbà ìdánwò yóò sì fa ìdádúró nínú fèrèsé ìtọ́jú. Tún bẹ̀rẹ̀ fún ọ̀kọ̀ọ̀kan profáìlì, kì í ṣe ní gbogbo ayé rárá.

Yàn oníbàárà tí a ń tọ́jú nígbà tí ẹnubodè bá pèsè ọ̀kan fún ìlànà kan náà, kí o má sì kọ ọ̀rọ̀ ìpamọ́ mọ́ àkọsílẹ̀ tàbí kí o gbà á kọjá lórí ìlà pàṣẹ, nítorí fáìlì profáìlì ti ní àṣírí náà tẹ́lẹ̀. Bí iṣẹ́ kan bá ní láti ṣiṣẹ́ gẹ́gẹ́ bí olùlò lasan lẹ́yìn tí ọ̀nà bá gòkè, dín àwọn àǹfààní kù láti inú àkọsílẹ̀ dípò jẹ́ kí gbogbo ẹ̀wọ̀n ṣiṣẹ́ lábẹ́ àkọsílẹ̀ yẹn. Níkẹyìn, ka àwọn ọ̀nà padà lẹ́yìn ìtúnso, nítorí profáìlì lè padà wá pẹ̀lú àdírẹ́sì mìíràn tí a yàn án yóò sì fi ọ̀nà àtijọ́ sílẹ̀ tí kò sí àyẹ̀wò kankan tí ó dúró lórí àdírẹ́sì ọ̀nà yóò ṣe àkíyèsí rẹ̀ láé.

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