2012-03-19 40 views
43

Me puedo conectar muy bien a un servidor postgresql remoto que tiene restricciones de conexión a unos pocos ips en el pg_hba.conf, pero esto es suficiente si tiene listen_addresses configurado en " * "en el archivo postgresql.conf?Cómo configurar postgresql postgresql.conf listen_addresses para múltiples direcciones IP

Ese archivo indica que ese parámetro puede tomar una lista de direcciones IP separadas por comas, pero si lo hago, perderé la capacidad de conectarme de forma remota.

PostgreSQL 8.4.9 rhel

+0

La convención predeterminada para permitir conexiones desde cualquier dirección IPv4 es '0.0.0.0'. Espero que esto te ayude. – MrGomez

+2

Quiero asegurarme de que las conexiones solo se realicen localmente o desde dos ips remotas. He configurado esto correctamente en pg_hba.conf, pero ¿qué debería listen_addresses establecer en – chrismarx

+0

¿Has probado un CSV como '192.168.0.1,192.168.0.2,127.0.0.1'? En el último caso, '127.0.0.1' es la dirección de bucle de retorno compatible con RFC para su sistema. Consulte este documento para obtener más información: http://www.rfc-editor.org/rfc/rfc3330.txt – MrGomez

Respuesta

59

listen_addresses controles que IPS el servidor responderá en adelante, no qué direcciones IP del servidor permitirá conexiones para autenticar a partir. Es completamente razonable y normal usar listen_addresses '*' para que el servidor acepte conexiones entrantes en cualquier ip asignada a una interfaz en el servidor de servidor postgresql, mientras usa pg_hba.conf para controlar el acceso en un nivel más detallado para el cual el servidor aceptará inicios de sesión para específicas bases de datos y usuarios.

+0

bien, eso es lo que quería saber, hace que la cuestión de obtener la lista separada por comas no sea discutible. ¡Gracias! – chrismarx

+0

Editado para hacerlo más explícito que los controles 'pg_hba.conf' * login *. El servidor aún acepta las conexiones TCP/IP en cualquier interfaz de escucha y conversa con el cliente de conexión. Simplemente concluye rápidamente que el cliente no pertenece a un rango de IP permitido y cierra la conexión. Esto significa, entre otras cosas, que los exploits previos a la autenticación podrían funcionar con la exclusión 'pg_hba', pero no si Pg simplemente no escuchaba en la interfaz en la que apareció el exploit. Las reglas de firewall, no 'listen_addresses', son la respuesta a eso. –

+0

Esta solución funcionó para mí en postgres 9.1. Gracias @CraigRinger –

2

El ajuste listen_addresses a '*' es normal, como señala dbenhur. También puede usar herramientas como iptables para denegar el acceso al puerto, aparte de ciertas direcciones IP remotas. Incluso puede hacer ambas cosas: la redundancia en seguridad no es necesariamente algo malo (aunque depender de la seguridad de la dirección IP no es tan bueno).

+0

Sí, ya hay firewalls basados ​​en ip, solo tratando de asegurarte de que todo esté configurado lo mejor posible- – chrismarx

Cuestiones relacionadas