Ẹ̀gbẹ́ kan nínú ihò náà fi àpótí kọ́kọ́rọ́ kan tí ẹ̀gbẹ́ kejì kò ṣàyẹ̀wò rárá bu ọwọ́ sí ọ̀nà ìṣàkóso, ìsopọ̀ náà sì kú pẹ̀lú àṣìṣe ìjẹ́rìí kí wọ́n tó pààrọ̀ ìwé-ẹ̀rí kan pàápàá. Bẹ́ẹ̀ ni àìbáramu ìtọ́sọ́nà nínú tls-auth ṣe rí, ó sì jẹ́ àkànṣe: àwọn fáìlì méjèèjì kan náà kùnà ní gbogbo ìgbìyànjú, láti inú àwọn nẹ́tíwọ́kì èyíkéyìí. Kò sí ohun kan nínú àkọsílẹ̀ tí ó dárúkọ àṣàyàn tí o ń wá, ìdí ni pé àwọn ènìyàn tún kọ́ kọ́kọ́rọ́, wọ́n sì tún gbé ìwé-ẹ̀rí jáde tí kò tíì bàjẹ́ rí. Ojútùú ni láti mú ẹ̀gbẹ́ méjèèjì di aláṣepọ̀, tàbí fi àwọn méjèèjì sílẹ̀ ní ọ̀nà méjèèjì, kì í ṣe láti sọ ìjẹ́rìí di aláìlera.

Ìkùnà náà ṣẹlẹ̀ kí ìwé-ẹ̀rí tó dé

Pẹ̀lú tls-auth, ẹ̀gbẹ́ méjèèjì di kọ́kọ́rọ́ àpapọ̀ kan náà mú, ẹnìkọ̀ọ̀kan sì ń lo ọ̀kan nínú àpótí méjì tí a yọ láti inú rẹ̀: àpótí kan ń bu ọwọ́ sí àwọn pákẹ́tì ìṣàkóso tí ó ń jáde, èkejì ń ṣàyẹ̀wò àwọn tí ó ń wọlé. Ìtọ́sọ́nà 0 àti ìtọ́sọ́nà 1 ń yàn àwọn ipa wọ̀nyí ní ìtòlẹ́sẹẹsẹ òdìkejì, nítorí náà ẹ̀wẹ̀ náà gbọdọ̀ jẹ́ aláṣepọ̀ kí àwọn àyẹ̀wò HMAC lè báramu. Nígbà tí a yí ìpín náà padà ní ẹ̀gbẹ́ kan, olùgbà yóò wá ìbuwọ́ọwọ́ nínú àpótí tí kò tọ́ yóò sì kọ pákẹ́tì náà. Ìpàdé parí níbẹ̀, ìdí ni pé àṣìṣe náà kan ìjẹ́rìí pákẹ́tì, kì í ṣe ohun tí ilé ìpamọ́ ìwé-ẹ̀rí yóò ṣe jáde.

Ìdánilójú ṣe pàtàkì fún àyẹ̀wò àìsàn, nítorí ìṣòro àkókò tàbí ọ̀nà ń fi àmì mìíràn sílẹ̀: ìdádúró lẹ́ẹ̀kọ̀ọ̀kan, ìtọ́sọ́nà kan tí ó kùnà, tàbí ìpàdé tí ó ń kú ní nẹ́tíwọ́kì kan pàtó. Àìbáramu ìtọ́sọ́nà ń kùnà ní ìfọwọ́sowọ́pọ̀ àkọ́kọ́ ní gbogbo ìgbà, ó sì ń kùnà bẹ́ẹ̀ gan-an lórí ẹ̀rọ mìíràn tí ó ní àwọn fáìlì méjèèjì kan náà. Ka àkọsílẹ̀ ní --verb 4 kí o sì wá pákẹ́tì àkọ́kọ́ tí a kọ̀ dípò ìlà ìkẹyìn. Tí ìkọ̀ yẹn bá ṣẹlẹ̀ kí ìpààrọ̀ ìwé-ẹ̀rí èyíkéyìí tó dé, kọ́kọ́rọ́ àpapọ̀ àti ìtọ́sọ́nà rẹ̀ ni ohun méjì tí ó yẹ kí a ṣàyẹ̀wò.

