Títọpin àwọn pákẹ́tì ìṣàkóso OpenVPN: tls-auth ṣáájú TLS
HMAC ti tls-auth wà lórí àpò ìṣàkóso, kì í ṣe nínú ìfọwọ́sowọ́pọ̀ TLS. Bá kọ́kọ́rọ́, ìtọ́sọ́nà àti digest mu, lẹ́yìn náà ṣàyẹ̀wò láìyọ ààbò kúrò.
Ìkùnà tls-auth ni a sábà máa ń ròyìn gẹ́gẹ́ bí ìṣòro ìfọwọ́sowọ́pọ̀, bí ó tilẹ̀ jẹ́ pé kò tíì rí bẹ́ẹ̀ rí. A ń ṣàyẹ̀wò HMAC lórí pákẹ́tì ìṣàkóso kí ìṣiṣẹ́ TLS kankan tó bẹ̀rẹ̀, nítorí náà kọ́kọ́rọ́ tàbí ìtọ́sọ́nà tí kò báramu ń mú ìkùnà jáde tí ó dàbí ìṣòro ẹ̀rí tí a sì ń pinnu ní ìpele méjì ṣáájú. Bí a bá ka àpò náà gẹ́gẹ́ bí ohun tirẹ̀, ìwádìí yóò kúrú: ka àwọn pápá, jẹ́rìí pé àyẹ̀wò náà wáyé ní kùtùkùtù, lẹ́yìn náà fi àwọn ohun mẹ́ta tí ẹ̀gbẹ́ méjèèjì gbọdọ̀ fohùn ṣọ̀kan wé ara wọn.
Ka àpò náà ní ìtòlẹ́sẹẹsẹ tí a fi ń kọ́ ọ
Pákẹ́tì ìṣàkóso ń gbé ìdánimọ̀ ìpàdé, HMAC tls-auth àṣàyàn, ìsọfúnni àtúnṣe àti ìjẹ́rìí, àti ìdánimọ̀ ìfiránṣẹ́ tí ó ṣeé gbára lé, lẹ́yìn náà ni ẹrù irú ìfiránṣẹ́ wá. Nígbà tí ìfiránṣẹ́ bá jẹ́ ìfiránṣẹ́ ìfọwọ́sowọ́pọ̀, ẹrù náà máa ń jẹ́ àkọsílẹ̀ ìkọ̀kọ̀ TLS. Ìbáṣepọ̀ gbogbo rẹ̀ ni èyí: ohun èlò TLS ń rìn nínú ìfiránṣẹ́ tí àpò náà ti ń dáàbò bò. Wo ìwé ìtọ́kasí ìlànà nẹ́tíwọ́kì OpenVPN tí ó ṣe àkójọ àwọn pápá ikanni ìṣàkóso ní ìtòlẹ́sẹẹsẹ yẹn.
Ó rọrùn láti ṣìkà ìpele ìgbẹ́kẹ̀lé fún ìkọ̀kọ̀. Àwọn ìjẹ́rìí, àtúnránṣẹ́ àti ìdánimọ̀ ìfiránṣẹ́ wà kí àwọn ìfiránṣẹ́ ìṣàkóso lè dé lẹ́ẹ̀kan àti ní ìtòlẹ́sẹẹsẹ lórí gbígbé tí kò ṣeé gbára lé. Wọn kì í ṣe ìjẹ́rìí ẹni, ìdánimọ̀ ìfiránṣẹ́ tí ó tọ̀nà kò sì fi ohunkóhun hàn nípa ẹni tí ó fi pákẹ́tì ránṣẹ́.
Jẹ́ kí ìkójọpọ̀ yìí wà gẹ́gẹ́ bí èròǹgbà. Kì í ṣe àwòrán ìtòlẹ́sẹẹsẹ byte, kò sì tó láti ṣe ìṣirò àmì kan, nítorí àwọn pápá tí ó wọ HMAC sinmi lórí ìmúṣẹ, ẹ̀yà àti ipò.
Fi hàn pé àyẹ̀wò náà wáyé ṣáájú ìfọwọ́sowọ́pọ̀
Olùgbà tí ó ní kọ́kọ́rọ́ àjọpín lè ṣàyẹ̀wò HMAC kí ó sì sọ pákẹ́tì irọ́ nù lẹ́sẹ̀kẹsẹ̀, láì pín ipò ìfọwọ́sowọ́pọ̀ tàbí ṣe iṣẹ́ kọ́kọ́rọ́ gbangba. Ààbò náà bo àwọn pákẹ́tì ìfọwọ́sowọ́pọ̀ àkọ́kọ́ pẹ̀lú, ìdí nìyẹn tí kọ́kọ́rọ́ tí kò tọ̀nà fi ń farahàn gẹ́gẹ́ bí ìsopọ̀ tí ó kùnà dípò àṣìṣe ìjẹ́rìí ẹni tí ó pẹ́.
Gbe ìtọ́jú ọ̀rọ̀ daemon sókè kí o sì wo ikanni ìṣàkóso dípò ẹ̀rọ tun:
openvpn --config /etc/openvpn/server.conf --verb 6
Ohun tí ìwọ ń wá ni ìkùnà àyẹ̀wò HMAC ikanni ìṣàkóso tí a ròyìn ní ìpele pákẹ́tì, ṣáájú ìkìlọ̀ TLS kankan. Ìkìlọ̀ TLS nínú àkọsílẹ̀ túmọ̀ sí pé a gba àpò náà àti pé ìkùnà náà ti lọ sínú, èyí tí í ṣe ìwádìí mìíràn pẹ̀lú ojútùú mìíràn.
Ìtọ́jú ìtọ́sọ́nà wà níbí pẹ̀lú. Nígbà tí a bá ń lo fáìlì kọ́kọ́rọ́ àìyẹsẹ̀ pẹ̀lú tls-auth, ẹ̀gbẹ́ méjèèjì ń gba ìtọ́sọ́nà kọ́kọ́rọ́ tí ó yàtọ̀ síra, ìlànà sì ń lo ìpín yẹn kí a má baà lè da pákẹ́tì tí a mú padà sọ́dọ̀ olùránṣẹ́ rẹ̀. Yíyí ìtọ́sọ́nà padà ń jẹ́ kí kọ́kọ́rọ́ wà bákan náà, síbẹ̀ gbogbo pákẹ́tì yóò kùnà. Yí ẹ̀gbẹ́ kan padà ní ìgbà kan, lẹ́yìn náà tún daemon méjèèjì bẹ̀rẹ̀ kí ọ̀wọ́ náà lè gbé jáde papọ̀.
Bá kọ́kọ́rọ́, ìtọ́sọ́nà àti digest mu ní ẹ̀gbẹ́ méjèèjì
Iye mẹ́ta gbọdọ̀ fohùn ṣọ̀kan, ọ̀kan nínú wọn sì ni fáìlì. Àkóónú kọ́kọ́rọ́ àìyẹsẹ̀ gbọdọ̀ jẹ́ bákan náà ní ẹ̀gbẹ́ méjèèjì, ìtọ́sọ́nà gbọdọ̀ yàtọ̀, digest tí a ń lò fún HMAC sì gbọdọ̀ báramu. Ṣàyẹ̀wò ìṣètò kí o tó fọwọ́ kan ohun èlò kọ́kọ́rọ́, nítorí ìtọ́sọ́nà kan tí ó yí padà ń ṣàlàyé ìkùnà púpọ̀ ju fáìlì tí ó bàjẹ́ lọ:
grep -E 'tls-auth|tls-crypt|key-direction|auth ' /etc/openvpn/server.conf
Ṣẹ̀dá àṣírí àjọpín pẹ̀lú irinṣẹ́ kì í ṣe pẹ̀lú olóòtú, kí o sì jẹ́ kí àwọn àṣẹ wà ní dín
openvpn --genkey secret /etc/openvpn/ta.key
chmod 600 /etc/openvpn/ta.key
Àwọn ẹ̀yà àtijọ́ gba ìtòlẹ́sẹẹsẹ àṣàyàn tí ó yàtọ̀ díẹ̀ fún ṣíṣẹ̀dá kọ́kọ́rọ́, àwọn profáìlì tí a kọ fún àwọn ẹ̀yà yẹn sì ṣì ń ká kiri. Fáìlì tí a ṣẹ̀dá jẹ́ irú ohun kan náà nínú àwọn ìṣẹ̀lẹ̀ méjèèjì, nítorí náà àyẹ̀wò ni bóyá ẹ̀gbẹ́ méjèèjì ní byte bákan náà, kì í ṣe irú àkọtọ́ wo ló ṣẹ̀dá wọn.
Má ṣe dà tls-auth pọ̀ mọ́ tls-crypt. Àwọn méjèèjì ń dáàbò bo ikanni ìṣàkóso, ṣùgbọ́n tls-crypt tún ń fi ìkọ̀kọ̀ bo ó, ó sì ń fi ìfọwọ́sowọ́pọ̀ pamọ́ fún àwọn olùwò, ó sì rọ́pò ìpín ìtọ́sọ́nà pẹ̀lú ìtọ́jú kọ́kọ́rọ́ tirẹ̀. Profáìlì tí ó ń lo ọ̀kan kò ní bá ẹgbẹ́ tí a ṣètò fún èkejì ṣiṣẹ́ pọ̀, kò sì sí àtúnṣe digest kankan tí yóò dé àlàfo yẹn.
Ṣe àtúntẹ̀ àmì náà látinú ìrísí gidi nìkan
Àtúntẹ̀ tí ó péye dé ìpele byte jẹ́ iṣẹ́ tí ó yàtọ̀ sí ṣíṣe VPN, ó sì ń ṣiṣẹ́ pẹ̀lú àwọn ìwọlé gidi nìkan: ìmúṣe àti ẹ̀yà tí ó kọ́ pákẹ́tì, digest tí a yàn, ìtọ́sọ́nà, àti àwọn byte gidi pẹ̀lú ìdánimọ̀ ìpàdé àti àkójọ ìjẹ́rìí. Ìfihàn àkọsílẹ̀ ti àkójọ pápá kì í ṣe àwọn byte yẹn.
Gígùn àmì náà wá látinú digest, nítorí náà èròǹgbà gígùn tí ó dúró ṣinṣin yóò já ní ìṣẹ́jú tí ẹnìkan bá yí i padà. Hash pákẹ́tì náà bí ìmúṣe ṣe ń ṣe é, kì í ṣe bí tábìlì nínú àpilẹ̀kọ blog ṣe ń gbé e jáde, kí o sì fi wé ìgbàlódé tí a gbà láti ọ̀dọ̀ ẹgbẹ́ kan náà dípò ìfojúsọ́nà tí ìwọ fúnra rẹ yọ jáde.
Pa àṣà yìí mọ́ kúrò lọ́dọ̀ àwọn profáìlì ìṣelọ́pọ̀. Kò sí ohunkóhun nínú àtúntẹ̀ àmì tí yóò sọ fún ọ bóyá ìtẹ̀wọ́gbà yẹ kí ó tan ààbò náà.
Yí àìbáramu padà láìyọ ààbò kúrò
Ìdánwò tí ó ń fà àfẹ́mọ́ ni pé kí o pa tls-auth rẹ́, kí o ri pé ìsopọ̀ ṣàṣeyọrí kí o sì pinnu pé kọ́kọ́rọ́ náà kò tọ̀nà. Ìdáhùn yẹn gba ààbò lọ́wọ́ rẹ, kò sì kọ́ ọ ní ohunkóhun nípa èwo nínú àwọn iye mẹ́ta tí kò báramu. Dípò bẹ́ẹ̀, gba ìṣètò tí ó báramu tí a fọwọ́ sí láti ẹ̀gbẹ́ olùsìn kí o sì fi wé e.
Pèsè ìyípadà náà kí ó lè ṣeé yí padà. Tọ́jú ìṣètò olùsìn àti fáìlì kọ́kọ́rọ́ ti ṣáájú, lo ọ̀wọ́ tí a tún ṣe, jẹ́rìí pé olùbánisọ̀rọ̀ kan parí ìfọwọ́sowọ́pọ̀, lẹ́yìn náà nìkan yọ àdàkọ ààbò kúrò. Bí àwọn olùbánisọ̀rọ̀ bá kùnà lẹ́yìn ìyípadà, dá àwọn fáìlì ṣáájú padà dípò kí o ṣe àdàkọ kẹta ní àkókò ìdádúró. Ìdápadà gbọdọ̀ jẹ́ àṣẹ kan tí ìwọ ti mọ̀ ṣáájú kí o tó bẹ̀rẹ̀.
Níkẹyìn, rántí ohun tí àyẹ̀wò tí ó kọjá túmọ̀ sí. Ó fi hàn pé ẹgbẹ́ náà ní kọ́kọ́rọ́ àjọpín, kì í ṣe pé ẹ̀rí tàbí àkọsílẹ̀ rẹ̀ ni a fọwọ́ sí, àti kò sọ ohunkóhun nípa ìkọ̀kọ̀ ikanni dátà tí a ti dúnàádúrà rẹ̀. A ń fi àṣẹ àti ààbò dátà múlẹ̀ lẹ́yìn náà, nítorí náà àyẹ̀wò àpò mímọ́ jẹ́ ibẹ̀rẹ̀, kì í ṣe ìdájọ́.