PostgreSQL tek bir komutla kurulur. İnsanların hata yaptığı yer uzaktan erişimdir: 5432 portunu dünyaya açar, bir parola koyar ve sonra günlüklerin neden giriş denemeleriyle dolu olduğunu merak ederler. Bu rehber Postgres'i Ubuntu 24.04'e kurar, bir veritabanı oluşturur ve dışarıdan bağlanmanın iki güvenli yolunu gösterir.
1. Kurulum
apt update && apt install -y postgresql
systemctl status postgresql --no-pager
Ubuntu 24.04'te bu PostgreSQL 16'dır. Varsayılan olarak yalnızca localhost üzerinde dinler; bir nedeniniz yoksa öyle bırakın.
2. Bir kullanıcı ve bir veritabanı oluşturun
sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL
Aynı sunucudaki uygulamalar postgresql://app:PASSWORD@localhost:5432/appdb ile bağlanır.
3. Dizüstü bilgisayarınızdan bağlanın: SSH tüneli (önerilir)
Açılacak bir şey yok, sunucuda yapılandırılacak bir şey yok. Tünel, yerel bir portu SSH üzerinden iletir:
ssh -N -L 5433:localhost:5432 root@203.0.113.10
Bir NAT planında panelden kişisel SSH portunuzu ekleyin:
ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host
Tünel açıkken veritabanı istemcinizi localhost:5433 adresine yönlendirin. SSH her şeyi şifreler ve 5432 portu internete kapalı kalır. DBeaver ve pgAdmin gibi grafik araçlarda aynı işi yapan bir “SSH tüneli” sekmesi bulunur.
4. Başka bir sunucu için doğrudan erişim (izin listesi)
Başka bir yerdeki bir uygulama sunucusunun doğrudan bağlanması gerekiyorsa yalnızca onun IP'sine izin verin. Bunun için veritabanı sunucusunun özel IP'li bir planda olması gerekir, çünkü NAT planları SSH dışında gelen bağlantı kabul etmez.
/etc/postgresql/16/main/postgresql.conf içinde:
listen_addresses = '*'
/etc/postgresql/16/main/pg_hba.conf dosyasının sonunda:
hostssl appdb app 198.51.100.20/32 scram-sha-256
Güvenlik duvarını yalnızca o adres için açın ve yeniden başlatın:
ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql
hostssl şifreli bağlantıyı zorunlu kılar; Ubuntu paketi kendinden imzalı bir sertifikayla gelir, bu yüzden istemciler sslmode=require ile bağlanmalıdır.
5. Mantıklı ilk ayarlar
2 GB RAM'li bir sunucu için postgresql.conf içinde:
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB
Değişiklikten sonra yeniden başlatın. Bu, küçük uygulamaların çoğu için yeterlidir; gerçek sorguları gördüğünüzde ince ayar yapın.
6. Yedekler
Bir hafta saklanan gecelik bir döküm:
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, pg_restore ile geri yüklenen sıkıştırılmış bir döküm oluşturur. Dökümleri sunucu dışına da kopyalayın; Managed Backups tüm makine için günlük geri yükleme noktaları ekler.
Yorumlar
Henüz yorum yok. İlk olun.