What you seeWhat it rules outNext check
Authentication error before any certificate is sentThe data channel is irrelevant; the control channel never authenticatedCompare tls-auth and its direction on both ends
Certificate or handshake failure after the control channel authenticatesThe shared key and its direction already agreeCheck the CA, the certificate dates and the hostname
Session completes but throughput or cipher warnings appearDirection was never the problemCompare the data-channel cipher settings
Startup stops on an options errorThe number itself is not the issueRe-read the inline versus external directive syntax

Ibi tí nọ́mbà náà ń gbé

Ìwé ìtọ́nisọ́nà OpenVPN 2.6 ṣàkọsílẹ̀ ibi méjì fún ìtọ́sọ́nà: àríyànjiyàn kejì ti tls-auth nígbà tí kọ́kọ́rọ́ wà nínú fáìlì tirẹ̀, àti ìlà key-direction ìgbà tí kọ́kọ́rọ́ wà nínú profáìlì. Àwọn méjèèjì ń gbé iye kan náà kalẹ̀, nítorí náà profáìlì gbọdọ̀ lo fọ́ọ̀mù kan tàbí èkejì, kì í ṣe àwọn méjèèjì rárá. Fífi sílẹ̀ pẹ̀lú jẹ́ àṣàyàn, ó sì ń gbé ẹ̀gbẹ́ méjèèjì sínú ìṣètò ọ̀nà méjì tí ó ń ṣiṣẹ́ nígbà tí kò sí ẹ̀gbẹ́ tí ó dárúkọ ìtọ́sọ́nà. Ẹ̀gbẹ́ méjì tí ó ní nọ́mbà kan náà kò sí nínú ìṣètò yẹn: ẹnìkọ̀ọ̀kan ń retí láti bu ọwọ́ sí àpótí kan àti láti ṣàyẹ̀wò nínú èkejì, àwọn méjèèjì sì ń ṣe bẹ́ẹ̀ ní ọ̀nà kan náà.

# server.conf, external key
tls-auth ta.key 0

# client.ovpn, external key
tls-auth ta.key 1

# client.ovpn, inline key
key-direction 1

Fọ́ọ̀mù tí a fi sínú jẹ́ ìtọ́ni lórí ìlà tirẹ̀, kì í ṣe àbùdá lórí àmì ìbẹ̀rẹ̀ blọ́ọ̀kì kọ́kọ́rọ́, àti fífi àríyànjiyàn kún àmì yẹn jẹ́ àṣìṣe, kì í ṣe ìyípadà ìtọ́sọ́nà. Ibi pẹ̀lú ṣe pàtàkì: ìtọ́ni náà wà ní ìta blọ́ọ̀kì tí ó jẹ́ tirẹ̀, nítorí náà iye tí a kọ sínú blọ́ọ̀kì ni a ka gẹ́gẹ́ bí ohun èlò kọ́kọ́rọ́. Dàákọ ìṣètò tí olùpín profáìlì ní lọ́kàn dípò kí o ṣe ẹ̀wẹ̀ tuntun, nítorí profáìlì tí ó ń ṣiṣẹ́ lòdì sí olùsìn kan lè ti jẹ́ àwòrán ní ẹ̀gbẹ́ kejì tẹ́lẹ̀.

Ohun tí àṣàyàn náà kò fi ọwọ́ kàn

Kò ṣe ìkọ̀kọ̀ ìrìnàjò ohun-èlò. tls-auth ń fi HMAC yí àwọn pákẹ́tì ọ̀nà ìṣàkóso ká, nígbà tí a ń dáàbò bo ọ̀nà dátà pẹ̀lú àwọn kọ́kọ́rọ́ ìpàdé tí a fọwọ́sí nígbà ìfọwọ́sowọ́pọ̀, nítorí náà ìbéèrè nípa ìwọ̀n ìgbékalẹ̀ tàbí ìkọ̀kọ̀ kò ní í ṣe pẹ̀lú nọ́mbà ìtọ́sọ́nà. Ètò náà kò fi kérẹ̀ ìkọ̀kọ̀ kejì kún, ìrònú yẹn sì ni ó ń rán àwọn ènìyàn lọ wá kọ́kọ́rọ́ gígùn.

