[Lizmap-de] Falsche IP bei Postgis Laer Abfrage: Gelöst!
guenter at lizmap.de
guenter at lizmap.de
Mi Apr 20 01:46:50 PDT 2022
Hallo Wolfgang,
recht herzlichen Dank für die ausführliche Schilderung und das Du dir die Zeit dafür genommen hast.
Mir hilft es auf jeden Fall. Ich habe es mir bisher einfach gemacht und die Zugangsdaten im qgs-file gespeichert. Allerdings habe ich auch keine sicherheits- bzw. datenschutz- kritischen Daten. Und meistens eh nur einen „lesenden DB-User“. Aber Dein Weg ist natürlich der bessere und ich werde ihn bei Gelegenheit probieren.
Jetzt wünsche ich mir nur noch, dass auch jemand die Postgresql/PostGIS-Suche in Lizmap so verständlich beschreiben kann😊
Viele Grüße
Günter
Von: Lizmap-de <lizmap-de-bounces at lists.osgeo.org> Im Auftrag von Wolfgang Meinolf
Gesendet: Mittwoch, 20. April 2022 10:33
An: lizmap-de at lists.osgeo.org
Betreff: Re: [Lizmap-de] Falsche IP bei Postgis Laer Abfrage: Gelöst!
Hallo zusammen,
ich habe die Osterfeiertage genutzt, um mich nochmals in aller Ruhe mit dem Problem zu beschäftigen, warum QGIS Projekte mit Postgresql/Postgis LAyerb nicht funktionieren. Hier die Ergebnisse:
Die Ursache lag an inkonsistenten unterschiedlichen pg-service.conf Dateien. Ich habe auf dem Server verschiedene user/owner. Zum ersten meinen eigenen, dann postgres von der DB sowie www-data vom Server. pg-service.conf kann entweder im home Verzeichnis des users liegen oder im postgres Verzeichnis. Ich nahm an, dass dies dasselbe Verzeichnis ist, in dem auch pg_hba.conf liegt. In meinem Fall: /etc/postgresql/12/main/. Richtig ist aber das Verzeichnis: /etc/postgresql-common/.
Wichtig ist auch, dass die Zugriffsrechte passen. Da ich die Datei per sudo generiert habe war der owner root, ich habe ihn auf postgres gesetzt. Die Rechte standen auf 600, ich habe sie auf 644 gesetzt und so allen Leserechte gegeben. Diese pg-service.conf gilt systemweit für alle user!
Die lokalen pg-service.conf gelten für die jeweiligen User. Sind diese vorhanden, dann wird die systemweite pg-service.conf in /etc/postgresql-common/ ignoriert und die des users genommen. Da ich keine individuellen Rechte benötige habe ich die pg-service.conf in allen home Verzeichnissen gelöscht. Es gibt also nur noch die zentrale.
Eine Ursache, dass die Postgis Layer nicht angezeigt wurden ist aus meiner Sicht das fehlende Leserecht gewesen. Aber es gab aus meiner Sicht noch eine weitere mögliche Fehlerquelle. Die pg-service.conf hat normalerweise folgenden Inhalt:
[servicename]
host=url
port=port
dbname=db-name
user=user-name
password=passwort
Mein Server ist natürlich HTTPS bzw. leitet HTTP auf HTTPS weiter. Beim Text mit einem Projekt, bei dem die credentials als Klartext im QGIS Projekt gespeichert waren fiel mir auf, dass dort ein sslmode=disable stand. Grund hierfür war der Umstand, dass beim QGIS (zumindest bei mir) die default Vorgabe bei neuen Postgis Verbindungen so aussieht:
SSL Modus abschalten. Darauf hatte ich natürlich nicht geachtet. So konnte natürlich keine Verbindung vom Portal zur DB funktionieren. Weder per Localhost noch per URL, weder mit http noch mit HTTPS. Für die pg-service.conf bedeutet dies, dass noch eine zusätzliche Zeile aufgenommen werden sollte. Diese lautet jetzt bei mir: sslmode=prefer, also:
[servicename1]
host=url1
port=port1
dbname=db-name1
user=user-name1
password=passwort1
sslmode=prefer
[servicename2]
host=url2
port=port2
dbname=db-name2
user=user-name2
password=passwort2
sslmode=prefer
usw.
Damit und mit der 644 Berechtigung sowie dem owner postgis funktioniert nun alles einwandfrei. Im QGIS Projekt wird die Verbindung nicht mehr mit den credentials hergestellt sondern mittels des service Namen. Dazu muss lediglich unter Windows im HOME Verzeichnis ebenfalls eine .pg-service.conf liegen. Aber ACHTUNG: Hier mit führendem Punkt!!. Der Inhalt ist völlig identisch mit der auf dem Server.
So, ich hoffe, das war nicht allzu lang. Ich würde mich freuen, wenn das Ganze dem einen oder andren hilft, falls es Probleme mit Postgis Layern auf Lizmap gibt.
Damit schöne Grüße und eine angenehme Restwoche.
Wolfgang Meinolf
Von: Lizmap-de <lizmap-de-bounces at lists.osgeo.org <mailto:lizmap-de-bounces at lists.osgeo.org> > Im Auftrag von Wolfgang Meinolf
Gesendet: Dienstag, 12. April 2022 15:38
An: guenter at lizmap.de <mailto:guenter at lizmap.de>
Cc: lizmap-de at lists.osgeo.org <mailto:lizmap-de at lists.osgeo.org>
Betreff: Re: [Lizmap-de] Falsche IP bei Postgis Laer Abfrage
Hallo Günter,
ja, das werde ich prüfen und ggf. ändern und ja, ich habe definitiv ein Problem, aber leider viel zu wenig Zeit, mich intensiv darum zu kümmern. Die QGIS-Servervariable hab ich gesetzt, sie greift aber nicht. Ich vermute einen zentralen Grund, genauso wie bei der falschen IP Adresse.
Zum Glück laufen die Portale mit den „normalen“ Layern fantastisch. So ist meine Produktiv-Umgebung ungestört. Gerade vor zwei Stunden ist ein weiteres Extranet Portal für eine Behörde dazugekommen.
Ich werde auch prüfen, ob vielleicht in den QGIS Settings / profil noch irgendwelche „Leichen“ zu obsoleten Test Zugängen enthalten sind.
Danke und Gruß
Wolfgang
Von: guenter at lizmap.de <mailto:guenter at lizmap.de> <guenter at lizmap.de <mailto:guenter at lizmap.de> >
Gesendet: Dienstag, 12. April 2022 07:39
An: Wolfgang Meinolf <wmeinolf at bbv-deutschland.de <mailto:wmeinolf at bbv-deutschland.de> >; lizmap-de at lists.osgeo.org <mailto:lizmap-de at lists.osgeo.org>
Betreff: AW: [Lizmap-de] Falsche IP bei Postgis Laer Abfrage
Hallo Wolfgang,
hast Du den PostgreSQL-Layer im QGIS-Projekt über Localhost eingebunden? Dann würde ich es mal mit der IP-Adresse des Servers probieren.
Aber wieso erscheint noch die Fehlermeldung „service non disponible“? Hast Du die QGIS-Servervariable nicht gesetzt oder greift sie nicht?
Ich befürchte Du hast da doch noch ein anderes Problem.
Gruß
Günter
Von: Lizmap-de <lizmap-de-bounces at lists.osgeo.org <mailto:lizmap-de-bounces at lists.osgeo.org> > Im Auftrag von Wolfgang Meinolf
Gesendet: Montag, 11. April 2022 18:58
An: lizmap-de at lists.osgeo.org <mailto:lizmap-de at lists.osgeo.org>
Betreff: [Lizmap-de] Falsche IP bei Postgis Laer Abfrage
Hallo zusammen,
suche immer noch den Fehler, warum meine QGIS Projekte mit Postgis Layern nicht laden. Grade machte ich eine interessante Beobachtung. Beim Klick auf das Portal kam service non disponible (wie leider üblich). Im Lizmap Log bekam ich folgenden Eintrag:
2022-04-11 18:38:14 84.136.148.146 error GetCapabilities result code: 500
2022-04-11 18:38:14 84.136.148.146 error GetCapabilities result code: 500
2022-04-11 18:38:14 84.136.148.146 error GetCapabilities result code: 500
2022-04-11 18:38:14 84.136.148.146 error An error has been raised when loading WMS GetCapabilities: HTTP Code 400
Die Postgis DB läuft eigentlich auf dem Server, auf dem auch Lizmap läuft. Dessen IP Adresse ist aber nicht 84.136.148.146. Nachforschung ergab, dass es die heutige externe IP Adresse meiner Fritzbox ist. Die Postgis DB wird offenbar fälschlicherweise hinter meinem DSL Anschluss vermutet. Wo in LIZMAP oder beim QGIS Server könnte ich einen Konfigurationsfehler gemacht haben?? Ich kann mir nicht vorstellen, dass ich meine DynDns irgendwo eingetragen habe.
Im betreffenden QGIS Projekt sind die Zugangsdaten zu Postgis aktuell für Tests in Klartext eingetragen. Da kann eigentlich auch nichts auf den eigenen DSL Anschluss zeigen.
Eigentlich arbeite ich auf dem Server und bei LIZMAP nur mit der Serverdomain oder Localhost.
Gruß
Wolfgang
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.osgeo.org/pipermail/lizmap-de/attachments/20220420/b3d02623/attachment-0001.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : image001.jpg
Dateityp : image/jpeg
Dateigröße : 52680 bytes
Beschreibung: nicht verfügbar
URL : <http://lists.osgeo.org/pipermail/lizmap-de/attachments/20220420/b3d02623/attachment-0001.jpg>
Mehr Informationen über die Mailingliste Lizmap-de