Publicado en

Cómo Instalar PostgreSQL y Configurarlo para Acceso Remoto en tu Servidor

PostgreSQL es una de las bases de datos más robustas y avanzadas. En este tutorial, aprenderás a instalar PostgreSQL en tu servidor y a configurarlo para poder acceder a él de manera remota. Además, te daremos algunos consejos de seguridad para proteger tu base de datos.

Paso 1: Actualizar el sistema

Antes de empezar, es importante asegurarse de que tu sistema esté actualizado. Ejecuta los siguientes comandos:

sudo apt update && sudo apt upgrade -y

Paso 2: Instalar PostgreSQL

Para instalar PostgreSQL en tu servidor, ejecuta el siguiente comando:

sudo apt install postgresql postgresql-contrib -y

Esto instalará tanto PostgreSQL como algunas herramientas adicionales útiles para gestionar la base de datos.

Paso 3: Verificar la instalación

Una vez que PostgreSQL esté instalado, verifica que el servicio está corriendo correctamente:

sudo systemctl status postgresql

Si el servicio está en ejecución, deberías ver algo como esto:

postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since...

Paso 4: Acceder a PostgreSQL

Ahora, accede a la consola de PostgreSQL como el usuario postgres:

sudo -i -u postgres
psql

Deberías ver la consola de PostgreSQL, algo como:

psql (12.3 (Debian 12.3-1.pgdg100+1))
Type "help" for help.

Paso 5: Crear un nuevo rol (usuario)

Para permitir el acceso remoto, es recomendable crear un usuario dedicado con permisos específicos. En la consola de PostgreSQL, ejecuta:

CREATE ROLE tu_usuario WITH LOGIN PASSWORD 'tu_contraseña';
ALTER ROLE tu_usuario CREATEDB;

Reemplaza tu_usuario y tu_contraseña por los valores que desees.

Paso 6: Configurar PostgreSQL para acceso remoto

Para permitir el acceso remoto, necesitas modificar dos archivos de configuración.

  1. Modificar el archivo postgresql.conf

Edita el archivo de configuración de PostgreSQL para permitir conexiones remotas:

sudo nano /etc/postgresql/12/main/postgresql.conf

Busca la línea #listen_addresses = 'localhost' y cámbiala a:

listen_addresses = '*'

Esto permitirá que PostgreSQL acepte conexiones de cualquier dirección IP.

  1. Modificar el archivo pg_hba.conf

Edita el archivo pg_hba.conf para permitir conexiones remotas de usuarios específicos:

sudo nano /etc/postgresql/12/main/pg_hba.conf

Agrega la siguiente línea al final del archivo:

host    all             tu_usuario        0.0.0.0/0            md5

Esto permitirá que el usuario tu_usuario se conecte desde cualquier dirección IP. Puedes reemplazar 0.0.0.0/0 con una dirección IP específica o un rango si prefieres restringir los accesos.

Paso 7: Reiniciar el servicio de PostgreSQL

Después de hacer estos cambios, es necesario reiniciar PostgreSQL para que se apliquen:

sudo systemctl restart postgresql

Paso 8: Configurar el firewall

Si tienes un firewall activo, necesitarás permitir el acceso al puerto 5432, que es el puerto por defecto de PostgreSQL. Ejecuta el siguiente comando para permitir el tráfico en ese puerto:

sudo ufw allow 5432/tcp

Paso 9: Conectar remotamente a PostgreSQL

Desde una máquina remota, puedes probar la conexión a la base de datos utilizando el cliente psql:

psql -h <IP_DEL_SERVIDOR> -U tu_usuario -d nombre_base_datos

Reemplaza <IP_DEL_SERVIDOR>, tu_usuario y nombre_base_datos por los valores correspondientes.


Recomendaciones de seguridad

  1. Configurar una firewall más restrictiva: Aunque hemos abierto el puerto 5432, es recomendable limitar el acceso solo a las direcciones IP necesarias. Usa un firewall o VPN para restringir quién puede acceder a tu servidor.
  2. Deshabilitar el acceso como el usuario postgres: Por razones de seguridad, asegúrate de que los accesos sean realizados mediante usuarios creados específicamente para tus aplicaciones. Evita acceder directamente como el usuario postgres.
  3. Usar conexiones cifradas: Si tu servidor está accesible a través de internet, es recomendable configurar conexiones cifradas utilizando SSL para asegurar la privacidad de los datos. Puedes habilitar SSL en PostgreSQL modificando el archivo postgresql.conf.
  4. Establecer contraseñas fuertes: Asegúrate de que todos los usuarios de PostgreSQL tengan contraseñas seguras. Puedes generar contraseñas fuertes utilizando herramientas como openssl rand -base64 12.
  5. Mantener el sistema actualizado: Realiza actualizaciones regulares tanto para PostgreSQL como para el sistema operativo para protegerte contra vulnerabilidades conocidas.

Conclusión

Con estos pasos habrás instalado PostgreSQL en tu servidor y lo habrás configurado para que pueda ser accedido remotamente. Recuerda seguir las recomendaciones de seguridad para mantener tu base de datos segura y proteger la información confidencial de tus aplicaciones.

¡Listo! Ahora puedes empezar a gestionar tus bases de datos PostgreSQL de manera remota de forma segura y eficiente. 🚀


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *