Mae tri ffaith wahanol yn cael eu rhoi mewn un llinell yn y rhan fwyaf o drafodaethau OpenVPN TLS: beth all eich adeiladwaith cleient ei wneud, beth mae'r proffil yn ei ganiatáu, a beth mae'r sesiwn wedi'i drafod mewn gwirionedd. Nid yw rhestr fer o gyfuniadau TLS 1.3 yn ateb y cwestiwn canol ond yn hanner, ac nid yw'n dweud dim am lawr y fersiwn protocol. Ewch drwy'r gwiriadau isod yn eu trefn a stopiwch ar yr un cyntaf nad yw'n dal, oherwydd mae pob gwiriad diweddarach yn tybio bod y rhai cynharach wedi'u setlo.

Gwiriwch yr adeiladwaith cyn darllen unrhyw restr

Ni all cyfarwyddeb ffurfweddu ychwanegu cymorth protocol at ffeil ddeuaidd sydd hebddi. Dechreuwch gyda baner y fersiwn, sy'n enwi'r llyfrgell griffto a gafodd ei chrynhoi:

openvpn --version

Mae adeiladwaith 2.6 wedi'i gysylltu ag OpenSSL yn derbyn tls-cipher a tls-ciphersuites. Nid oes gan adeiladwaith gyda mbed TLS unrhyw ddewis cyfuniadau TLS 1.3 o gwbl, ac mae llawlyfr 2.6 yn nodi tls-ciphersuites fel opsiwn OpenSSL. Os ailadeiladir y gweinydd â backend gwahanol, gall yr un proffil newid ei ymddygiad heb i unrhyw linell o'r ffurfweddiad newid.

Tra byddwch yma, rhedwch openvpn --show-tls a chadwch yr allbwn. Dyma'r rhestr gyfrif sy'n mynd i'w chymharu yn ddiweddarach, ac mae'n rhad ei chofnodi cyn i unrhyw un ddechrau golygu proffiliau.

Ysgrifennwch y faner a'r rhestr yn nrwc y newid, nid mewn ffenestr sgwrs. Pan fydd dau berson yn anghytuno a allai cleient gynnig cyfuniad mewn chwe wythnos, mae'r allbwn a gofnodwyd yn setlo hynny mewn un linell.

Cadwch derfynau fersiwn ar wahân i restrau seiffrau

Yn llawlyfr 2.6 mae'r rhain yn dri rheolydd, nid un:

  • Mae tls-cipher yn gosod polisi seiffrau ar gyfer TLS 1.2 ac yn gynharach, ac yn cael ei drosglwyddo i restr seiffrau OpenSSL;
  • Mae tls-ciphersuites yn dewis cyfuniadau TLS 1.3;
  • Mae tls-version-min a tls-version-max yn terfynu'r fersiynau protocol y caiff y cysylltiad eu defnyddio.

Felly nid yw rhestr gyfuniadau TLS 1.3 sydd wedi'i thocio'n ofalus yn profi dim am fersiwn hŷn sy'n dal i fod yn ganiataol. Os yw'r gofyniad yn «TLS 1.3 yn unig», y llawr fersiwn sy'n ei gynnal, ac mae'r rhestr gyfuniadau ond yn culhau'r dewisiadau o fewn y llawr hwnnw:

tls-version-min 1.3
tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Mae'r pâr hwn yn gwneud dwy swydd. Mae dileu un o'r llinellau yn gadael y llall yn gorfodi llai nag yr ydych yn meddwl, a dyna'r methiant y mae'r gwiriad cyfan hwn yn bodoli i'w ddal.

Mae'r sianel ddata yn bedwerydd rheolydd. Mae data-ciphers yn trafod y seiffer cymesur y tu mewn i'r tiwnel, ac nid yw ei ganlyniad yn dweud dim am fersiwn TLS y sianel reoli. Nid yw gweld AES-256-GCM yn y crynodeb sesiwn yn dystiolaeth am TLS 1.3 i'r naill gyfeiriad na'r llall.

Darllenwch show-tls fel rhestr gyfrif leol

Mae --show-tls yn rhestru'r cyfuniadau a gefnogir gan y llyfrgell griffto y mae'r ffeil ddeuaidd hon wedi'i chysylltu â hi, yn nhrefn ffafriaeth. Nid yw'n adroddiad gan y giât. Mae'r llawlyfr yn dweud yn benodol fod y rhestr yn dod o'r llyfrgell leol, sy'n golygu y bydd gliniadur ag OpenSSL 3.x a llwybrydd ag adeiladwaith hŷn yn argraffu rhestrau gwahanol tra'n siarad â'r un gweinydd.

EvidenceWhat it actually describes
--show-tls outputCapabilities of this client build and its library
Profile directivesWhat this attempt is allowed to offer
Session log lineWhat this one negotiation selected

Tybiwch fod cleient yn cefnogi cyfuniadau A, B ac C ac fod un sesiwn yn dewis B. Nid yw hynny'n sefydlu dim am a yw'r gweinydd yn caniatáu A neu C, nac am a yw B yw ei unig ddewis a ganiateir. Cadwch y tair rhes ar wahân, a bydd y rhan fwyaf o edafedd TLS dryslyd yn datrys eu hunain.

Mae'r rhestr gyfrif yn dal yn werth ei chadw. Pan fydd sesiwn yn methu, mae cymharu rhestr y llyfrgell â rhestr y proffil yn dweud wrthych a oedd gan y cleient unrhyw siawns o gynnig yr hyn a oedd y gweinydd ei eisiau. Mae hefyd yn dangos a yw newid backend wedi tynnu TLS_CHACHA20_POLY1305_SHA256 yn dawel o'r pwll y mae cleientiaid hŷn yn dibynnu arno — y math o atchweliad sy'n ymddangos fel dyrnaid o ddefnyddwyr yn methu cysylltu tra nad yw pawb arall yn sylwi ar ddim.

Gofynnwch gwestiwn i'r giât y gall ei ateb

Os ydych yn gweinyddu'r gwasanaeth, archwiliwch ffurfweddiad effeithiol y fersiwn sy'n rhedeg yn hytrach na ffeil ar y disg. Efallai bod OpenVPN wedi'i gychwyn â llwybr --config gwahanol, yn tynnu cynhwysion, ac nad yw wedi'i ailgychwyn ers y golygiad. Polisi'r daemon sy'n rhedeg yw'r hyn y mae cleientiaid yn dod ar ei draws.

Os nad ydych yn ei weinyddu, gofynnwch i'r gweithredwr am ofynion cleient a gefnogir neu brawf derbyn wedi'i gwmpasu. Nid yw ymgais a wrthodwyd yn gyfuniad a wrthodwyd yn awtomatig: gall llawr fersiwn, gwiriadau hunaniaeth tystysgrif fel remote-cert-tls, neu gamgymhariad rhwng tls-auth a tls-crypt ddod â'r gyfnewidfa i ben cyn i ddewis cyfuniad fod yn berthnasol. Darllenwch wall y gweinydd cyn newid rhestr y cleient, oherwydd mae «handshake failed» yn cwmpasu pedair achos gwahanol a dim ond un ohonynt yw camgymhariad seiffer.

Nid yw anelu openssl s_client at borth VPN yn atgynhyrchu'r cwestiwn chwaith. Mae'r sianel reoli yn rhedeg o fewn fframwaith OpenVPN ei hun, felly mae archwiliad TLS crai yn profi protocol gwahanol ar borth sy'n disgwyl rhywbeth arall. Mae unrhyw gasgliad a dynnir ohono yn ymwneud â'r archwiliad, nid â'r tiwnel.

Cofnodwch ddau ganlyniad a'u cadw ar wahân

Mae sesiwn newydd a ganiateir yn cynhyrchu llinell sianel reoli sy'n enwi fersiwn y protocol a'r seiffer a ddewiswyd, a llinell sianel ddata ar wahân sy'n enwi seiffer y tiwnel. Cofnodwch y ddwy gyda fersiwn y cleient ac enw'r proffil, a nodwch pa fersiwn o'r gweinydd a atebodd:

openvpn --config office.ovpn --verb 4 2>&1 | tee session.txt

Yna darllenwch y ddwy linell o'r ffeil honno yn hytrach nag o'r cof. Y pâr yw'r dystiolaeth; mae enw cyfuniad yn unig yn ffafriaeth, ac mae'r ffin fersiwn yn ddatganiad ar wahân am yr hyn y mae'r gweinydd yn ei wrthod.

Rhedwch y gwiriadau yn y drefn hon. Cadarnhewch yr adeiladwaith a'r backend gyda --version. Cofnodwch --show-tls cyn newid unrhyw beth. Nodwch y llawr fersiwn gofynnol ar wahân i'r rhestr gyfuniadau. Cadarnhewch bolisi effeithiol y fersiwn sy'n rhedeg gyda'i berchennog. Arsyliwch un sesiwn a ganiateir ac, os yw'r cynllun yn caniatáu, un ymgais â fersiwn hŷn a wrthodwyd. Cofnodwch ganlyniadau'r sianel reoli a'r sianel ddata fel canfyddiadau ar wahân.

Os na all cleient gofynnol fodloni lleiafswm newydd, gwnewch y penderfyniad mudo neu eithriad hwnnw'n benodol yn hytrach na gostwng rheol dderbyn anghysylltiedig yn dawel i wneud i'r cyflwyniad edrych yn gyflawn.

Erthyglau cysylltiedig