UFW で許可されているにもかかわらず、ポート 5432 にローカルで接続できない

UFW で許可されているにもかかわらず、ポート 5432 にローカルで接続できない

ポート 5432 (Postgres) がローカルホストからのみアクセスできるようにサーバーを設定しようとしています。 そのため、すべてを拒否し、ポート 5432 を再度追加しましたが、接続できません。

これが私の UFW 設定です:

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

そして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

無効にすると正常に動作するので、接続を妨げているのが本当に ufw であることを確認します。何が足りないのか、何か分かりますか?

答え1

netstat から、ポート 5432 に言及しているのは 1 つだけであることがわかります (つまり、 で listen している tcp6 の行です) :::5432。これは、プログラムが でのみ listen していることを示していますIPv6。ファイアウォールは のみを許可しますIPv4。2 つのオプションがあります。1 つは、ファイアウォールでそのサービスに接続するために IPv6 アドレス::1( IPv6localhost に相当) を許可することであり、もう 1 つは、プログラムを で listen させることですIPv4。おそらく、両方を行うのが最善でしょう。

関連情報