GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar y proteger el servidor PostgreSQL en RockyLinux 8

PostgreSQL es un popular sistema de gestión de bases de datos relacionales de código abierto. Conocido por su confiabilidad, está ganando popularidad debido a su robustez, flexibilidad y rendimiento. PostgreSQL se utiliza para administrar bases de datos y numerosas aplicaciones web y analíticas. Al momento de escribir este artículo, PostgreSQL 13 es la última versión. Esta versión incluye mejoras significativas en el sistema de búsqueda e indexación que benefician a las grandes bases de datos.

En esta publicación, le mostraremos cómo instalar y asegurar PostgreSQL en Rocky Linux 8.

Requisitos

  • Un servidor que ejecuta Rocky Linux 8 en Atlantic.Net Cloud Platform
  • Una contraseña de root configurada en su servidor

Paso 1:crear el servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Rocky Linux 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

dnf update -y

Paso 2:agregue el repositorio de PostgreSQL 13

dnf module list postgresql

Debería ver que solo está disponible la versión 10 de PostgreSQL:

Rocky Linux 8 - AppStream
Name                         Stream                   Profiles                             Summary                                             
postgresql                   9.6                      client, server [d]                   PostgreSQL server and client module                 
postgresql                   10 [d]                   client, server [d]                   PostgreSQL server and client module                 
postgresql                   12                       client, server [d]                   PostgreSQL server and client module                 
postgresql                   13                       client, server [d]                   PostgreSQL server and client module                 

Para instalar la última versión de PostgreSQL, deberá instalar el repositorio de PostgreSQL en su sistema.

Puedes instalarlo usando el siguiente comando:

dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Una vez que se crea el repositorio, puede continuar con el siguiente paso.

Paso 3:instale PostgreSQL 13 en Rocky Linux 8

Ahora, actualice su repositorio usando el siguiente comando:

dnf update -y

A continuación, deshabilite el repositorio de PostgreSQL predeterminado con el siguiente comando:

dnf -qy module disable postgresql

A continuación, instale la última versión de PostgreSQL ejecutando el siguiente comando:

dnf install postgresql13 postgresql13-server

Una vez que PostgreSQL 13 esté instalado, obtendrá el siguiente resultado:

Last metadata expiration check: 0:00:08 ago on Fri 22 Oct 2021 08:38:58 AM UTC.
Dependencies resolved.
===============================================================================================================================================
 Package                                  Architecture                Version                                Repository                   Size
===============================================================================================================================================
Installing:
 postgresql13                             x86_64                      13.4-1PGDG.rhel8                       pgdg13                      1.5 M
 postgresql13-server                      x86_64                      13.4-1PGDG.rhel8                       pgdg13                      5.5 M
Installing dependencies:
 postgresql13-libs                        x86_64                      13.4-1PGDG.rhel8                       pgdg13                      414 k

Transaction Summary
===============================================================================================================================================
Install  3 Packages

Total download size: 7.4 M
Installed size: 31 M
Is this ok [y/N]: y

A continuación, inicialice la base de datos PostgreSQL con el siguiente comando:

/usr/pgsql-13/bin/postgresql-13-setup initdb

Salida de muestra:

Initializing database ... OK

A continuación, inicie el servicio PostgreSQL y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start postgresql-13
systemctl enable postgresql-13

Puede verificar el estado de PostgreSQL con el siguiente comando:

systemctl status postgresql-13

Deberías obtener el siguiente resultado:

● postgresql-13.service - PostgreSQL 13 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-10-22 08:39:47 UTC; 7s ago
     Docs: https://www.postgresql.org/docs/13/static/
  Process: 36412 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 36417 (postmaster)
    Tasks: 8 (limit: 11411)
   Memory: 16.8M
   CGroup: /system.slice/postgresql-13.service
           ├─36417 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/
           ├─36419 postgres: logger 
           ├─36421 postgres: checkpointer 
           ├─36422 postgres: background writer 
           ├─36423 postgres: walwriter 
           ├─36424 postgres: autovacuum launcher 
           ├─36425 postgres: stats collector 
           └─36426 postgres: logical replication launcher 
ss -antpl | grep 5432

Obtendrá el siguiente resultado:

LISTEN 0      128        127.0.0.1:5432       0.0.0.0:*    users:(("postmaster",pid=36417,fd=7))
LISTEN 0      128            [::1]:5432          [::]:*    users:(("postmaster",pid=36417,fd=6))

Paso 4:establezca una contraseña para el usuario de Postgres

Para establecer una contraseña, inicie sesión en PostgreSQL con el siguiente comando:

su - postgres

A continuación, establezca una contraseña segura con el siguiente comando:

psql -c "alter user postgres with password 'securepassword'"

Luego, salga del shell de PostgreSQL usando el siguiente comando:

exit

Paso 5:cambiar el método de autenticación de PostgreSQL

Puede cambiarlo editando el archivo de configuración principal de PostgreSQL:

nano /var/lib/pgsql/13/data/pg_hba.conf

Busque la siguiente línea:

local   all             all                                     peer

Y reemplácelo con la siguiente línea:

local   all             all                                     scram-sha-256

Guarde y cierre el archivo, luego reinicie el servicio PostgreSQL para aplicar los cambios.

systemctl restart postgresql-13

Paso 6:crear una base de datos y un usuario en PostgreSQL

Primero, inicie sesión en el shell de PostgreSQL con el siguiente comando:

sudo -u postgres psql

Obtendrá el siguiente resultado:

could not change directory to "/root": Permission denied
psql (13.4)
Type "help" for help.

postgres=# 

Luego, cree un nuevo usuario de PostgreSQL llamado usuario1 usando el siguiente comando:

CREATE USER user1 WITH CREATEDB CREATEROLE PASSWORD 'passoword';

Para verificar los usuarios de PostgreSQL, ejecute:

\du

Obtendrá el siguiente resultado:

                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 user1     | Create role, Create DB                                     | {}

Para crear una nueva base de datos PostgreSQL llamada user1db, ejecute:

CREATE DATABASE user1db OWNER user1;

Para verificar las bases de datos de PostgreSQL, ejecute:

\l

Obtendrá el siguiente resultado:

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 user1db   | user1    | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

Conclusión

¡Felicidades! Ha instalado y asegurado con éxito PostgreSQL en Rocky Linux 8. Por razones de seguridad, siempre se recomienda instalar la última versión de PostgreSQL en el entorno de producción. ¡Pruébelo con alojamiento VPS de Atlantic.Net!


Linux
  1. Cómo instalar y configurar Postgres 13 en Centos 8

  2. Cómo instalar y configurar Postgres 14 en Fedora 34

  3. Cómo proteger el servidor PostgreSQL

  4. Cómo instalar y asegurar MongoDB 4 en CentOS 8

  5. Cómo instalar un servidor PostgreSQL en Ubuntu 18.04

Cómo instalar la base de datos PostgreSQL y pgAdmin en Linux

Cómo instalar y asegurar phpMyAdmin en Ubuntu 14.04

Cómo instalar Tomcat y Java en CentOS 8

Cómo instalar y proteger Memcached en Ubuntu 18.04

Cómo instalar y asegurar phpMyAdmin en CentOS 8

Cómo instalar y configurar Parse Server en Ubuntu 20.04