Cómo instalar PostgreSQL 14 en Fedora 40 o 39 Linux

PostgreSQL 14 es un sistema de gestión de bases de datos relacionales de código abierto reconocido por su solidez, escalabilidad y amplio conjunto de funciones. Una de las características clave introducidas en PostgreSQL 14 fue la capacidad de manejar la clasificación incremental, lo que mejoró significativamente el rendimiento de las consultas para cargas de trabajo específicas. Esta versión también mejoró el procesamiento paralelo, la aspiración y el procesamiento JSON, lo que la convierte en una excelente opción para entornos empresariales y de desarrollo. Aunque están algunas versiones por detrás de la última versión, PostgreSQL 14 sigue siendo una opción confiable y ampliamente compatible.

Para instalar PostgreSQL 14 en Fedora 40 o 39 usando la terminal de línea de comandos, puede importar e instalar directamente desde las compilaciones RPM de PostgreSQL. Este método garantiza que tenga la última versión y simplifica las futuras actualizaciones.

Actualice Fedora antes de la instalación de PostgreSQL 14

Para comenzar, actualice su sistema Fedora para asegurarse de que todos los paquetes estén actualizados. Este paso ayuda a prevenir posibles conflictos durante la instalación de PostgreSQL. Ejecute el siguiente comando:

sudo dnf update --refresh

Importar repositorio de claves GPG RPM de PostgreSQL

Comience importando el repositorio de PostgreSQL. Esta acción garantiza el acceso a las versiones más recientes de PostgreSQL. Selecciona e importa el repositorio correspondiente a tu versión de Fedora Linux.

Importar PostgreSQL 14

Nota: Recuerde importar la versión correcta para su versión de distribución de Fedora:

Para Fedora 40, use este comando:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Para Fedora 39, el comando es ligeramente diferente:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Deshabilitar el módulo PostgreSQL predeterminado (si corresponde)

Los repositorios predeterminados de Fedora suelen incluir PostgreSQL como módulo. Para priorizar la instalación desde el repositorio de PostgreSQL, es recomendable desactivar este módulo predeterminado. Utilice el siguiente comando para hacerlo:

sudo dnf -qy module disable postgresql

Finalizar la instalación de PostgreSQL 14

Continúe con la instalación de PostgreSQL 14

.Utilice este comando para instalar el servidor PostgreSQL 14 y su documentación:

sudo dnf install postgresql14-server postgresql14-docs -y

Además, puede instalar el paquete de desarrollo de la siguiente manera.

sudo dnf install postgresql14-devel

Por último, puede instalar algunos módulos, binarios y bibliotecas adicionales de uso común.

sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit

Inicializar la base de datos PostgreSQL 14

Una vez instalada, debes ejecutar el siguiente comando para inicializar la base de datos; De no hacerlo, PostgreSQL no funcionará.

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

Habilitar el servicio Systemd PostgreSQL 14

De forma predeterminada, PostgreSQL no está activado. Utilice el siguiente comando para iniciar el servicio inmediatamente y al iniciar el sistema.

sudo systemctl enable postgresql-14 --now

Verificar la instalación de PostgreSQL 14

A continuación, verifique el estado para asegurarse de que el software esté instalado y activado sin errores usando el siguiente comando.

systemctl status postgresql-14

Comandos de servicio Systemd para PostgreSQL 14

Gestión del servicio PostgreSQL 14

El servidor de base de datos PostgreSQL opera como un servicio systemd llamado "postgresql-14" en Fedora. Los administradores del sistema pueden administrar este servicio utilizando un conjunto de comandos systemd vitales para el mantenimiento de rutina y la resolución de problemas.

Detener el servidor PostgreSQL 14

Para detener el servicio PostgreSQL, quizás por mantenimiento o cambios de configuración, use este comando:

sudo systemctl stop postgresql-14

Iniciando el servidor PostgreSQL 14

