Iż-żewġ klijenti qegħdin fuq l-istess laptop, jgħaddu mill-istess tunnel, u wieħed biss minnhom jikkonnettja. Dan it-tqabbil iħossu bħala prova li l-VPN huwa selettiv, meta l-ispjegazzjoni ferm aktar komuni hi li ż-żewġ klijenti jmorru lejn destinazzjonijiet differenti. GUI iżomm il-host, il-port, ir-rwol u s-settings TLS tiegħu stess u jibni bil-kwiet forward SSH meta jkollu bżonnu, filwaqt li psql iġib konnessjoni mill-valuri default ta’ libpq li forsi l-shell tiegħek diġà stabbilixxa. Li tirriproduċi l-konnessjoni li taħdem hija kwistjoni ta’ qari tas-settings tal-GUI, mhux ta’ installazzjoni mill-ġdid tat-tunnel.

Il-mit: klijent wieħed li jaħdem jipprova l-mogħdija

Jekk il-GUI jikkonnettja, it-tunnel iġorr it-traffiku, u dan huwa l-unika ħaġa li l-GUI jipprova. Ma jgħid xejn dwar liema indirizz psql isolvi, b’liema rwol jikkonferma l-identità, jew jekk is-socket li jiftaħ qatt joħroġ mill-magna. Il-mogħdija hija komuni; il-parametri mhumiex.

Forward lokali jwessa’ d-differenza. Il-GUI jista’ jikkonnettja ma’ 127.0.0.1 fuq port li forwardja permezz ta’ SSH, u dan is-semmiegħa jeżisti biss sakemm iddum is-sessjoni tal-GUI. psql dirett lejn localhost mingħajr il-forward jirċievi konnessjoni miċħuda li m’għandha x’taqsam xejn mal-VPN.

Aqra l-punt tat-tmiem li l-GUI fil-fatt juża

Iftaħ il-proprjetajiet tal-konnessjoni u ikkopja erba’ valuri: host, port, database u rwol. Imbagħad fittex tab tat-tunnel, għax forward SSH ibiddel indirizz privat f’port lokali u jbiddel dak li għandu jingħad lil psql.

SettingWhat the GUI holdsWhat psql uses when the value is absent
DestinationA saved hostname, sometimes behind a forwardA local Unix socket, not the remote endpoint
PortThe direct port or a forwarded local port5432, or the port from a service file
Role and databaseStored per connection profileYour operating-system user name
TLS identityIts own CA bundle and verification modeWhatever PGSSLMODE or the service file says
Startup filesNot read at allRead unless -X is passed

Kull ringiela tfalli f’saff differenti, u l-messaġġ li tirċievi jsemmi dak is-saff. L-inkollar tal-isem familjari tal-profil salvat f’psql ma jġorr l-ebda wieħed mill-valuri ta’ fuq, u isem ta’ servizz jiġi solvut permezz ta’ fajl li t-terminal forsi qatt ma jaqra.

X’jiret libpq mill-shell tiegħek

psql huwa klijent irqiq fuq libpq, u libpq jaqra l-ambjent qabel ma jaqra xi ħaġa oħra. Varjabbli bħal PGHOST, PGHOSTADDR, PGPORT, PGDATABASE, PGUSER, PGSERVICE u PGSSLMODE kull wieħed jista’ jiddevja parti mill-konnessjoni. Huma jintirtu minflok ma jinkitbu, għalhekk xejn fil-kmand li wrejt ma jurihom. PGSSLMODE esportat jista’ wkoll ibiddel dak li l-klijent jaċċetta mingħajr kelma fuq il-linja tal-kmand.

Tnejn minn dawn il-varjabbli jistħoqqilhom suspett l-ewwel. PGHOSTADDR jipprovdi destinazzjoni numerika li tgħaddi mis-soluzzjoni tal-ismijiet filwaqt li l-isem tal-host għadu jiddetermina l-identità taċ-ċertifikat, u PGSERVICE jiġbed host, database u għażliet TLS minn fajl tas-servizz. Li tixerred l-ambjent kollu biex tħarrek dan hija drawwa ħażina, għax jista’ jkun fih passwords u tokens mhux relatati; minflok agħżel il-varjabbli li jimpurtak minnhom.

Li tħalli barra kemm host kif ukoll hostaddr jagħżel socket tad-dominju Unix minflok indirizz tan-netwerk. Għalhekk sejħa psql mingħajr -h tista’ tirnexxi lokalment, jew tfalli b’żball tas-socket, mingħajr ma qatt tmiss il-mogħdija li juża l-GUI.

Ibgħat l-istess parametri bl-idejn

Bil-valuri tal-GUI f’idejk, għaddihom b’mod espliċitu u aqbeż il-fajl tal-bidu li jista’ jżid sostituzzjonijiet. Is-string tal-konnessjoni hawn taħt hija illustrattiva: ibdel il-punt tat-tmiem, il-port, id-database u r-rwol bil-valuri approvati mill-amministratur tiegħek, u żomm il-konfigurazzjoni tal-fiduċja li diġà taħdem.

psql -X "host=db.internal.example port=6432 dbname=orders user=report_ro sslmode=verify-full connect_timeout=5"

Tliet dettalji f’dak il-kmand huma intenzjonati. -X jrażżan il-fajl tal-bidu ta’ psql, għalkemm ma jrażżanx l-ambjent ta’ libpq jew definizzjoni ta’ servizz. connect_timeout=5 iżomm mogħdija fil-vojt milli ddendel it-terminal għal minuti. sslmode=verify-full iżomm il-verifiki taċ-ċertifikat u tal-isem tal-host mixgħula, u dan huwa eżattament il-parti li n-nies jitfu meta jidher żball TLS.

Jekk il-punt tat-tmiem approvat jinsab wara pooler, il-port 6432 u l-port 5432 jistgħu jaslu għall-istess data permezz ta’ identitajiet ta’ server differenti, u l-verifika tista’ tfalli fuq l-isem tal-pooler minflok fuq dak tad-database. Ikkoreġi l-isem fis-string tal-konnessjoni minflok ma ddgħajjef il-modalità.

Ħalli l-messaġġ tal-iżball jagħżel il-pass li jmiss

It-test tal-falliment jgħid kemm waslet l-attentat, u dan jegħleb kull tpattija dwar it-tunnel. Isem li ma jiġix solvut ifalli qabel ma jeżisti socket, timeout ifisser li l-mogħdija jew firewall waqqgħet packets, rifjut ifisser li xi ħaġa wieġbet u rrifjutat, u żball ta’ awtentikazzjoni ifisser li n-netwerk diġà ħadem.

psql -X -w "host=db.internal.example port=6432 dbname=orders user=report_ro sslmode=verify-full connect_timeout=5" -c '\conninfo'
env | grep -E '^PG'
psql --version

Qabbel il-ħruġ ta’ \conninfo mas-sessjoni ħajja tal-GUI: l-istess host, l-istess port, l-istess rwol, l-istess stat TLS. Meta dawn l-erbgħa jaqblu, il-VPN m’għandu xejn aktar x’jispjega. Sakemm ma jaqblux, kull bidla addizzjonali fit-tunnel hija tpattija dwar konnessjoni li t-terminal qatt ma għamel.

Artikli relatati