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:
Buka file konfigurasi utama PostgreSQL (asumsi versi 17):
bashsudo nano /etc/postgresql/17/main/postgresql.confCari baris
listen_addressesdan 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:
Buka file autentikasi klien:
bashsudo nano /etc/postgresql/17/main/pg_hba.confTambahkan 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.Simpan dan tutup file.
3. Terapkan Perubahan
Setelah kedua file konfigurasi di atas disimpan, Anda harus me-restart layanan PostgreSQL:
sudo systemctl restart postgresql4. 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:
Izinkan koneksi TCP masuk pada port 5432:
bashsudo ufw allow 5432/tcpVerifikasi bahwa aturan sudah aktif:
bashsudo ufw statusOutput 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.