Ich versuche, meinen Server so einzurichten, dass Port 5432 (Postgres) nur vom lokalen Host aus zugänglich ist. Ich habe also alles abgelehnt und Port 5432 wieder hinzugefügt, kann jedoch keine Verbindung dazu herstellen.
Hier ist meine UFW-Konfiguration:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
22 ALLOW IN Anywhere
80 ALLOW IN Anywhere
443 ALLOW IN Anywhere
127.0.0.1 5432 ALLOW IN 127.0.0.1
22 (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
443 (v6) ALLOW IN Anywhere (v6)
80 ALLOW OUT Anywhere
22 ALLOW OUT Anywhere
443 ALLOW OUT Anywhere
53 ALLOW OUT Anywhere
33434:33524/udp ALLOW OUT Anywhere
127.0.0.1 5432 ALLOW OUT 127.0.0.1
80 (v6) ALLOW OUT Anywhere (v6)
22 (v6) ALLOW OUT Anywhere (v6)
443 (v6) ALLOW OUT Anywhere (v6)
53 (v6) ALLOW OUT Anywhere (v6)
33434:33524/udp (v6) ALLOW OUT Anywhere (v6)
Und netstat:
$ netstat -an | grep "LISTEN "
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp6 0 0 :::55056 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::5432 :::* LISTEN
tcp6 0 0 :::443 :::* LISTEN
Nur um zu bestätigen, dass es wirklich ufw ist, das die Verbindung verhindert, denn wenn ich es deaktiviere, funktioniert es einwandfrei. Irgendeine Idee, was ich übersehe?
Antwort1
Aus Ihrem Netstat können wir ersehen, dass Port 5432 nur einmal erwähnt wird (nämlich in der TCP6-Zeile, die auf lauscht) :::5432
. Das zeigt uns, dass Ihr Programm nur auf lauscht IPv6
. Ihre Firewall erlaubt nur IPv4
. Es gibt zwei Möglichkeiten: Entweder Sie lassen zu, dass sich eine IPv6-Adresse ::1
(das ist das IPv6
Äquivalent zu localhost) in Ihrer Firewall mit diesem Dienst verbindet, oder Sie veranlassen Ihr Programm, auf lauschen zu können IPv4
. Am besten ist es wahrscheinlich, beides zu tun.