Para iniciar el servicio PostgreSQL, especialmente después de una parada o instalación inicial, utilice el siguiente comando:

sudo systemctl start postgresql-14

Reiniciar el servidor PostgreSQL 14

El comando de reinicio es útil si necesita aplicar nuevas configuraciones o restablecer el servicio PostgreSQL. Detiene y luego inicia el servicio en una sola acción:

sudo systemctl restart postgresql-14

Recarga del servidor PostgreSQL 14

El comando de recarga es ideal para aplicar cambios de configuración sin detener la base de datos. Actualiza el servicio sin interrumpir la operación de la base de datos:

sudo systemctl reload postgresql-14

Comprobación del estado del servicio PostgreSQL 14

Para verificar el estado operativo del servicio PostgreSQL, utilice este comando. Proporciona información sobre el estado del servicio, incluido si está activo, inactivo o tiene problemas:

systemctl status postgresql-14

Configurar PostgreSQL 14

Cambiar a la cuenta Postgres 14

Accediendo a la cuenta de Postgres 14

Durante la instalación de PostgreSQL, se crea automáticamente una cuenta de usuario llamada 'postgres'. Esta cuenta está asociada con la función predeterminada de Postgres, que posee privilegios de superusuario. Para acceder a la base de datos PostgreSQL, cambie a la cuenta 'postgres' usando el comando:

sudo -i -u postgres

Ingresando al mensaje de PostgreSQL 14

Una vez que haya cambiado al usuario 'postgres', acceda al indicador de PostgreSQL directamente escribiendo psql. Tras una conexión exitosa, el indicador del terminal cambia a postgres=#, lo que indica una conexión activa a la base de datos.

Para salir de la base de datos PostgreSQL, simplemente escriba:

psql

Método alternativo para acceder a PostgreSQL 14

Usando Sudo para acceso directo

Alternativamente, interactúe con la base de datos PostgreSQL sin cambiar de cuenta usando:

exit

Alternativa a cambiar de cuenta de Postgres

Una forma alternativa de interactuar con la base de datos de Postgres sin cambiar las cuentas de usuario es utilizar un comando sudo para conectarse directamente. Puedes hacer esto escribiendo:

sudo -u postgres psql

Este comando es eficaz para interacciones rápidas con la base de datos, ya que omite comandos de terminal adicionales.

Para salir, como con el primer método, escriba salir.

exit

Crear usuario y base de datos con PostgreSQL 14

Crear una nueva función de usuario

Solo los superusuarios y roles con el privilegio createrole pueden crear nuevos roles. Para crear un usuario, use el comando:

sudo su - postgres -c "createuser <name>"

Reemplazar con el nombre de usuario deseado.

Creando una nueva base de datos

A continuación, cree una base de datos PostgreSQL para el usuario recién creado:

sudo su - postgres -c "createdb <namedb>"

Reemplazar con el nombre de la base de datos deseada.

Conceder permisos

Para otorgar permisos al nuevo usuario en la nueva base de datos, primero conéctese a la base de datos PostgreSQL como superusuario:

sudo -u postgres psql

Luego, otorgue todos los privilegios al nuevo usuario:

GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;

Reemplazar con el nombre de la base de datos y con el nombre de usuario. Para salir, escriba salir.

exit

Configurar Firewalld para PostgreSQL 14

Establecimiento de reglas de firewall para PostgreSQL 14

Proteger PostgreSQL implica algo más que instalar y ejecutar el servicio; Es crucial configurar los controles de acceso a la red de manera efectiva. Esto protege la base de datos y garantiza que solo llegue a ella el tráfico legítimo. Revisaremos la configuración de firewalld, un administrador de firewall dinámico en Fedora, para proteger PostgreSQL.

Creando una zona de firewall para PostgreSQL

Primero, cree una zona dedicada en firewalld para PostgreSQL. Este enfoque permite un control más granular y claridad en la gestión de reglas específicas de PostgreSQL:

