−25%

untuk Windows tahunan, hingga 31 Okt. Lihat paket

EQVPS
Mulai

Cara menginstal PostgreSQL di VPS dan terhubung dengan aman

Instal PostgreSQL 16 di Ubuntu, buat database dan pengguna, lalu terhubung dari jarak jauh tanpa membuka port 5432 ke internet: lewat terowongan SSH atau daftar izin.

PostgreSQL terpasang dengan satu perintah. Kesalahan orang biasanya ada di akses jarak jauh: membuka port 5432 ke seluruh dunia, memasang kata sandi, lalu heran mengapa log penuh percobaan login. Panduan ini menginstal Postgres di Ubuntu 24.04, membuat database, dan menunjukkan dua cara aman untuk terhubung dari luar.

1. Instalasi

apt update && apt install -y postgresql
systemctl status postgresql --no-pager

Di Ubuntu 24.04 itu PostgreSQL 16. Secara bawaan ia hanya mendengarkan di localhost; biarkan begitu kecuali Anda punya alasan.

2. Buat pengguna dan database

sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL

Aplikasi di server yang sama terhubung dengan postgresql://app:PASSWORD@localhost:5432/appdb.

3. Terhubung dari laptop: terowongan SSH (disarankan)

Tidak ada yang perlu dibuka, tidak ada yang perlu dikonfigurasi di server. Terowongan meneruskan port lokal melalui SSH:

ssh -N -L 5433:localhost:5432 root@203.0.113.10

Di paket NAT, tambahkan port SSH pribadi Anda dari panel:

ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host

Selama terowongan aktif, arahkan klien database Anda ke localhost:5433. SSH mengenkripsi semuanya dan port 5432 tetap tertutup dari internet. Alat grafis seperti DBeaver dan pgAdmin punya tab “terowongan SSH” yang melakukan hal yang sama.

4. Akses langsung untuk server lain (daftar izin)

Jika server aplikasi di tempat lain harus terhubung langsung, izinkan hanya IP-nya. Untuk itu server database harus berada di paket dengan IP khusus, karena paket NAT tidak menerima koneksi masuk selain SSH.

Di /etc/postgresql/16/main/postgresql.conf:

listen_addresses = '*'

Di akhir /etc/postgresql/16/main/pg_hba.conf:

hostssl  appdb  app  198.51.100.20/32  scram-sha-256

Buka firewall untuk satu alamat itu saja lalu mulai ulang:

ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql

hostssl mewajibkan koneksi terenkripsi; paket Ubuntu menyertakan sertifikat yang ditandatangani sendiri, jadi klien harus terhubung dengan sslmode=require.

5. Pengaturan awal yang masuk akal

Untuk server dengan RAM 2 GB, di postgresql.conf:

shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB

Mulai ulang setelah perubahan. Ini cukup untuk sebagian besar aplikasi kecil; lakukan penyetelan lebih lanjut ketika Anda melihat kueri sungguhan.

6. Backup

Dump setiap malam, disimpan selama seminggu:

mkdir -p /var/backups/pg && chown postgres /var/backups/pg
cat > /etc/cron.d/pg-backup <<'EOF'
30 3 * * * postgres pg_dump -Fc appdb > /var/backups/pg/appdb-$(date +\%u).dump
EOF

-Fc menghasilkan dump terkompresi yang dipulihkan dengan pg_restore. Salin juga dump ke luar server; Managed Backups menambahkan titik pemulihan harian untuk seluruh mesin.

Terkait

FAQ

Haruskah saya membuka port 5432 ke internet?

Sebaiknya tidak. Port database yang terbuka terus-menerus dipindai dan diserang brute force. Terhubunglah lewat terowongan SSH atau, jika server aplikasi harus terhubung langsung, izinkan hanya IP-nya di pg_hba.conf maupun di firewall.

Bisakah saya memakai PostgreSQL di paket NAT?

Bisa. Aplikasi di server yang sama terhubung secara lokal, dan Anda menjangkau database dari laptop lewat terowongan SSH melalui port SSH pribadi Anda. Yang tidak bisa dilakukan paket NAT adalah menerima koneksi masuk langsung ke 5432 dari server lain.

Berapa RAM yang dibutuhkan PostgreSQL?

Ia berjalan dengan beberapa ratus megabita dan memakai semua yang Anda berikan sebagai cache. Titik awal yang umum adalah shared_buffers sekitar 25% dari RAM. Untuk database aplikasi kecil, RAM 2 GB di server sudah sangat cukup.

Bagaimana cara mencadangkan database?

Gunakan pg_dump dalam format kustom ('pg_dump -Fc') dan jalankan dari cron. Simpan juga salinan di luar server. Managed Backups menambahkan titik pemulihan harian untuk seluruh server.

Versi PostgreSQL apa yang saya dapatkan?

Ubuntu 24.04 menyertakan PostgreSQL 16 dan Debian 12 menyertakan versi 15. Untuk versi mayor yang lebih baru, tambahkan repositori apt resmi PostgreSQL (apt.postgresql.org).

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.