Faceți MySQL să folosească portul TCP redirecționat
Evitați selectarea unui socket Unix local atunci când un client MySQL ar trebui să se conecteze printr-un redirecționare SSH TCP.
Redirecționarea SSH ascultă pe portul local 13306, dar mysql se conectează în continuare la baza de date locală—sau raportează că socketul său local lipsește. Pe Unix, un client MySQL căruia i se dă localhost poate selecta un socket Unix în loc de TCP. Furnizarea unui port nu schimbă neapărat această alegere.
Pentru o redirecționare TCP aprobată existentă, faceți protocolul explicit:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Numele de utilizator este ilustrativ; opțiunea de parolă solicită o introducere interactivă. Comanda se conectează la ascultătorul TCP local în loc de un socket Unix.
Țineți cele două autentificări separate
O rută SSH fixă poate avea această formă:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
Serverul SSH al gateway-ului ajunge la db.internal:3306. Apoi MySQL autentifică contul bazei de date prin acel flux de octeți. O cheie SSH acceptată nu acordă o autentificare la baza de date, iar restricțiile de sursă ale bazei de date văd conexiunea sosind din acea parte a rutei.
Acesta este un adaptor TCP fix, nu o setare SOCKS consumată de mysql. Aplicația nu are nevoie de negociere SOCKS deoarece punctul final al redirecționării are o singură țintă predefinită.
Păstrați identitatea TLS dorită a bazei de date și politica de certificate acolo unde sunt utilizate. Conectarea socketului la loopback nu face un certificat de bază de date valid pentru un alt nume de serviciu. O conexiune TCP locală reușită decide alegerea transportului, nu autentificarea ulterioară a bazei de date sau verificările TLS.