sudo firewall-cmd --permanent --new-zone=postgres

Este comando establece una zona 'postgres', aislando las reglas de firewall relacionadas con PostgreSQL para facilitar la administración.

Restringir el acceso a direcciones IP conocidas

Permitir el acceso desde una única dirección IP

Para escenarios en los que solo un cliente o servidor debe acceder a PostgreSQL:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4

Reemplace 1.2.3.4 con la dirección IP específica que requiere acceso a la base de datos.

Permitir una subred

En entornos como redes corporativas, puede ser necesario permitir una subred completa:

sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24

Aquí, 192.168.1.0/24 representa la subred. Ajuste este valor para que coincida con el rango de red deseado.

Otorgar acceso a múltiples IP específicas

Para escenarios con varias IP conocidas que requieren acceso:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5

Repita este comando para cada dirección IP.

Administrar el acceso al puerto para PostgreSQL 14

Configurar el puerto PostgreSQL predeterminado

Para instalaciones estándar que utilizan el puerto predeterminado:

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Personalización de la configuración del puerto

Si PostgreSQL opera en un puerto no estándar (por ejemplo, 5433):

sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp

Modifique el número de puerto según su configuración específica de PostgreSQL.

Implementación y verificación de las nuevas reglas del firewall

Aplicar los cambios

Para activar las nuevas reglas, recarga firewalld:

sudo firewall-cmd --reload

Este paso garantiza que las nuevas configuraciones entren en vigor de inmediato.

Comprobando las configuraciones

Después de la configuración, es prudente revisar las reglas establecidas para la zona 'postgres':

sudo firewall-cmd --list-all --zone=postgres

Este comando muestra todas las reglas activas en la zona 'postgres', lo que permite la verificación del archivo setup.exp.

Configuración de acceso remoto para PostgreSQL 14

Configuración de interfaces de escucha para acceso remoto

Modificando la configuración de PostgreSQL

Para habilitar el acceso remoto a PostgreSQL, es necesario ajustar la configuración de la interfaz en el archivo postgresql.conf. Este proceso permite a PostgreSQL aceptar conexiones de varias fuentes.

Asegúrese de que la configuración de FirewallD esté implementada para permitir el acceso remoto, como se describe en las secciones anteriores.

Accediendo al archivo de configuración

Para modificar la configuración de PostgreSQL 14, use el editor de texto nano:

sudo nano /var/lib/pgsql/14/data/postgresql.conf
Editar la dirección de escucha

En la sección "Configuración de conexión", cambie listen_addresses de 'localhost' según sus requisitos:

  • Escuche en todas las interfaces: para aceptar conexiones de cualquier fuente, configure listening_addresses en '*'.
listen_addresses = '*'
  • Escuche en una interfaz específica: especifique una dirección IP para restringir las conexiones a una interfaz en particular.
listen_addresses = '192.168.1.100'

Después de editarlo, guarde el archivo (Ctrl + O, luego Enter) y salga (Ctrl + X).

Reiniciar el servicio PostgreSQL 14

Aplique los cambios reiniciando el servicio PostgreSQL:

sudo systemctl restart postgresql-14

Confirmación de puertos de escucha

Utilice la utilidad ss para verificar que PostgreSQL esté escuchando en los puertos especificados:

ss -nlt | grep 5432

Si tiene éxito, debería ver los puertos en el puerto de su terminal.

Configuración avanzada de conexión remota en pg_hba.conf

Adaptación del acceso en el archivo pg_hba.conf

Para un control detallado de las conexiones remotas, el archivo pg_hba.conf ofrece varias opciones de personalización.

Editando pg_hba.conf

Abra el archivo pg_hba.conf:

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Archivo de configuración pg_hba para PostgreSQL 14 en Fedora Linux
Captura de pantalla de ejemplo del archivo de configuración pg_hba para PostgreSQL 14 en Fedora Linux
Configurar reglas de acceso remoto
Permitir usuarios y bases de datos específicos