Kò kan tls-crypt, ọ̀nà ìṣàkóso mìíràn tí ó ní àwọn àṣàyàn àti ìtọ́jú kọ́kọ́rọ́ tirẹ̀, kò sì sọ ohunkóhun nípa ìdánimọ̀ ìwé-ẹ̀rí ẹ̀gbẹ́ èyíkéyìí. Nítorí náà ìbáramu ìtọ́sọ́nà tí ó ń ṣiṣẹ́ ń fi kìkì pé ẹ̀gbẹ́ méjèèjì gbà lórí bí wọ́n ṣe ń jẹ́rìí ọ̀nà ìṣàkóso, kì í ṣe pé a ti fọwọ́ sí ẹ̀wọ̀n ìgbẹ́kẹ̀lé.

Ṣètò ẹ̀wẹ̀ náà, kí o sì tún sopọ̀

Fi ìṣètò méjèèjì wé ara wọn kí o tó yí èyíkéyìí padà, nítorí yíyí ẹ̀gbẹ́ tí ó ti tọ́ padà ń ṣe iṣẹ́ ní ìlọ́po méjì. grep tí ó wà ní ìsàlẹ̀ fi hàn irú ọ̀nà tí fáìlì kọ̀ọ̀kan yàn; ìṣiṣẹ́ àlàyé fi hàn bóyá a jẹ́rìí ọ̀nà ìṣàkóso rárá. Tọ́jú àwọn ìjáde méjèèjì, kí a lè fi ìyípadà tó ń bọ̀ wé ipò tí a mọ̀.

grep -n -E 'tls-auth|tls-crypt|key-direction' server.conf client.ovpn
openvpn --config client.ovpn --verb 4 2>&1 | grep -i -E 'hmac|tls error|control channel'

Tún àwọn ẹ̀gbẹ́ méjèèjì bẹ̀rẹ̀ lẹ́yìn ìyípadà èyíkéyìí, nítorí àwọn àṣàyàn wọ̀nyí ni a ń kà lẹ́ẹ̀kan nígbà ìbẹ̀rẹ̀, gbígbé ẹ̀gbẹ́ kan wọlé lẹ́ẹ̀kan si ń fi ẹ̀wẹ̀ náà sílẹ̀ ní àìbáramu fún gbogbo ìgbésí ayé ìpàdé àtijọ́. Tí ìgbékalẹ̀ náà bá ń ṣiṣẹ́ ní báyìí láìṣe ìtọ́sọ́nà, fífi ètò náà kún ẹ̀gbẹ́ kan yóò tún ìkùnà tí o bẹ̀rẹ̀ pẹ̀lú jáde; yálà fi àwọn méjèèjì sílẹ̀ tàbí ṣètò àwọn méjèèjì. Yí ẹ̀gbẹ́ kan padà ní àkókò kan kí o sì tọ́jú fáìlì tẹ́lẹ̀, kí ìpadàsẹ́yìn jẹ́ ìdápadà ìṣẹ́jú méjì kì í ṣe àtúntò.

Kọ ọ̀nà, fáìlì kọ́kọ́rọ́ àti ìtọ́sọ́nà fún ẹ̀gbẹ́ kọ̀ọ̀kan sínú àwọn àkọsílẹ̀ ìgbékalẹ̀, nítorí bí bẹ́ẹ̀ kọ́, ẹni tó ń bọ̀ yóò ka fáìlì méjì tí ó jọra yóò sì rò pé àwọn nọ́mbà gbọdọ̀ báramu pẹ̀lú ara wọn. Ìtọ́sọ́nà jẹ́ kúlẹ̀kúlẹ̀ ìṣọ̀kan, kì í ṣe ìgbéga ààbò: ó ń ya àwọn ìtọ́sọ́nà méjì ti ọ̀nà ìṣàkóso, kò sì ṣe ohunkóhun mìíràn.

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