Ibi tí ipin dátà oṣù kan yẹ kí ó wà fún àkọsílẹ̀ OpenVPN kọ̀ọ̀kan
Ipin tí a máa ń tún ṣe ní gbogbo ìsopọ̀ tuntun kì í ṣe ààlà. Tọpinpin lílò fún àkọsílẹ̀ kọ̀ọ̀kan, gba ìyàtọ̀ byte kọ̀ọ̀kan lẹ́ẹ̀kan, kí ìparí lè dí ìwọlé.
Ipin tí a máa ń tún ṣe ní gbogbo ìgbà tí ọ̀nà ìsàlẹ̀ bá tún so pọ̀ kì í ṣe ààlà, àti pé ìyẹn gan-an ni a máa ń rí nígbà tí a bá so ẹ̀rọ ìka byte mọ́ sẹ́bà VPN láìsí ibi kan láti tọ́jú ipò tí ó dúró ṣinṣin. Ẹ̀rọ ìka náà jẹ́ ti ìpàdé kan; ipin náà jẹ́ ti ènìyàn kan tàbí ti àdéhùn ẹ̀rọ kan. Gbogbo ìṣòro ẹ̀yà-ìṣe yìí wá láti inú àìbáramu yẹn, nítorí náà àwọn àyẹ̀wò tí ó wà nísàlẹ̀ dá lórí ibi tí ipò ń gbé àti irú ìpele tí a gbà láàyè láti pinnu.
So ipin mọ́ àkọsílẹ̀, kì í ṣe mọ́ ọ̀nà ìsàlẹ̀
Bẹ̀rẹ̀ nípa dídárúkọ kókó ipin náà. Ènìyàn kan lè ní ẹ̀rí ẹ̀rọ mẹ́ta, kò sì yẹ kí ọ̀kankan nínú wọn gba ìpín owó oṣù tí ó dúró ní ara rẹ̀ kìkì nítorí pé wọ́n ń ṣe ìjẹ́rìí lọ́tọ̀ọ̀tọ̀. Ìdánimọ̀ àkọsílẹ̀ tí ó dúró ṣinṣin tí ó gba àwọn ìsopọ̀ tuntun, àwọn àdírẹ́sì ọ̀nà ìsàlẹ̀ tuntun àti gbígbé lọ sí ẹnubodè kejì la já ni èyí tí ipin lè lò. Orúkọ gbogbogbòò ẹ̀rí ń ṣiṣẹ́ gẹ́gẹ́ bí kọ́kọ́rọ́ yẹn nígbà tí ìlànà ìfilọ́lẹ̀ rẹ bá ṣèlérí àkọsílẹ̀ kan fún orúkọ kọ̀ọ̀kan nìkan.
Àdírẹ́sì ọ̀nà ìsàlẹ̀ tí a yàn kì í ṣe ìdáhùn rárá. A máa ń tún àwọn àdírẹ́sì lò, a ń pín àwọn adágún, àti pé àkọsílẹ̀ kan náà lè farahàn lẹ́ẹ̀mejì lórí ẹnubodè méjì ní ìṣẹ́jú kan náà. Bí ìwé-ìṣirò bá gbára lé àdírẹ́sì, yíyọ kúrò àti títún so pọ̀ tó láti tún kún ojútò náà.
Ṣàkọsílẹ̀ tó tó fún ìpàdé kọ̀ọ̀kan kí ìṣirò lè ṣe àyẹ̀wò: àkọsílẹ̀ náà, àkókò ìsanwó, àpẹẹrẹ ẹnubodè, ìdánimọ̀ ìpàdé, àwọn ẹ̀rọ ìka tí a kẹ́yìn àti àpapọ̀ tí a fọwọ́ sí. Fi ìran ìbẹ̀rẹ̀ daemon kún ìdánimọ̀ ìpàdé, nítorí pé sẹ́bà tí a tún gbé ṣiṣẹ́ máa ń tún ID oníbàárà lò àti pé ìbámu tí kò jinlẹ̀ yóò jogún ìlà ìpìlẹ̀ tí ó kọjá.
Pinnu ẹyọ, ìtọ́sọ́nà àti ààlà ìtúnṣe
Ó gbọ́dọ̀ pinnu ìtumọ̀ mẹ́rin ní ìkọ̀wé kí ìkójọ kankan tó bẹ̀rẹ̀. Ṣé ipin ń ka byte tí oníbàárà ń rán, tí ó ń gbà, tàbí àpapọ̀ àwọn méjèèjì? Ṣé gigabyte kan jẹ́ byte 10^9 tàbí 2^30? Ní wákàtí àdúgbò wo àti ní agbègbè àkókò wo ni àkókò náà ń yí? Àti pé kí ni ẹ̀rọ ìka náà ń díwọ̀n gan-an, níwọ̀n bí a ti ka àfikún ọ̀nà ìsàlẹ̀ àti àtúnránṣẹ́ pẹ̀lú, tí a kò sì ka ìwọ̀n fáìlì ohun-èlò àti ìwé-ìnáwó olùpèsè?
Kò sí ìyànlẹ̀ kankan nínú ìwọ̀nyí tí ó jẹ́ àṣìṣe, ṣùgbọ́n ìmúṣẹ àti nọ́mbà tí oníbàárà ń rí gbọ́dọ̀ bá ara wọn mu. Ìdajì méjì ti ètò kan náà tí kò gbà ara wọn lórí GiB, tàbí lórí yíyí tí ó ṣẹlẹ̀ ní ọ̀gànjọ́ UTC dípò àkókò àdúgbò, ń mú irú tikẹ́ẹ̀tì tí ó ń pa ìgbẹ́kẹ̀lé mọ́ ipin gbogbo rẹ̀ jáde.
Yí àpapọ̀ byte padà sí ìyàtọ̀ kan tí a gba
Ojú-ọ̀nà ìṣàkóso ń jábọ̀ àwọn ìlà BYTECOUNT_CLI alákòókò tí ó ń gbé ID oníbàárà pẹ̀lú àpapọ̀ byte àkójọ ní ọ̀nà kọ̀ọ̀kan, àti pé àṣẹ bytecount ń pinnu ìgbà tí wọ́n máa ń dé. Láti ojú-ìwòye sẹ́bà, nọ́mbà tí a gbà ń ka byte tí oníbàárà rán àti nọ́mbà tí a rán ń ka byte tí a fi dé ọ̀dọ̀ rẹ̀. Ṣètò ààlà sí ohun tí ìwé-ìṣirò lè gbà; ààlà tí ó kúrú gan-an ń ra ìpéye tí ìwọ kò ní ní ti gidi.
Ìdíwọ̀n kan ń ṣe àwòrán gbogbo àpẹẹrẹ: sokẹ́ẹ̀tì ìṣàkóso ń gba ìsopọ̀ ìṣàkóso kan ṣoṣo. Olùjáde àbójútó, GUI àti olùṣàkóso rẹ kò lè kọ̀ọ̀kan ṣí tiwọn. Pinnu irú ìlànà tí ó ni ikanni náà kí àwọn yòókù lè ka ipò láti inú rẹ̀, nítorí pé ojú-ọ̀nà yìí ń fúnni ní àwọn ìgbésẹ̀ ìṣàkóso àti pé kò yẹ kí a ṣí i síta kúrò lórí olùgbàlejò.
rx_delta = sample.rx_now - session.prev_rx
tx_delta = sample.tx_now - session.prev_tx
charge = rx_delta + tx_delta
# same transaction:
ledger.total += charge
session.prev_rx, session.prev_tx = sample.rx_now, sample.tx_now
Fọwọ́ sí àwọn ìlà ìpìlẹ̀ tuntun àti ìbísí lílò papọ̀, kí àtúnṣe àpẹẹrẹ kan má gba nǹkan kan dípò gbígbá lẹ́ẹ̀mejì. Ẹ̀rọ ìka tí ó ń sẹ́yìn jẹ́ àmì, kì í ṣe gbèsè: ó túmọ̀ sí pé a ti rọ́pò ìpàdé tàbí pé a ti tún daemon gbé ṣiṣẹ́, àti pé ìdáhùn tí ó tọ́ ni láti bá ìdánimọ̀ ìpàdé mu dípò kíkọ iye òdì sílẹ̀.
Ọ̀nà yíyọkúrò nílò ìṣọ́ra kan náà. Bí ìṣẹ̀lẹ̀ ìkẹyìn bá gbé àpapọ̀ ìparí ìpàdé, gba ìyàtọ̀ nínú àpẹẹrẹ tí a fọwọ́ sí kẹ́yìn nìkan. Fífi àpapọ̀ kíkún kún lẹ́yìn tí a ti gba àpẹẹrẹ alákòókò jẹ́ ìkàsí méjì tí ó wọ́pọ̀ jùlọ nínú àwọn ètò ipin ilé. Àwọn ìpàdé tí ó ń kọjá ààlà àkókò nílò ìlànà pẹ̀lú, nítorí pé àpapọ̀ ìparí kan kò gbé ìsọfúnni nípa ìgbà tí àwọn byte kọjá ọ̀gànjọ́.
Ìparí gbọ́dọ̀ kọ ìwọlé, kì í ṣe kíkàn ọ̀nà ìsàlẹ̀ nìkan
Nígbà tí àkọsílẹ̀ bá dé ààlà rẹ̀, nǹkan méjì gbọ́dọ̀ ṣẹlẹ̀: àwọn ìpàdé tí ó wà yóò parí, a ó sì kọ àwọn tuntun. Ìlànà ìṣàkóso ń pèsè client-kill nípasẹ̀ ID oníbàárà, èyí tí ó ń bójú mu ìdajì àkọ́kọ́ nígbà tí o bá kà gbogbo ìpàdé alààyè ti àkọsílẹ̀ náà dípò kíkàn àdírẹ́sì kan ṣoṣo tí o kàn kíyèsí.
Ìdajì kejì ni ibi tí àwọn àpẹẹrẹ ipin ti ń kùnà. Kíkàn nìkan jẹ́ ìdíje pẹ̀lú ìka ìsopọ̀ tuntun oníbàárà, èyí tí yóò fi inú dídùn padà wá ní ìṣẹ́jú àáyá díẹ̀. Ìwọlé gbọ́dọ̀ gbèrò ìwé-ìṣirò pínpín, àti nínú ìṣètò ẹnubodè púpọ̀ àyẹ̀wò yẹn kò lè jẹ́ fáìlì fún ẹ̀rọ kọ̀ọ̀kan. Gbogbo àpẹẹrẹ tí ó lè gba ìwọlé gbọ́dọ̀ rí ipò ìparí kan náà.
Àwọn ìsopọ̀ tuntun tí ó dá lórí token yẹ fún ìdánwò tirẹ̀. OpenVPN 2.6 lè ṣe àyẹ̀wò token ìpàdé ní inú pẹ̀lú auth-gen-token, ní fífo ìpè ìjẹ́rìí ita tí olùṣàkóso rẹ ń lò láti fi ààlà náà ṣiṣẹ́. Nítorí náà token tí ó ṣì wà ní ìgbà yẹn ń fi ìdánimọ̀ hàn, kì í ṣe ipin tí ó kù, àti pé gbogbo àpẹẹrẹ oníbàárà tuntun gbọ́dọ̀ ṣì gbèrò ìwé-ìṣirò. Bí o bá dípò èyí tan management-client-auth, olùṣàkóso yóò di olùjẹ́rìí yóò sì jogún ojúṣe láti fi ara rẹ̀ ṣàyẹ̀wò ipò ìpàdé àti láti kọ àwọn token tí ó ti kọjá àkókò tàbí tí kò tọ́.
Gbà àfikún tí ìṣàyẹ̀wò ń mú jáde
Àbójútó alákòókò pẹ̀lú yíyọkúrò ń fún ọ ní ipin tí a ṣàyẹ̀wò pẹ̀lú ìfaradà tí a mọ̀. Oníbàárà lè kọjá ní nǹkan bí ààlà ìròyìn kan pẹ̀lú àkókò tí olùṣàkóso nílò láti ṣiṣẹ́, àwọn ìpàdé alákòókò kan náà lórí àkọsílẹ̀ kan sì ń ṣe fèrèsé yẹn ní ọ̀pọ̀ ìlọ́po. Sọ ọ́ nínú ojú-ọ̀nà dípò láti polongo gbígé gbẹ́kẹ̀ ní byte ìkẹyìn tí ìwọ kò lè pèsè.
Òrùlé líle gidi jẹ́ ìṣòro ìmọ̀-ẹ̀rọ mìíràn: ìmúṣẹ nínú ọ̀nà gbígbé jáde, tí a so mọ́ àkọsílẹ̀ kan náà káàkiri àwọn ìpàdé. Kíka àwọn ẹ̀rọ ìka kíákíá kì í ṣe ohun kan náà, kò sì dúró lórí oníbàárà tí ó kàn ń ṣí àwọn ọ̀nà ìsàlẹ̀ sí i.
Kí o tó gbé kalẹ̀, ṣe àwọn ọ̀ràn ìgbàlá tí ó fọ́ àwọn ìmúṣẹ tí kò jinlẹ̀: àwọn ìsopọ̀ tuntun àtúnṣe, ẹ̀rọ méjì lẹ́ẹ̀kan, àtúngbéṣẹ́ olùṣàkóso àti ẹnubodè, ìṣẹ̀lẹ̀ yíyọkúrò tí ó sọnù, yíyí ààlà ní àárín ìpàdé, àti ìgbìyànjú ìsopọ̀ tuntun pẹ̀lú token lẹ́sẹ̀kẹsẹ̀ lẹ́yìn ìparí. Lẹ́yìn náà pinnu ipò ìkùnà fún àwọn ìdáwọ́lé ìṣirò owó. Ìwé-ìṣirò tí ó dúró ṣinṣin ń dáàbò bo lílò tí o kọ sílẹ̀; kò lè sọ àwọn àkíyèsí tí kò dé rí padà, àti pé oníbàárà yẹ láti mọ èyí tí ó wà nínú àwọn ipò méjì yẹn.