GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengamankan Server PostgreSQL

PostgreSQL, juga dikenal sebagai Postgres, adalah sistem manajemen basis data relasional objek tujuan umum. Ini adalah salah satu database open-source paling canggih yang tersedia. Namun, ada banyak masalah keamanan dan potensi kerentanan jika aplikasi tidak diamankan dengan benar.

Jika Anda seorang administrator sistem atau database, Anda perlu mengetahui cara melindungi Postgres sebelum masuk ke produksi.

Dalam tutorial ini, kami akan menunjukkan cara mengamankan server PostgreSQL di Ubuntu18.04.

Prasyarat

  • VPS Ubuntu 18.04 baru di Platform Cloud Atlantic.net.
  • 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 Ubuntu 18.04 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

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

apt-get update -y

Langkah 2 – Instal PostgreSQL

apt-get install postgresql postgresql-contrib -y

Setelah instalasi selesai, mulai server PostgreSQL dan aktifkan untuk memulai saat reboot:

systemctl start postgresqlsystemctl aktifkan postgresql

Langkah 3 – Buat Basis Data dan Pengguna

Selanjutnya, Anda perlu membuat database dan pengguna untuk tujuan pengujian.

Pertama, masuk ke shell PostgreSQL dengan perintah berikut:

sudo -i -u postgres psql

Anda akan melihat output berikut:

psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1)) Ketik "bantuan" untuk bantuan.postgres=#

Selanjutnya, buat pengguna bernama testuser dan atur kata sandinya.

postgres=# CREATE USER testuser DENGAN PASSWORD 'password';

Selanjutnya, buat database bernama testdb dan berikan akses penuh ke pengguna baru:

postgres=# CREATE DATABASE testdb OWNER testuser;

Selanjutnya, keluar dari shell PostgreSQL dengan perintah berikut:

postgres=# \q

Langkah 4 – Konfigurasikan Alamat Mendengarkan

Untuk lingkungan produksi, Anda perlu mengonfigurasi PostgreSQL untuk mendengarkan di antarmuka publik.

Anda dapat mengubah pengaturan ini dengan mengedit file /postgresql.conf:

nano /etc/postgresql/10/main/postgresql.conf

Temukan baris berikut:

#listen_addresses ='localhost'

Ganti dengan yang berikut ini:

listen_addresses ='localhost,your-server-ip'

Simpan dan tutup file setelah Anda selesai. Kemudian, mulai ulang layanan PostgreSQL untuk menerapkan perubahan:

systemctl restart postgresql

Langkah 5 – Konfigurasikan Host yang Diizinkan

Untuk keamanan yang lebih baik, disarankan untuk hanya mengizinkan IP tertentu untuk mengakses dan memodifikasi database PostgreSQL. Anda dapat melakukannya dengan mengedit file pg_hba.conf:

nano /etc/postgresql/10/main/pg_hba.conf

Temukan baris berikut:

# lokal      DATABASE  PENGGUNA  METODE  [OPTIONS]

Tambahkan baris berikut di bawah baris di atas:

host  testdb  testuser   client-ip-address/32   md5

Simpan dan tutup file setelah Anda selesai. Kemudian, mulai ulang layanan PostgreSQL untuk menerapkan perubahan:

systemctl restart postgresql

Di mana:

tuan rumah :host adalah soket TCP/IP biasa atau terenkripsi SSL.
basis data :testdb adalah nama database tempat host dapat terhubung.
pengguna :testuser adalah nama pengguna yang diizinkan untuk melakukan koneksi.
alamat :client-ip-address/32 menentukan alamat IP komputer klien.
auth-method :md5 adalah nama metode otentikasi.

Langkah 6 – Konfigurasikan Firewall UFW

apt-get install ufw -y

Selanjutnya, disarankan untuk mengonfigurasi aturan firewall UFW untuk memberikan akses ke port default PostgreSQL 5432 hanya untuk IP klien.

PENTING: Sebelum memulai, Anda harus mengizinkan koneksi SSH yang masuk melalui UFW, karena itu akan membuat Anda kehilangan akses shell. Anda akan dikunci dan tidak dapat terhubung ke instance Anda.

Anda dapat mengizinkan layanan SSH menggunakan perintah berikut:

ufw izinkan ssh

Selanjutnya, aktifkan firewall UFW dengan perintah berikut:

ufw aktifkan

Selanjutnya, izinkan port PostgreSQL 5432 hanya ke alamat IP klien menggunakan perintah berikut:

ufw izinkan dari client-ip-address ke port 5432

Selanjutnya, periksa status aturan UFW dengan perintah berikut:

status ufw

Anda akan mendapatkan output berikut:

Status:Activeto Action From-- ------ ---- 22/TCP Izinkan Anywhere 5432 Izinkan klien-IP-address22/tcp (v6) Izinkan di mana saja (v6)

Langkah 7 – Verifikasi Koneksi Jarak Jauh

Pada titik ini, server PostgreSQL diamankan dan hanya dapat diakses dari IP klien.

Untuk memverifikasinya, hubungkan database PostgreSQL Anda dari sistem klien:

psql -U testuser -h postgres-server-ip -d testdb

Anda akan diminta untuk memberikan password untuk testuser, seperti yang ditunjukkan di bawah ini:

Kata sandi untuk pengguna penguji:

Ketik sandi Anda dan tekan Enter . Setelah koneksi dibuat, Anda akan mendapatkan output berikut:

psql (9.3.24, server 10.12 (Ubuntu 10.12-0ubuntu0.18.04.1)))PERINGATAN:psql major versi 9.3, server major versi 10.         Beberapa fitur psql mungkin tidak berfungsi.Sambungan SSL (cipher:ECDHE-RSA- AES256-GCM-SHA384, bit:256)Ketik "bantuan" untuk bantuan.testdb=>

Itu saja untuk saat ini.

Kesimpulan

Dalam panduan di atas, Anda mempelajari cara mengamankan PostgreSQL dengan mengonfigurasi PostgreSQL untuk memberikan akses hanya ke host tertentu. Anda juga telah mempelajari cara mengonfigurasi UFW untuk mengizinkan koneksi hanya dari host tertentu. Anda sekarang seharusnya dapat melindungi server PostgreSQL Anda dari jenis serangan tertentu. Mulailah hari ini dengan hosting VPS dari Atlantic.Net!


Linux
  1. Cara Menginstal dan Mengamankan Redis di Ubuntu 18.04

  2. Cara Memasang dan Mengamankan Server PostgreSQL di RockyLinux 8

  3. Cara menginstal server PostgreSQL di Ubuntu 18.04

  1. Cara Menginstal Server Redis di CentOS 8

  2. Cara Menginstal DenyHost di CentOS 6.7

  3. Cara Menginstal Server PostgreSQL di CentOS 8

  1. Cara menginstal server PostgreSQL di RHEL 8 / CentOS 8

  2. Cara Menginstal PostgreSQL di CentOS 8

  3. Cara Mengamankan Rocky Linux 8