Bí OpenVPN ṣe yanjú ẹ̀rí àti kọ́kọ́rọ́: PEM inú tàbí ọ̀nà fáìlì
Ìtọ́ni kan náà ń gbé ọ̀nà fáìlì tàbí ohun PEM tí a fi sínú. Ka èyí tí prófáìlì tí a kó sínú ń lò kí o tó gbé àwọn ẹ̀rí kúrò.
Ìfiránṣẹ́ náà sọ pé OpenVPN kò lè kó ẹ̀rí inú kan sínú, ṣùgbọ́n orúkọ fáìlì tí ó wà ní ọkàn rẹ sọ òdìkejì. Ohun tí atúpalẹ̀ náà gbà ṣe pàtàkì ju ohun tí ètò fáìlì ní, nítorí pé ìtọ́ni cert gba oríṣi iye méjì tí ó yàtọ̀ pátápátá. Ọ̀kan jẹ́ ọ̀nà tí ó ń ṣí; èkejì jẹ́ àkọsílẹ̀ PEM tí ó wọ inú ìṣètò náà. Títí tí ìwọ yóò fi mọ irú ni kíláìántì tí ń ṣiṣẹ́ gbà, gbogbo àtúnṣe jẹ́ àròsọ.
Oríṣi ibi ìpamọ́ méjì, ìtọ́ni kan
Àwọn ìtọ́ni cert, key àti ca gba ọ̀nà tàbí blọ́ọ̀kì inú. Tí iye bá jẹ́ ọ̀nà, OpenVPN ṣí fáìlì yẹn, ó sì ka ohun náà láti diskì. Tí ìṣètò bá ní blọ́ọ̀kì tí àmì cert fi ààlà, ìtọ́ni kan náà máa ń lo àkóónú láàárín àwọn àmì yẹn, kò sì sí fáìlì ọ̀tọ̀ kankan.
Oríṣi méjèèjì ń dá ohun kan náà ní ìparí, nítorí náà ìgbékalẹ̀ tí ń ṣiṣẹ́ lè yí padà láàárín wọn láìsí àtúnṣe mìíràn. Prófáìlì tí ó gbé ẹ̀rí kíláìántì àti kọ́kọ́rọ́ ààtò pẹ̀lú inú rẹ̀ kò nílò ìrànlọ́wọ́, pípé rẹ̀ sórí ẹ̀rọ mìíràn sì ń ṣiṣẹ́ láìpé àpò ẹ̀rí pẹ̀lú.
Òdìkejì kì í ṣe òtítọ́. Fífi client.crt sẹ́gbẹ̀ẹ́ prófáìlì tí ó fi dátà rẹ̀ sínú kò yí ohunkóhun padà, nítorí kò sí ohun tí ó tọ́ka sí fáìlì yẹn nínú ìṣètò. Èyí ni ìdí tí ó wọ́pọ̀ jùlọ tí fáìlì tí ó wà ní kedere fi ń dàbí ẹni tí a gbàgbé.
Bí blọ́ọ̀kì inú ṣe di ohun
A ń yọ àkóónú inú jáde láti inú ìṣètò, a sì fi í fún atúpalẹ̀ PEM gẹ́gẹ́ bí àkọsílẹ̀. Atúpalẹ̀ yẹn ń retí àwọn ààlà tí ó sábà wà: ìlà BEGIN kan, ẹrù base64 kan àti ìlà END tí ó bá a mu. Tí a bá gé blọ́ọ̀kì náà nítorí àdàkọ tí ó kùnà, tí ojú-ìwé gbígbé sókè fi í sínú HTML, tàbí tí a ṣí i nínú ẹ̀rọ àtúnṣe tí ó ṣe àwọn dásì ní déédé, atúpalẹ̀ yóò kùnà lórí àkóónú tí ó dàbí ẹni tí ó wà.
<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>
Ìdí niyẹn tí ọ̀rọ̀ àṣìṣe náà fi ń ṣi ni lọ́nà. Ọ̀rọ̀ inú ń ṣàpèjúwe ibi tí olùkó náà wò, kì í ṣe ohun tí ó rí níbẹ̀. Fáìlì tí a dárúkọ nínú ìṣètò àti ohun tí a fi sínú rẹ̀ lè mú ẹ̀dùn kan náà jáde nígbà tí àwọn báìtì ìpìlẹ̀ kò bá ṣe é lò.
Ṣàyẹ̀wò irú wo ni prófáìlì tí a kó sínú ń lò gan-an, kì í ṣe fáìlì wo ni ẹ̀rọ àtúnṣe rẹ ṣí lẹ́ẹ̀kọ̀ọ̀kan:
grep -nE '^(ca|cert|key) |^<(ca|cert|key)>' client.ovpn
Bí ìtọ́ka ọ̀nà ṣe ń yanjú
A ń ṣí iye ọ̀nà ní ìbámu pẹ̀lú àpò iṣẹ́ kíláìántì, kì í ṣe àpò tí ó ní ìṣètò náà. Lábẹ́ systemd, àpò iṣẹ́ yẹn ni ohun tí ẹ̀ka náà ṣètò, ìgbékalẹ̀ oníṣe láti inú shell rẹ sì jogún ohun mìíràn pátápátá. Ìdí niyẹn tí fáìlì ìṣètò kan náà fi lè ṣiṣẹ́ nígbà tí o bá dán an wò pẹ̀lú ọwọ́, tí ó sì kùnà gẹ́gẹ́ bí iṣẹ́.
Àwọn ọ̀nà ìbámu náà jogún àìdánimọ̀ kan náà. Nígbà tí o bá rí orúkọ fáìlì òfo, béèrè àpò lọ́wọ́lọ́wọ́ ti ìlànà náà níbi iṣẹ́, dípò kí o rò pé ó bá ti tirẹ̀ mu.
Fún ẹ̀rí tí a fi pamọ́ lọ́tọ̀, àyẹ̀wò àìsí íńtánẹ́ẹ̀tì ń fìdí ohun náà múlẹ̀ kí o tó ṣàtúnṣe ohunkóhun lókè rẹ̀:
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl pkey -in client.key -noout -check
Àwọn àṣẹ yẹn ń fi hàn pé a lè ka àwọn fáìlì, wọ́n sì wúlò ní ìgbékalẹ̀. Wọn kò fi hàn pé ẹlẹgbẹ́ gbẹ́kẹ̀lé olùgbéjáde, pé ẹ̀rí náà ṣì wà nínú àkókò ìwúlò rẹ̀, tàbí pé kọ́kọ́rọ́ náà jẹ́ tirẹ̀.
Ohun tí àṣìṣe atúpalẹ̀ lè sọ àti ohun tí kò lè sọ
Ìkùnà àyẹ̀wò ń fi àṣìṣe náà sí ibi kan tí a ti ń gbé àkóónú wọlé àti ìpele kan. Kò sọ irú ibi ìpamọ́ wo nínú méjèèjì tí kíláìántì lò, kò sì sọ bóyá a ìbá gba ohun náà. Àwọn ìbéèrè ọ̀tọ̀ ni wọ́n pẹ̀lú ẹ̀rí ọ̀tọ̀.
Tí àyẹ̀wò bá ṣàṣeyọrí, ìkùnà tí ó tẹ̀lé jẹ́ ti ìpele tí ó pẹ́ jù. Ìkọ̀sílẹ̀ ìgbẹ́kẹ̀lé, àìbáramu èròǹgbà tàbí àìbáramu kọ́kọ́rọ́ ni ẹlẹgbẹ́ tàbí ìpele TLS ń ròyìn, kì í ṣe olùkó. Yíyí fáìlì kan náà padà lọ́pọ̀ ìgbà kò ní gbé àṣìṣe yẹn kúrò.
Pa ìlàjì ìdájẹ́ mọ́ kúrò nínú àwọn ìròyìn gbangba nígbà tí o ń ṣèwádìí. Pín àwọn orúkọ ìtọ́ni, àkọsílẹ̀ àṣìṣe àti ìgbékalẹ̀ blọ́ọ̀kì, pẹ̀lú yíyọ ohun èlò kọ́kọ́rọ́ àti ẹrù ìdánimọ̀ èyíkéyìí kúrò. Ìwé ìtọ́nisọ́nà openvpn(8) ń ṣàlàyé oríṣi méjèèjì ti àwọn ìtọ́ni fáìlì àti ìhùwàsí àpò iṣẹ́ tí ó wà lẹ́yìn wọn.