Tunnel SSH QGIS PostGIS: żomm l-isem tas-server għal TLS
Trazmissjoni SSH tagħti lil QGIS port lokali, imma l-bażi tad-data għadha teħtieġ l-isem veru tagħha għal TLS. Uża servizz libpq b'hostaddr u listener loopback.
It-tunnel jitla', QGIS jikkonnettja, u l-login imut bi żball ta' ċertifikat li jsemmi 127.0.0.1 minflok il-host tal-bażi tad-data. Il-pass tentattiv li jmiss huwa li tħoll sslmode, li jiskot il-verifika u jwaddab il-garanzija tal-identità li ridt mill-bidu. Il-problema vera hi li l-port lokali u l-isem tas-server jinħażnu fl-istess qasam. L-annotazzjoni tas-servizz libpq tifridhom, u b'hekk is-socket tmur għall-port ittrasferit filwaqt li TLS għadu jivverifika l-isem stampat fuq iċ-ċertifikat.
Ma' xiex il-klijent jaħseb li qed jikkonnettja
Taħt sslmode=verify-full, libpq iqabbel iċ-ċertifikat li jippreżenta s-server mal-isem tal-host mitlub. Meta dak l-isem ikun indirizz loopback, il-paragun ifalli minkejja li ċ-ċertifikat huwa validu għall-host veru tal-bażi tad-data. It-trazmissjoni SSH tbiddel liema socket iġġorr il-bytes, mhux l-identità li l-klijent għandu jistenna. Ladarba dawn iż-żewġ ideat jiġu separati, l-iżball ma jibqax jidher bħal ħsara tat-TLS.
Trazmissjoni mhijiex awtorizzazzjoni lanqas. PostgreSQL għadu japplika r-regoli tiegħu stess għall-konnessjoni li tagħmel is-server SSH, għalhekk żomm is-saff tat-trasport u s-saff tal-bażi tad-data separati qabel ma tibdel xejn.
Orbot it-trazmissjoni mal-loopback biss
Il-listener għandu jeżisti fuq il-magna QGIS u mkien ieħor. Li ssemmi 127.0.0.1 b'mod espliċitu jżommu 'l bogħod mill-interfaces l-oħra, filwaqt li indirizz ta' rabta maħluq jista' jesponi l-port skont is-settings tal-gateway tal-klijent SSH.
ssh -N -L 127.0.0.1:15432:127.0.0.1:5432 [email protected]Id-destinazzjoni wara t-tieni kolon tiġi riżolta min-naħa tas-server SSH, għalhekk dan l-eżempju jassumi li PostgreSQL jinsab fuq l-istess host bħal sshd; bażi tad-data fuq magna oħra teħtieġ dak l-indirizz u l-permessi tiegħu. Ibda s-sessjoni b' -N sabiex ma tinfetaħ l-ebda qoxra, tħallix il-verifika tal-muftieħ tal-host, u kkonferma li l-listener jidher qabel ma tagħti tort lil QGIS. Jekk il-port diġà jintuża, it-trazmissjoni tfalli fil-bidu u mhux fil-ħin tal-mistoqsija.
Qiegħed l-isem u s-socket f'annotazzjoni waħda tas-servizz
Fajl tas-servizz iħalli l-istess konnessjoni ġġorr isem ta' verifika u destinazzjoni tas-socket differenti. Issalva l-annotazzjoni fejn libpq ifittex is-servizzi, jew indirizza PGSERVICEFILE lejha.
[gis-via-ssh]
host=db.geo.example
hostaddr=127.0.0.1
port=15432
dbname=gisdb
user=gis_reader
sslmode=verify-full
gssencmode=disable
sslrootcert=/path/to/approved-root.crtHawn host iżomm l-identità użata għall-verifiki taċ-ċertifikat filwaqt li hostaddr jibgħat il-pakketti lejn il-port loopback ittrasferit, u t-tnejn huma meħtieġa biex dan l-arranġament jaħdem. gssencmode=disable huwa importanti fil-bini li xort'oħra jkunu se jinnegozjaw l-ewwel il-kriptaġġ GSSAPI, għax dak il-passaġġ jinjora s-settings TLS li għadhom kemm ġew stabbiliti. Irreferi għas-servizz bl-isem mid-djalogu tal-konnessjoni PostgreSQL ta' QGIS u pprovdi l-password permezz tal-prompt tas-soltu, mhux ġewwa fajl kondiviż. L-ismijiet u l-mogħdijiet hawn fuq huma placeholders; ibdelhom bil-valuri approvati tiegħek.
X'għadu jivverifika PostgreSQL wara t-tunnel
Is-server jara konnessjoni mill-host SSH, loopback f'dan l-arranġament, u jqabbilha fl-ordni mar-regoli tal-awtentikazzjoni bbażati fuq il-host. Ir-rwol tal-bażi tad-data tiegħek għadu jrid jawtentika, u l-login SSH waħdu ma jagħti l-ebda identità tal-bażi tad-data. Ivverifika x'jaħseb is-server, mhux x'assuma l-klijent.
psql "service=gis-via-ssh" -c "select inet_server_addr(), current_user"Agħlaq is-sessjoni tat-trazmissjoni meta x-xogħol ikun lest; l-annotazzjoni lokali mbagħad tieqaf taħdem u xejn ieħor ma jinbidel. Passaġġ wieħed lejn il-bażi tad-data mhuwiex VPN għall-klijent GIS kollu, u t-trattament tiegħu bħala VPN huwa dak li jagħmel il-konnessjoni li jmiss tiġi djanjostikata ħażin.