Pane MySQL kasutama edastatud TCP-porti
Vältige kohaliku Unix-soketi valimist, kui MySQL klient peaks ühenduma SSH TCP-edastuse kaudu.
SSH-edastus kuulab kohalikul pordil 13306, kuid mysql ühendub endiselt kohaliku andmebaasiga—või teatab, et selle kohalik soket puudub. Unixis võib MySQL klient, kellele antakse localhost, valida TCP asemel Unix-soketi. Pordi andmine ei pruugi seda valikut muuta.
Olemasoleva kinnitatud TCP-edastuse jaoks tehke protokoll selgesõnaliseks:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Kasutajanimi on illustratiivne; parooli valik küsib interaktiivset sisestust. Käsk ühendub kohaliku TCP-kuulajaga, mitte Unix-soketiga.
Hoidke kaks sisselogimist eraldi
Fikseeritud SSH-marsruut võib olla sellise kujuga:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
Lüüsi SSH-server jõuab aadressile db.internal:3306. Seejärel autendib MySQL andmebaasi konto selle baidivoo kaudu. Vastuvõetud SSH-võti ei anna andmebaasi sisselogimist ning andmebaasi allikapiirangud näevad ühendust saabuvat marsruudi sellelt küljelt.
See on fikseeritud TCP-adapter, mitte mysql-i tarbitav SOCKS-seade. Rakendus ei vaja SOCKS-läbirääkimisi, sest edastuse lõpp-punktil on üks eelmääratud sihtmärk.
Säilitage kavandatud andmebaasi TLS-identiteet ja sertifikaadipoliitika seal, kus neid kasutatakse. Soketi ühendamine loopbackiga ei muuda andmebaasi sertifikaati kehtivaks teise teenusenime jaoks. Edukas kohalik TCP-ühendus otsustab transpordi valiku, mitte hilisema andmebaasi autentimise ega TLS-kontrollid.