Estou tentando configurar meu servidor para que a porta 5432 (Postgres) seja acessível apenas no host local. Então neguei tudo e adicionei a porta 5432, mas não consigo me conectar a ela.
Aqui está minha configuração do 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)
E 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
Só para confirmar é mesmo o ufw que impede a conexão, pois se eu desabilitar ele funciona bem. Alguma ideia do que estou perdendo?
Responder1
No seu netstat, podemos ver que há apenas uma menção à porta 5432 (ou seja, a linha tcp6 escutando :::5432
. Isso nos mostra que seu programa está apenas escutando IPv6
. Seu Firewall só permite IPv4
. Existem duas opções, uma é que você permitir que o endereço IPv6 ::1
(que é o IPv6
equivalente localhost) se conecte a esse serviço em seu firewall, e a outra é fazer com que seu programa escute IPv4
. O melhor é provavelmente fazer as duas coisas.