Para limitar el acceso a un usuario y una base de datos específicos desde una dirección IP particular:

alojar mi base de datos mi usuario 192.168.1.100/32 md5
Permitir una subred

Para un acceso más amplio, como una subred completa:

alojar todos todos 192.168.1.0/24 md5
Usar diferentes métodos de autenticación

Elija un método de autenticación adecuado para su entorno. Para autenticación basada en contraseña:

alojar todo todo 0.0.0.0/0 md5

Para autenticación de confianza (tenga en cuenta los riesgos de seguridad):

alojar todo todo 0.0.0.0/0 confianza

Después de configurar las reglas deseadas, guarde y salga del editor.

Aplicar y verificar cambios

Reinicie PostgreSQL para implementar las nuevas configuraciones:

sudo systemctl restart postgresql-14

Verifique la configuración efectiva en pg_hba.conf usando:

cat /var/lib/pgsql/14/data/pg_hba.conf

Configurar SELinux para PostgreSQL 14

Al configurar PostgreSQL 14 en Fedora, es esencial configurar SELinux (Linux con seguridad mejorada) correctamente. SELinux agrega una capa de seguridad al hacer cumplir políticas de control de acceso. Una mala configuración puede provocar problemas comunes como denegaciones de acceso o interrupciones del servicio.

Configuración de SELinux en modo permisivo para solucionar problemas

Ajuste temporal del modo SELinux

Si tiene problemas con el inicio o funcionamiento correcto de PostgreSQL, considere configurar SELinux temporalmente en modo 'Permisivo'. Este modo permite operaciones que se bloquearían en el modo "Aplicar", pero las registra para su revisión:

sudo setenforce 0

Registros de monitoreo para denegaciones de AVC

Verifique los registros de SELinux para ver si hay denegaciones de AVC (Access Vector Cache):

sudo restorecon -Rv /var/lib/pgsql/14/data/

Este comando ayuda a identificar las políticas de SELinux que impiden que PostgreSQL funcione correctamente.

Configuración de políticas SELinux para PostgreSQL 14

Restaurar el contexto SELinux predeterminado

Para asegurarse de que los archivos tengan el contexto SELinux correcto, utilice el comando recoverycon. Los contextos incorrectos en directorios o archivos de PostgreSQL pueden causar problemas de acceso:

sudo setsebool -P postgresql_can_rnetwork 1

Este comando habilita el booleano postgresql_can_rnetwork, permitiendo conexiones de red.

Configuración avanzada de SELinux

Personalización de políticas SELinux

En configuraciones más complejas, como cuando PostgreSQL interactúa con otros servicios o puertos personalizados, puede ser necesario crear políticas SELinux personalizadas. Utilice la herramienta audit2allow para generar módulos de políticas personalizados según necesidades específicas.

Aplicar políticas personalizadas

Después de crear políticas personalizadas, aplíquelas usando:

sudo semodule -i my_postgresql.pp

Reemplace my_postgresql.pp con el nombre de su archivo de política.

Verificación de la configuración de SELinux

Comprobando el estado de SELinux

Confirme el estado de SELinux para asegurarse de que esté configurado correctamente para su instalación de PostgreSQL:

sestatus

Validación de contextos de archivos

Verifique que los archivos y directorios relacionados con PostgreSQL tengan los contextos SELinux apropiados:

ls -Z /var/lib/pgsql/14/data/

Conclusión

Con PostgreSQL 14 instalado exitosamente en su sistema Fedora, puede aprovechar sus funciones avanzadas y su sólido rendimiento para las necesidades de su base de datos. Verifique periódicamente si hay actualizaciones y mejoras futuras de las compilaciones RPM de PostgreSQL para mantener su sistema actualizado.

Para obtener más información sobre el uso de PostgreSQL, visite el sitio oficial documentación.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario