Recientemente tuve la necesidad de aplicar un par de ajustes en nuestro SGDB (postgresql) en uno de nuestros entornos de desarrollo.
Escenario encontrado:
Escenario encontrado:
- No tenía acceso al usuario administrador de PG postgres
- Contaba con un usuario de sistema (Linux) sudoer
- PG no estaba preparado para permitir conexiones desde fuera
- El sistema operativo tenia activo iptables y el puerto 5432 no estaba habilitado para escuchar en el exterior en una ip específica.
Me tocó leer un poco sobre cómo configurar PostgreSQL para permitir conexiones desde fuera y cómo configurar una regla en iptables que permitiera acceso al proveedor desde el exterior al puerto que necesitaba estuviera escuchando la ip del proveedor.
Resumiré en las siguientes líneas las configuraciones más importantes para:
- Proveer acceso desde PG a un usuario externo.
- Permitir comunicación entre la ip del usuario externo y nuestro puerto en el servidor donde está nuestro PG.
postgresql.conf
Primero localiza donde está tu archivo de config, puedes utilizar
#$ find / -name "postgresql.conf"
Debe aparecer la ruta donde estan estos archivos de configuración.
Descomentas la línea que dice y actualizas el valor a * si no lo tuviera.
#$ vi postgresql.conf
listen_addresses = '*'
pg_hba.conf
Añades la siguiente línea según tus necesidades.
#$ vi pg_hba.conf
host db_name user_db 127.0.0.1/32 md5
127.0.0.1/32 se refiere a la ip que deseas que acceda desde el exterior.
md5 se refiere al método de autenticación. Por defecto se usa md5.
Listo, ahora reinicas el servicio, en Linux podría ser:
#$ service postgresql restart
Finalmente para iptables, puedes ejecutar el siguiente comando:
#$ iptables −A INPUT −s 66.228.57.221 −p tcp −−dport 5432 −j ACCEPT
Para revisar si se añadió la entrada a iptables puedes ejecutar:
#$ iptables -L
Listo, puedes probar el acceso desde la máquina a la cual concediste el permiso de comunicación.
Comentarios
Publicar un comentario