Ir al contenido principal

Cómo dar acceso a una ip externa a postgresql y concediendo permiso desde iptables

Recientemente tuve la necesidad de aplicar un par de ajustes en nuestro SGDB (postgresql) en uno de nuestros entornos de desarrollo.

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:
  1. Proveer acceso desde PG a un usuario externo.
  2. 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

Entradas populares de este blog

Follow up Java.

Java: So far, so good!A poco más de 20 días de una nueva aventura profesional, la perspectiva de aprovechamiento, tiempos de aprendizaje y transferencia del conocimiento ha sido interesante, en realidad muy positiva.

Después de casi 3 semanas de haber comenzado, el aprendizaje de los conceptos base (knowledge base, término ampliamente utilizado en el área), la familiarización con la estructura del código, la codificación en sí, comienzan a dar frutos y a tomar forma.
¿Qué hemos aprendido hasta el momento?
Estructura del lenguajeTipos de variables, variables de miembros y cómo declararlasUso de operadores y concepto de operandosEstructura básica de las clases, objetos, interfaces, packagesHerencia de objetos, instancias, atributos estáticos, parámetros, variables, métodosEntre otros temas, esos son los avances.
En retrospectiva, el bagaje de conocimiento previo (en lo personal) ha sido de gran impacto en términos positivos y la curva de aprendizaje muy tenue. A decir verdad, y con base en …

Ejercicios para mantener la habilidad matemática y de programación

En unos de mis cursos recientemente tomados encontré un sitio que me pareció interesante, y es https://projecteuler.net/

Esta lleno de problemas comunes que podemos practicar y mantener nuestras habilidades matemáticas y de programación.

¡Ejercicios que podemos resolver en nuestros tiempos libres!

How a feature collection of points should looks like

¿How a feature collection of points should looks like?

Do not forget, this is a JSON notation.

{
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [-105.02, 39.61]
        },
        "properties": {
            "prop0": "value0"
        }
    }]
};

For example the small code above can be added to a Leaflet library to see how this run. intelimapa.com is using this approach for feeding its clients maps.