Firewall - Ports lassen sich nicht öffnen?

german
ucs-4-3

#1

Hallo!

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! :slight_smile:

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??

Vielen Dank schon mal für die Hilfe!!

VG, Achim.


#2

Ich schätze mal das Problem ist nicht Firewall- sondern die Postgresql-Konfiguration. Aber poste mal die Ausgabe von

iptables -L

Du könntest übrigens einfach das Integrationspaket von Postgresql installieren:

univention-install univention-postgresql

#3

Vielen dank, für die schnelle Hilfe!!

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 …

Hier mal die Ausgabe von IPTABLES -L:

Iptables.txt (5.3 KB)


#4

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.


#5

Huhu,

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.

Gruß
mosu


#6

Vilene Dank!!

Ich komme leider nicht weiter!

iptables -L input -nv | grep 5432 liefert:
3   156   ACCEPT    tcp  --  *    *    0.0.0.0/0      0.0.0.0/0       tcp dpt:5432
lsof -PniTCP:5432 -sTCP:LISTEN

ergibt gar keine Ausgabe!! - Heul!

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.

Komme jetzt einfach nicht mehr weiter …


#7

Huhu,

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.)

Gruß
mosu


#8

/etc/init.d/postgresql status gibt mir aber
… Active: active (exited) since …


#9

Die Unit ist aktiviert (active = wird beim Booten gestartet), läuft aber momentan nicht (exited).


#10

Ich habe jetzt die UCR-Variable POSTGRES9/LISTENADDRESS auf 127.0.0.1 gesetzt und siehe da, lsof gibt mit folgende Info:

postgres 7568  postgres  3u  IPv4  56267   0t0  TCP  127.0.0.1:5432 (LISTEN)

systemctl status postgresql zeigt weiterhin active (excited)

Habe meine lokale IP-Adresse ergänzt, dann zeigt mir lsof jetzt auch beide IPs an! :slight_smile:

Ich kann jetzt mit pgAdmin auf meine PostgreSQL-Datenbanken zugreifen!! :-))

Vielen, vielen Dank für die super Unterstützung! - Ohne hätte ich echt aufgegeben …

VG, Achim.


#11

Huhu,

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).

Gruß
mosu


#12

Hallo!

Bei mir kommt zusätzlich zu postgresql€9.6-main.service noch:
system-postgresql.slice

Ist das ok? Odre kann das der Grund sein, dass Confluence bei der Installation keine PostgreSQL-Datenbank findet …?

Gute Nacht!! Und vielen Dank nochmal!!

Achim.


#13

Siehe man systemd.slice. Das hat überhaupt nichts mit dem ursprünglichen Problem zu tun und kann komplett ignoriert werden.