QGIS ferbine mei PostGIS efter in VPN: stap foar stap
Rjochtsje QGIS op PostGIS of WMS efter in VPN: skied de tunnel fan it einpunt fan de tsjinst, hâld verify-full TLS en test elke grins op folchoarder.
QGIS lêst elk paad dat syn gegevensoanbieders berikke kinne, dus in oansteande VPN is mar de helte fan de ynstelling. De tunnel jout it buroblêd in rûte en in belied foar nammeoplossing; it projekt hat noch it einpunt fan de tsjinst, it protokol fan de oanbieder en de oanmeldgegevens nedich dy’t de tsjinst akseptearret. Dat binne trije aparte fjilden, en de iepenbiere listener fan de VPN yn in databankfjild type is gjinien fan harren. Dizze rûnlieding folget ien PostGIS-laach fan it QGIS-formulier oant in weromjûn rige en neamt de grins dy’t elke stap bewissiget.
Begjin by de laach, net by de VPN
Elk type laach berikt in oar soart einpunt. In PostGIS-laach iepenet in PostgreSQL-ferbining mei in host, poarte, databank en rol. In WMS- of WFS-laach hellet in tsjinst-URL en ûntleedt dan in dokumint mei mooglikheden. In shapefile op in netwurkdiel hat allinnich in triempad nedich dat it bestjoeringssysteem iepenje kin. Om’t dat trije ferskillende meganismen binne, seit in leech projekt jo neat oant jo witte hokker jo debugge.
Freegje de GIS-operateur om it einpunt, de poarte, de fereaske identiteit en it tagongsbelied dat foar jo akkount jildt. Hâld de hostnamme fan de tsjinst krekt sa’t dy útjûn is as de útrulling ôfhinget fan privee DNS of fan nammeckontrôles yn it sertifikaat. It werbrûken fan in hostadres dat kopiearre is út de bewarre ferbining fan in oare brûker is de fluchste wei nei in masine dy’t antwurdet mar in âldere databank hat.
Rûtes, tastiene boarnen en nammeoplossing hearre by wa’t de VPN beheart. In formulier foar gegevensboarne kin in rûte dy’t it tunnelprofyl nea stjoerd hat net ynstallearje, en it kin in gateway-belied net ferbreedzje. As de host oplost en de poarte antwurdet, is de netwurkkaart fan it probleem klear.
Fier it privee einpunt yn dat de operateur útjûn hat
It PostgreSQL-formulier yn QGIS spegelet de fjilden dy’t libpq ferwachtet, folje it dus yn yn deselde folchoarder as in ferbining fan de opdrachtline. Tsjinst en host nimme de databankmasine, poarte nimt de listener dy’t de tsjinner eins iepenet, en databank nimt de krekte katalogus ynstee fan de standert fan de tsjinner. Bewarje it wachtwurd yn in autentikaasjekonfiguraasje ynstee fan yn it projektbestân, sadat in dield projekt gjin oanmeldgegevens draacht.
Skied de twa nammen foardat jo wat type. De namme fan de gateway heart by de VPN-klant en de namme fan de databank by QGIS, en se binne selden deselde 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
As de databank op in oare masine efter de gateway stiet, moat de namme yn it formulier dy masine wêze. Privee DNS troch de tunnel is wat de namme wurkje lit, en in projekt dat allinnich oplost wylst jo ferbûn binne, docht it goed en cachet net min.
Hâld de TLS-modus fan de databank apart fan de tunnel
De SSL yn in VPN-produktnamme beskriuwt de tunnel, net de databanksesje. QGIS jout de PostgreSQL SSL-modus troch oan libpq, en dy modus regelet oft de klant it sertifikaat fan de tsjinner ferifiearret en oft er de hostnamme dêryn kontrolearret. verify-fulldocht beide, dêrom is it de modus dy’t it wurdich is te hâlden as it sertifikaat de namme fan de tsjinst draacht.
De modus ferleegje nei disable om’t de tunnel al fersifere is, hellet de kontrôle fuort dat de tsjinner dy’t jo berikt hawwe de tsjinner is dy’t jo fregen. As de ferifikaasje mislearret, is de gewoane oarsaak in nammferskil of in ûntbrekkend woartelsertifikaat, en beide binne te reparearjen sûnder de ferbining te ferswakjen. Rjochtsje sslrootcert op de CA dy’t de operateur publisearret en hâld de hostnamme yn it formulier identyk oan de namme yn it sertifikaat.
In tunnel mei in privee rûte en in databank mei in jildich sertifikaat kinne noch altyd mislearje op de rol. Oanmeldgegevens fan de applikaasje binne apart fan dy fan de VPN, en in akkount dat him by de gateway autentisearret hat gjin ymplisite rjochten yn PostgreSQL.
Test elke grins op folchoarder en lês de earste mislearring
Wurkje fan de klant nei bûten yn in fêste folchoarder: nammeoplossing, TCP-berikberens, TLS, autentikaasje en dan de query sels. De earste stap dy’t mislearret is de iennichste dy’t it wurdich is te melden, en foarút springe jout flaterberjochten fan in grins dy’t jo noch net berikt hawwe. Fjouwer opdrachten dekke de earste fjouwer stappen.
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
In leech antwurd fan getent is in oplossingsprobleem, net in databankprobleem. In wegere of ferrûne nc betsjut dat in rûte of firewall-regel ûntbrekt, wat in repaaraasje oan de gatewaykant is. In TLS-flater fan psql betsjut dat it sertifikaat of de namme ferkeard is, wylst password authentication failed betsjut dat jo PostgreSQL berikt hawwe en de oanmeldgegevens it probleem binne. Foar in WMS-laach jout de curl oprop de mooglikheden-XML werom dy’t QGIS ûntlade soe, dus in HTML-oanmeldside yn dy útfier ferklearret daliks in lege laach.
In PostgreSQL-flater is goed nijs yn ferliking mei in time-out. It bewissiget dat de bestimming antwurde, wat it ticket fan it netwurkteam nei de databank- of GIS-behearder ferpleatst. It ferskil yn it rapport hâlde sparret in rûn.
As it projekt iepenet mei lege lagen
Kontrolearje yn QGIS de bewarre boarne fan de laach foardat jo wat opnij ynfiere. De eigenskippen fan de laach litte de krekte ferbiningstring sjen dy’t it projekt bewarre hat, en in dûbele ferbining mei in âldere host is in gewoane rest fan in earder kantoarnetwurk. It projekt opnij lade nei it reparearjen fan in ferbining lêst de oanbieder net altyd opnij, dus ferwiderje de laach en foegje har opnij ta út de korrizjearre ferbining.
Befêstigje dan dat de autentikaasjekonfiguraasje dy is dy’t oan de laach ferbûn is, net ien dy’t allinnich yn de list stiet. In laach dy’t mei in oare autentikaasjekonfiguraasje bewarre is, mislearret stil yn it browserpaniel, wylst de selsstannige psql test slagget.
As de laach lade is, bewarje it projekt mei relative paden allinnich foar bestannen en hâld tsjinstferbiningen neamd nei har einpunt. De folgjende persoan dy’t it projekt erft kin dan sjen hokker host in brutsen laach ferwachte sûnder in ticket te iepenjen.