O que é um host adequado no PGAdmin para acessar o postgresql através do firewall

1

Aqui está minha situação.

Eu tenho o Postgresql instalado em um servidor Windows em uma LAN.

Eu tenho um servidor web IIS configurado fora da lan. Quero me conectar ao banco de dados postgresql do servidor da Web.

IP do servidor do Postgresql: 192.168.x.1

IP interno do firewall: 192.168.x.2
IP Externo do Firewall: 72.x.x.100

IP do servidor Web - acesso à LAN interna: 192.168.x.3
IP do servidor Web - Acesso à LAN externa: 70.x.x.100

O arquivo pg_hba.conf tem uma entrada: host all all 0.0.0.0/24 md5
O arquivo postgresql.conf tem uma entrada: listen_addresses = '*'
Isso deve remover todas as restrições de acesso do banco de dados.

Minha intenção final é ter um aplicativo GIS acessando esse banco de dados para incorporar dados em um site de mapeamento. Neste ponto, estou apenas tentando acessar o postgresql de forma alguma a partir do servidor da Web usando o PgAdmin.

Com essa configuração, supondo que a porta 5432 esteja aberta corretamente no firewall, qual endereço IP devo colocar na caixa Host para a conexão do servidor PGAdmin? Meu pensamento inicial é que deveria ser o Firewall External IP: 70.x.x.100 , mas isso está correto?

Por último, e vou dividir isso em uma nova pergunta, se necessário: esta configuração é mesmo lógica de um ponto de vista de desempenho e segurança, ou eu deveria estar fazendo isso de uma maneira diferente?

    
por Get Spatial 03.04.2014 / 19:37

1 resposta

1

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.

    
por 04.04.2014 / 01:33