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.
- 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.
- 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
- 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.
- 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 usuariopostgres
. - 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
. - 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
. - 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. 🚀