MySQL dros VPN: dilyswch y gweinydd, nid yn unig y cryptio
Mae cryptio i’r gwesteiwr anghywir yn dal yn anghywir. Cymharwch y gwerthoedd ssl-mode, yna rhedwch gysylltiad sy’n enwi’r gweinydd a fwriadwyd ac yn profi hynny.
Rydych chi’n cadw cysylltiad i 10.20.4.15, mae’r VPN yn cwympo, ac mae’r cleient yn dal i gysylltu. Nid yw hynny’n newyddion da. Mae cyfeiriad preifat yn lleoliad o fewn pa bynnag gyd-destun llwybro rydych chi ynddo, ac mae digon o rwydweithiau’n defnyddio’r un ystodau. Cyrhaeddodd y cleient weinydd MySQL, efallai nad yw wedi cyrraedd eich un chi.
Mae gan y cywiriad ddwy hanner, a dim ond un ohonynt yn ymwneud â’r rhwydwaith. Cadwch y cysylltiad ar ei lwybr bwriadedig, a gwnewch i’r cleient ddilysu’r gweinydd y mae’n siarad ag ef. Mae’r hanner cyntaf yn lle mae VPN yn helpu; rhaid ffurfweddu’r ail hanner.
Wedi’i gryptio i beth, yn union?
Mae TLS yn amddiffyn y sgwrs rhag unrhyw un yn y canol, ac nid yw’n dweud dim am bwy y mae’r pen draw’n honni ei fod oni bai bod y cleient yn gwirio. Mae tystysgrif sy’n dilysu yn erbyn awdurdod dibynadwy yn profi bod y dystysgrif wedi dod o’r awdurdod hwnnw. Nid yw’n profi bod y dystysgrif wedi’i chyhoeddi ar gyfer yr enw gwesteiwr y gwnaethoch chi fwriadu ei gyrraedd, ac mae’r rheini’n gwestiynau gwahanol.
Nid bwlch damcaniaethol yw hwn. Mae porthladdoedd caeth, camgymeriadau VRF anghywir a chynlluniau cyfeiriad sy’n gorgyffwrdd i gyd yn cynhyrchu gweinydd sy’n hollol barod i drafod TLS gyda chi. Os mai dim ond cryptio y mae’r cleient yn ei ofyn, mae’r sesiwn yn breifat ac wedi’i chyfeirio at y gronfa ddata anghywir.
Felly nid y cwestiwn perthnasol yw a yw’r cysylltiad wedi’i gryptio, ond a yw wedi’i gryptio i’r hunaniaeth y gwnaethoch ei bwriadu. Yng nghleient MySQL, mae’r gwahaniaeth hwnnw’n byw yn gyfan gwbl yn y gosodiad ssl-mode.
Y pum gwerth ssl-mode yn ymarferol
Mae pum gwerth yn bodoli, a dim ond un ohonynt yn ateb cwestiwn y llawlyfr hwn. Mae’r tabl yn rhestru’r hyn y mae pob un yn ei warantu mewn gwirionedd, yn hytrach na’r hyn y mae ei enw’n ei awgrymu.
| Mode | What it guarantees |
|---|---|
DISABLED | No TLS at all; everything on the wire is readable |
PREFERRED | Tries TLS and falls back to plaintext when the account and server allow it, so it is not a fail-closed requirement |
REQUIRED | Refuses to connect without TLS, and does not validate the certificate |
VERIFY_CA | Validates the server certificate against the configured CA and does not check the hostname |
VERIFY_IDENTITY | Validates the CA and checks that the certificate names the host the client used |
Dim ond yr olaf o’r rhesi sy’n ateb y cwestiwn yn yr erthygl hon. PREFERRED yn werth ei nodi ar ei ben ei hun, oherwydd mae cleient sy’n disgyn yn dawel i destun plaen yn waeth nag un sy’n gwrthod: rydych chi’n credu bod gennych gryptio ac mae’r cip ar becynnau’n anghytuno.
Cysylltiad y gallwch ei redeg heddiw
Mae’r gorchymyn isod yn y ffurf i’w defnyddio, gyda dau ddeiliad lle: yr enw cronfa ddata cymeradwy a ffeil CA a gafwyd trwy sianel gymeradwy. Ni ddylid cymryd y naill na’r llall o’r hyn y mae’r gweinydd yn ei gynnig ar y cyswllt cyntaf.
mysql --host=db.corp.example --user=app_reader \
--ssl-mode=VERIFY_IDENTITY \
--ssl-ca=/approved/path/ca.pem --password
--password heb werth yn annog mewnbwn, sy’n cadw’r gyfrinach allan o’r rhestr broses ac allan o hanes eich plisgyn. Arfer bach yw hwn â budd mawr ar westeiwyr naid a rennir, lle mae llinell orchymyn yn weladwy i ddefnyddwyr eraill.
Pan fydd hyn yn methu, mae testun y gwall yn gwahaniaethu’r achosion yn well na greddf. Mae methiant CA yn golygu nad yw’r gadwyn yn dilysu ac y dylech edrych pa CA a lofnododd dystysgrif y gweinydd. Mae methiant enw gwesteiwr yn golygu bod y gadwyn yn iawn a’r enw’n anghytuno, sy’n golygu fel arfer eich bod wedi cysylltu â’r gweinydd cywir dan yr enw anghywir yn hytrach nag â’r gweinydd anghywir.
Nid yw anogwr yn ymddangos yn brawf bod cyfrinair eisoes wedi’i drosglwyddo, ac nid yw cysylltiad wedi methu’n profi na adawodd dim y cleient. Os ydych chi’n ail-greu digwyddiad yn y gorffennol, nodwch y cleient, ei ffurfweddiad, y ategyn dilysu a’r cam a fethodd. Mae amcangyfrif yr amlygiad o’r neges gwall olaf yn ddyfalu.
Pan ddaw’r enw o dwnnel
Mae anfon porthladd lleol ymlaen yn torri’r gwiriad hunaniaeth mewn ffordd sy’n synnu pobl. Os anfonwch borthladd lleol ymlaen i’r gronfa ddata a chysylltu â localhost, mae’r cleient yn dilysu’r dystysgrif yn erbyn localhost, ac ni chyhoeddwyd tystysgrif ar gyfer yr enw hwnnw. Gall y cysylltiad fod yn hollol ddiogel a bydd y dilysu’n methu o hyd, sef y gwiriad yn gweithio fel y bwriadwyd.
Mae dau ateb gonest. Rhowch enw i’r pen draw a anfonwyd ymlaen sy’n datrys i’r cyfeiriad dolen-gefn ac yn ymddangos yn nhystysgrif y gweinydd, neu defnyddiwch yr enw gwesteiwr o’r dechrau i’r diwedd fel bod y cleient yn dilysu’r wir hunaniaeth. Mae’r cyntaf yn gyfleus i ddatblygwyr ac yn gofyn am waith tystysgrifau; mae’r ail yn haws ei resymu ac yn aml yn y rhagosodiad cywir ar gyfer awtomeiddio. Mae analluogi dilysu i wneud i’r anfon ymlaen weithio’n taflu ymaith yr eiddo roeddech chi’n ceisio ei ychwanegu.
Mae derbyn yn dair amod
Ysgrifennwch y prawf derbyn fel tair datganiad ar wahân: defnyddiodd y cysylltiad y llwybr bwriadedig, roedd cryptio’n ofynnol yn hytrach na chael ei ffafrio, a dilyswyd hunaniaeth y gweinydd yn erbyn deunydd dibynadwy. Nid yw eicon VPN gwyrdd yn sefydlu’r un ohonynt.
Ar gyfer cleientiaid GUI ac ar gyfer MariaDB, edrychwch ar ddogfennaeth y gwerthwr ei hun yn hytrach na chymryd yn ganiataol bod sillafiad y baner yn trosglwyddo. Mae dogfennaeth MySQL ar gysylltiadau wedi’u cryptio yn ymdrin â’r gwahaniaethau rhwng moddau a’r gofyniad dosbarthu CA, a dyma’r cyfeirnod i’w wirio cyn newid llinyn cysylltiad cynhyrchu.