GNU/Linux >> Belajar Linux >  >> Linux

Cara Memasang dan Mengamankan Server PostgreSQL di RockyLinux 8

PostgreSQL adalah sistem manajemen basis data relasional sumber terbuka yang populer. Dikenal karena keandalannya, ia mendapatkan popularitas karena ketangguhan, fleksibilitas, dan kinerjanya. PostgreSQL digunakan untuk mengelola database dan berbagai aplikasi web dan analitik. Pada saat penulisan artikel ini, PostgreSQL 13 adalah versi terbaru. Versi ini hadir dengan peningkatan signifikan pada sistem pengindeksan dan pencarian yang menguntungkan database besar.

Dalam posting ini, kami akan menunjukkan cara menginstal dan mengamankan PostgreSQL di Rocky Linux 8.

Prasyarat

  • Server yang menjalankan Rocky Linux 8 di Atlantic.Net Cloud Platform
  • Kata sandi root yang dikonfigurasi di server Anda

Langkah 1 – Buat Server Cloud Atlantic.Net

Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Rocky Linux 8 sebagai sistem operasi dengan RAM minimal 2GB. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

Setelah Anda masuk ke server Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.

dnf update -y

Langkah 2 – Tambahkan Repositori PostgreSQL 13

dnf module list postgresql

Anda akan melihat bahwa hanya PostgreSQL versi 10 yang tersedia:

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                 

Untuk menginstal PostgreSQL versi terbaru, Anda perlu menginstal repo PostgreSQL ke sistem Anda.

Anda dapat menginstalnya menggunakan perintah berikut:

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

Setelah repo dibuat, Anda dapat melanjutkan ke langkah berikutnya.

Langkah 3 – Instal PostgreSQL 13 di Rocky Linux 8

Sekarang, perbarui repositori Anda menggunakan perintah berikut:

dnf update -y

Selanjutnya, nonaktifkan repo PostgreSQL default menggunakan perintah berikut:

dnf -qy module disable postgresql

Selanjutnya, instal PostgreSQL versi terbaru dengan menjalankan perintah berikut:

dnf install postgresql13 postgresql13-server

Setelah PostgreSQL 13 diinstal, Anda akan mendapatkan output berikut:

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

Selanjutnya, inisialisasi database PostgreSQL dengan perintah berikut:

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

Contoh keluaran:

Initializing database ... OK

Selanjutnya, mulai layanan PostgreSQL dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:

systemctl start postgresql-13
systemctl enable postgresql-13

Anda dapat memeriksa status PostgreSQL dengan perintah berikut:

systemctl status postgresql-13

Anda akan mendapatkan output berikut:

● 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

Anda akan mendapatkan output berikut:

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))

Langkah 4 – Tetapkan Kata Sandi untuk Pengguna Postgres

Untuk mengatur kata sandi, masuk ke PostgreSQL dengan perintah berikut:

su - postgres

Selanjutnya, atur kata sandi aman dengan perintah berikut:

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

Selanjutnya, keluar dari shell PostgreSQL menggunakan perintah berikut:

exit

Langkah 5 – Ubah Metode Otentikasi PostgreSQL

Anda dapat mengubahnya dengan mengedit file konfigurasi utama PostgreSQL:

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

Temukan baris berikut:

local   all             all                                     peer

Dan, ganti dengan baris berikut:

local   all             all                                     scram-sha-256

Simpan dan tutup file, lalu mulai ulang layanan PostgreSQL untuk menerapkan perubahan.

systemctl restart postgresql-13

Langkah 6 – Buat Database dan Pengguna di PostgreSQL

Pertama, masuk ke shell PostgreSQL dengan perintah berikut:

sudo -u postgres psql

Anda akan mendapatkan output berikut:

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

postgres=# 

Selanjutnya, buat pengguna PostgreSQL baru bernama user1 menggunakan perintah berikut:

CREATE USER user1 WITH CREATEDB CREATEROLE PASSWORD 'passoword';

Untuk memverifikasi pengguna PostgreSQL, jalankan:

\du

Anda akan mendapatkan output berikut:

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

Untuk membuat database PostgreSQL baru bernama user1db, jalankan:

CREATE DATABASE user1db OWNER user1;

Untuk memverifikasi database PostgreSQL, jalankan:

\l

Anda akan mendapatkan output berikut:

                                  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 | 

Kesimpulan

Selamat! Anda telah berhasil menginstal dan mengamankan PostgreSQL di Rocky Linux 8. Untuk alasan keamanan, selalu disarankan untuk menginstal PostgreSQL versi terbaru di lingkungan produksi. Cobalah hosting VPS dari Atlantic.Net!


Linux
  1. Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8

  2. Cara Menginstal dan Mengonfigurasi Postgres 14 di Fedora 34

  3. Cara Menginstal Server PostgreSQL di CentOS 8

  1. Cara Menginstal dan Mengamankan Redis di Ubuntu 18.04

  2. Cara Mengamankan Server PostgreSQL

  3. Cara Menginstal dan Mengamankan MongoDB 4 di CentOS 8

  1. Cara Menginstal PostgreSQL di CentOS 8

  2. Cara menginstal server PostgreSQL di Ubuntu 18.04

  3. CentOS / RHEL :Cara Install dan Konfigurasi OpenSSH Server dan Client