Ich versuche vergeblich den Port 5432 für ein per Paketverwaltung nachinstallierten PostgreSQL-Server zu öffnen.
Auf der lokalen Konsole kann ich den Postgre bedienen (Nutzer anlegen, Datenbank anlegen), aber weder lokal noch von einem anderen im lokalen Netz darauf zugreifen.
Folgendes habe ich gemacht:
ucr set security/packetfilter/tcp/5432/all=ACCEPT
systemctl restart univention-firewall.service
bzw. /etc/init.d/univention-firewall restart (mit und ohne flush)
bzw. service univention-firewall restart
Die ucs-Variable wird mir in der UMC aber immer korrekt angezeigt. Wenn ich sie mit “ucr unset …” wieder entferne ist sie auch in der UMC auch wieder gelöscht!
Aber der Port bleibt egal was ich mache wie zugenagelt. Mit nmap localhost bzw. nmap “192.168.XXX.XX” wird der Port nicht aufgeführt. Ich kann von extern auch nicht per pgAdmin darauf zugreifen.
Was kann ich noch tun um den Port zu öffnen? - Muss ich mich an die IP-Tabels ran machen??
Postgresql habe ich über die UMC installiert: hier habe ich die postgresql (supported)-Version genommen - müsste also die gleiche Datenbak sein wie über den genannten Konsolenaufruf.
Ich habe eben noch in der pg_hba.conf die IP-Adresse meines LAN-Rechners ergänzt, und siehe da: ich kann mit pgAdmin auf die Datenbank zugreifen.
Aber der Zugriff auf eine andere installierte Anwendung (Confluence, über Port 8092) funktioniert weiterhin nicht, weder lokal noch über LAN …
Das solltest du über die UCR-Variable postgres9/listenaddress machen, sonst geht die Änderungen bei den nächsten Updates wieder verloren-
Der Port ist zumindest offen. Aber sonst kann ich leider nicht viel dazu sage, da ich Confluence nicht kenne. Aber es läuft wahrscheinlich auch nicht auf allen Interfaces.
prüfen Sie mit folgendem Befehl, auf welche IP-Adresse PostgreSQL momentan lauscht:
lsof -PniTCP:5432 -sTCP:LISTEN
Beispielausgabe:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 607 postgres 3u IPv4 16199 0t0 TCP *:5432 (LISTEN)
postgres 607 postgres 6u IPv6 16200 0t0 TCP *:5432 (LISTEN)
Das bedeutet bei mir, dass mein PostgreSQL auf alle (das ist das *:5432) IPv4- und IPv6-Adressen lauscht. Oftmals auch zu sehen: 127.0.0.1:5432, was bedeuten würde, dass nur Anwendungen auf dem selben Server darauf zugreifen könnten, und vor allem nur über die Adresse 127.0.0.1 bzw. localhost.
Ich hatte zuvor PostGreSql erst de- und dann mit univention-install univention-postgresql
wieder installiert.
Die pg_hba.conf habe ich nur dahigehend angepasst alle peers und md5 auf trust zu setzen. Die IP-Adresse meines rechners, mit dem ich über LAN zugreifen will, habe in der UCR-Variable postgres9/listenaddress mit 192.168.42.9/24 eingetragen.
wenn lsof keine Ausgabe zeigt, dann läuft PostgreSQL schlicht momentan nicht. (Andere Möglichkeit ist, dass PostgreSQL für einen anderen Port konfiguriert ist, aber das ist eher unwahrscheinlich.)
Was man hierzu wissen muss, ist das es für jede PostgreSQL-Version und für jeden Cluster in der Version einen eigenen Dienst gibt — weil man gleichzeitig mehrere PostgreSQL-Versionen installiert haben kann, und in jeder der Versionen kann man mehrere Cluster haben. Der Dienst postgresql ist kein echter Dienst, sondern nur dafür da, alle einzelnen Versions-Cluster-Dienste zu starten — sozusagen als Regenschirm-Dienst. Daher ist es normal, dass postgresql als Status exited hat.
Welche PostgreSQL-Dienste es gibt, zeigt dir systemctl list-units | grep postgresql. Bei einer UCS-4.3-Installation mit der Standard-PostgreSQL-Version und dem Standard-Cluster main wäre das dann der Dienst postgresql@9.6-main.service; bei UCS 4.2 dann analog vermutlich postgresql@9.5-main.service (hab gerade kein 4.2er UCS mit PostgreSQL hier).