UFW에서 허용하더라도 포트 5432에 로컬로 연결할 수 없습니다.

UFW에서 허용하더라도 포트 5432에 로컬로 연결할 수 없습니다.

포트 5432(Postgres)가 localhost에서만 액세스 가능하도록 서버를 설정하려고 합니다. 그래서 모든 것을 거부하고 포트 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에 대해 단 한 번 언급된 것을 볼 수 있습니다(즉, 를 수신하는 tcp6 라인입니다 :::5432. 이는 귀하의 프로그램이 에서만 수신하고 있음을 보여줍니다 IPv6. 방화벽은 에서만 허용합니다 IPv4. 두 가지 옵션이 있습니다. 하나는 IPv6 주소 ::1( IPv6localhost와 동일)를 방화벽의 해당 서비스에 연결하도록 허용하고, 다른 하나는 프로그램이 수신하도록 하는 것입니다 IPv4. 아마도 두 가지를 모두 수행하는 것이 가장 좋습니다.

관련 정보