Skip to content

Cara Mengizinkan Akses Remote ke PostgreSQL di Ubuntu 24.04

Mengizinkan akses remote ke PostgreSQL adalah langkah penting ketika Anda perlu menghubungkan aplikasi dari server lain, menggunakan tool administrasi seperti pgAdmin dari komputer lokal Anda, atau saat debugging.

Ini memerlukan penyesuaian di tiga tempat utama: konfigurasi PostgreSQL itu sendiri dan Firewall sistem operasi.

1. Konfigurasi Listener PostgreSQL (postgresql.conf)

Secara default, PostgreSQL hanya mendengarkan koneksi dari alamat IP lokal server (localhost atau 127.0.0.1). Kita harus mengubahnya agar PostgreSQL mendengarkan koneksi di semua antarmuka jaringan.

Langkah-langkah:

  1. Buka file konfigurasi utama PostgreSQL (asumsi versi 17):

    bash
    sudo nano /etc/postgresql/17/main/postgresql.conf
  2. Cari baris listen_addresses dan ubah nilainya menjadi '*'. Pastikan Anda menghapus tanda # di depan baris tersebut jika ada.

    bash
    # Ubah ini:
    #listen_addresses = 'localhost'
    
    # Menjadi ini:
    listen_addresses = '*'

    Menggunakan '*' berarti database akan merespons permintaan koneksi dari semua alamat IP yang terikat pada server.

2. Konfigurasi Autentikasi Klien (pg_hba.conf)

Setelah PostgreSQL tahu harus mendengarkan di mana, kita harus memberitahunya siapa yang diizinkan untuk terhubung dan bagaimana cara autentikasinya.

Langkah-langkah:

  1. Buka file autentikasi klien:

    bash
    sudo nano /etc/postgresql/17/main/pg_hba.conf
  2. Tambahkan baris izin akses di bagian bawah file. Kita akan mengizinkan koneksi menggunakan autentikasi password yang aman (scram-sha-256).

    bash
    # Mengizinkan semua user ('all') terhubung ke semua database ('all')
    # dari IP manapun ('0.0.0.0/0') menggunakan password.
    # [Tipe] [Database] [User] [Alamat IP] [Metode]
    host    all             all             0.0.0.0/0               scram-sha-256

    💡 Praktik Terbaik Keamanan: Sangat disarankan untuk mengganti 0.0.0.0/0 (yang berarti semua IP) dengan alamat IP spesifik dari komputer atau server yang Anda gunakan untuk remote (misalnya, 110.5.10.20/32) untuk membatasi risiko.

  3. Simpan dan tutup file.


3. Terapkan Perubahan

Setelah kedua file konfigurasi di atas disimpan, Anda harus me-restart layanan PostgreSQL:

bash
sudo systemctl restart postgresql

4. Buka Port di Firewall (UFW)

Meskipun PostgreSQL sudah dikonfigurasi untuk menerima koneksi eksternal, firewall sistem operasi (UFW) masih dapat memblokir lalu lintas masuk. Anda harus secara eksplisit membuka port standar PostgreSQL (5432).

Langkah-langkah:

  1. Izinkan koneksi TCP masuk pada port 5432:

    bash
    sudo ufw allow 5432/tcp
  2. Verifikasi bahwa aturan sudah aktif:

    bash
    sudo ufw status

    Output harus menunjukkan bahwa port 5432/tcp diizinkan.

Setelah semua langkah ini selesai, Anda dapat mencoba menghubungkan klien remote (seperti pgAdmin) ke server PostgreSQL Anda menggunakan alamat IP publik server dan kredensial pengguna database yang telah Anda siapkan.