PostgreSQL se instalează dintr-o singură comandă. Partea pe care oamenii o greșesc e accesul de la distanță: deschid portul 5432 către toată lumea, pun o parolă și se miră de ce se umplu logurile cu încercări de autentificare. Ghidul ăsta instalează Postgres pe Ubuntu 24.04, creează o bază de date și arată două căi sigure de conectare din exterior.
1. Instalează
apt update && apt install -y postgresql
systemctl status postgresql --no-pager
Pe Ubuntu 24.04 asta înseamnă PostgreSQL 16. Implicit ascultă doar pe localhost — păstrează-l așa dacă n-ai un motiv anume.
2. Creează un utilizator și o bază de date
sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL
Aplicațiile care rulează pe același server se conectează cu postgresql://app:PASSWORD@localhost:5432/appdb.
3. Conectarea de pe laptop: tunel SSH (recomandat)
Nimic de deschis, nimic de configurat pe server. Tunelul redirecționează un port local prin SSH:
ssh -N -L 5433:localhost:5432 root@203.0.113.10
Pe un plan NAT, adaugă portul tău SSH personal din dashboard:
ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host
Cât rulează tunelul, îndreaptă clientul de baze de date spre localhost:5433. Totul e criptat de SSH, iar portul 5432 rămâne închis spre internet. Uneltele grafice, ca DBeaver și pgAdmin, au un tab „SSH tunnel” care face același lucru.
4. Acces direct pentru alt server (allowlist)
Dacă un server de aplicație din altă parte trebuie să se conecteze direct, permite doar IP-ul lui. Pentru asta serverul bazei de date are nevoie de un plan cu IP dedicat, pentru că planurile NAT nu acceptă conexiuni de intrare în afară de SSH.
În /etc/postgresql/16/main/postgresql.conf:
listen_addresses = '*'
La sfârșitul /etc/postgresql/16/main/pg_hba.conf:
hostssl appdb app 198.51.100.20/32 scram-sha-256
Deschide firewallul pentru acea singură adresă și repornește:
ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql
hostssl impune o conexiune criptată — pachetul din Ubuntu vine cu un certificat autosemnat, așa că clienții trebuie să se conecteze cu sslmode=require.
5. Prima ajustare rezonabilă
Pentru un server cu 2 GB RAM, în postgresql.conf:
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB
Repornește după schimbare. Atât ajunge pentru majoritatea aplicațiilor mici; ajustează mai departe după ce vezi interogările reale.
6. Backup-uri
Un dump în fiecare noapte, păstrat o săptămână:
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 produce un dump comprimat pe care îl restaurezi cu pg_restore. Copiază dumpurile și în afara serverului; Backup-urile administrate adaugă puncte zilnice de restaurare pentru toată mașina.
Comentarii
Încă nu există comentarii. Fii primul.