host all all 0.0.0.0/24 md5
Hum, o que? Isso corresponde apenas a 0.0.0.*
, o que certamente não é o que você deseja.
Você quis dizer 0.0.0.0/0
, ou seja, todos os endereços IP?
Ou 192.168.0.0/16
, ou seja, "tudo na minha LAN, incluindo o firewall e o tráfego NAT que passa por ele"?
Você está usando NAT, então o PostgreSQL nunca verá os IPs externos. Conexões através do firewall virão do IP interno do firewall. Se você quisesse adicionar uma regra somente para conexões do próprio firewall ou conexões que chegassem através dela, você adicionaria uma que correspondesse ao IP interno exato do seu firewall com a máscara /32
, ou seja, apenas esse IP.
A configuração que você sugere é razoável, a propósito. Você precisará de encaminhamento de porta na máquina de firewall, é claro. Você provavelmente desejará ativar keep-alive TCP no PostgreSQL para impedir que o firewall solte as conexões inativas devido aos tempos limite da tabela de controle de conexão.