QGIS loeb iga rada, kuhu tema andmepakkujad ulatuvad, seega töötav VPN on vaid pool seadistust. Tunnel annab töölauale marsruudi ja nimehõivepoliitika; projekt vajab endiselt teenuse lõpp-punkti, pakkuja protokolli ja volitusi, mida teenus aktsepteerib. Need on kolm eraldi välja ja VPN-i avaliku kuulaja tiputamine andmebaasiväljale ei ole neist ükski. See juhend jälgib üht PostGIS-kihti QGIS-i vormist tagastatud reani ja nimetab piiri, mida iga samm tõestab.

Alustage kihist, mitte VPN-ist

Iga kihitüüp jõuab eri liiki lõpp-punkti. PostGIS-kiht avab PostgreSQL-ühenduse hosti, pordi, andmebaasi ja rolliga. WMS- või WFS-kiht toob teenuse URL-i ja seejärel parsib võimaluste dokumendi. Võrgukettal olev shapefile vajab vaid failiteed, mille operatsioonisüsteem suudab avada. Kuna need on kolm erinevat mehhanismi, ei ütle tühi projekt teile midagi enne, kui teate, millist neist silute.

Küsige GIS-operaatorilt lõpp-punkti, porti, nõutavat identiteeti ja teie kontole kehtivat juurdepääsupoliitikat. Hoidke teenuse hostinimi täpselt sellisena, nagu see väljastati, kui juurutus sõltub privaatsest DNS-ist või sertifikaadi nimekontrollist. Teise kasutaja salvestatud ühendusest kopeeritud hostiaadressi taaskasutamine on kiireim tee masinani, mis vastab, kuid hoiab vanemat andmebaasi.

Marsruudid, lubatud ressursid ja nimehõive kuuluvad VPN-i haldajale. Andmeallika vorm ei saa paigaldada marsruuti, mida tunneliprofiil kunagi ei saatnud, ega laiendada lüüsi poliitikat. Kui host laheneb ja port vastab, on probleemi võrgupool lõppenud.

Sisestage operaatori väljastatud privaatne lõpp-punkt

QGIS-i PostgreSQL-vorm peegeldab välju, mida libpq ootab, seega täitke see samas järjekorras, nagu teeks käsurealt ühendus. Teenus ja host võtavad andmebaasimasina, port võtab kuulaja, mille server tegelikult avab, ja andmebaas võtab konkreetse kataloogi serveri vaikeväärtuse asemel. Hoidke parool autentimiskonfiguratsioonis, mitte projektifailis, et jagatud projekt ei kannaks volitusi.

Eraldage kaks nime enne, kui midagi tiputate. Lüüsi nimi kuulub VPN-kliendile ja andmebaasi nimi QGIS-ile ning need on harva sama host.

VPN gateway:   vpn.gis.lab.example       (profile only, not a data source)
Database host: db.gis.lab.example:5432   (PostGIS service)
Database name: gis_prod
TLS mode:      verify-full

Kui andmebaas asub lüüsi taga teises masinas, peab vormis olev nimi olema see masin. Privaatne DNS läbi tunneli on see, mis paneb nime tööle, ja projekt, mis laheneb ainult ühendatud olles, käitub õigesti, mitte ei vahemällu halvasti.

Hoidke andmebaasi TLS-režiim tunnelist eraldi

SSL VPN-toote nimes kirjeldab tunnelit, mitte andmebaasi seanssi. QGIS annab PostgreSQL-i SSL-režiimi libpq-le edasi ja see režiim juhib, kas klient kontrollib serveri sertifikaati ja kas ta kontrollib selles olevat hostinime. verify-fullteeb mõlemat, seepärast on see režiim, mida tasub hoida, kui sertifikaat kannab teenuse nime.

Režiimi langetamine disable peale, kuna tunnel on juba krüpteeritud, eemaldab kontrolli, et jõudsid serverisse, mida küsisid. Kui kontroll ebaõnnestub, on tavaline põhjus nime mittevastavus või puuduv juursertifikaat, ja mõlemad on parandatavad ühendust nõrgendamata. Suunake sslrootcert operaatori avaldatud CA-le ja hoidke vormis olev hostinimi sertifikaadis oleva nimega identne.

Privaatse marsruudiga tunnel ja kehtiva sertifikaadiga andmebaas võivad ikkagi rolli tõttu ebaõnnestuda. Rakenduse volitused on VPN-i volitustest eraldi ja lüüsi juures autentiv kontol ei ole PostgreSQL-is mingeid kaudseid õigusi.

Testige iga piiri järjekorras ja lugege esimest ebaõnnestumist

Töötage kliendist väljapoole kindlas järjekorras: nimehõive, TCP kättesaadavus, TLS, autentimine ja siis päring ise. Esimene ebaõnnestuv samm on ainus, mida tasub teatada, ja ette hüppamine annab veateateid piirilt, milleni te veel jõudnud ei ole. Neli käsku katavad esimesed neli sammu.

getent hosts db.gis.lab.example
nc -vz db.gis.lab.example 5432
psql "host=db.gis.lab.example port=5432 dbname=gis_prod sslmode=verify-full" -c 'select 1'
curl -sS 'https://wms.gis.lab.example/ows?service=WMS&request=GetCapabilities' | head -c 200

Tühi vastus käsult getent on nimehõive probleem, mitte andmebaasi probleem. Tagasi lükatud või aegunud nc tähendab, et marsruut või tulemüürireegel on puudu, mis on lüüsi poolel parandatav. TLS-viga psql tähendab, et sertifikaat või nimi on vale, samas kui password authentication failed tähendab, et jõudsid PostgreSQL-ini ja probleem on volitustes. WMS-kihi puhul tagastab curl kutse võimaluste XML-i, mida QGIS parsiks, seega HTML-sisselogimisleht selles väljundis selgitab tühja kihti kohe.

PostgreSQL-i viga on hea uudis võrreldes ajalõpuga. See tõestab, et sihtpunkt vastas, mis viib pileti võrgumeeskonnalt andmebaasi- või GIS-administraatorile. Selle eristuse hoidmine aruandes säästab ühe käigu.

Kui projekt avaneb tühjade kihtidega

Kontrollige QGIS-is kihi salvestatud allikat enne, kui midagi uuesti sisestate. Kihi omadused näitavad täpset ühendusstringi, mille projekt salvestas, ja vanema hostiga duplikaatühendus on tavaline jäänuk varasemast kontorivõrgust. Ühenduse parandamise järel projekti uuesti laadimine ei loe pakkujat alati uuesti, seega eemaldage kiht ja lisage see uuesti parandatud ühendusest.

Seejärel kinnitage, et autentimiskonfiguratsioon on kihiga seotud oma, mitte lihtsalt loendis olemas. Teise autentimiskonfiguratsiooniga salvestatud kiht ebaõnnestub brauseripaneelis vaikselt, samal ajal kui eraldiseisev psql test läbib.

Kui kiht laaditakse, salvestage projekt suhteliste radadega ainult failide jaoks ja hoidke teenuseühendused nende lõpp-punkti järgi nimetatud. Järgmine inimene, kes projekti pärib, näeb siis, millist hosti katkine kiht ootas, ilma piletit avamata.

Seotud artiklid