−25%

la planurile Windows anuale, până pe 31 oct. Vezi planurile

EQVPS
Începe

Cum instalezi PostgreSQL pe un VPS și cum te conectezi în siguranță

Instalează PostgreSQL 16 pe Ubuntu, creează o bază de date și un utilizator și ajungi la ea de la distanță fără să expui portul 5432 pe internet — prin tunel SSH sau allowlist.

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.

Legate

Întrebări frecvente

Să deschid portul 5432 spre internet?

Evită asta. Porturile de baze de date expuse sunt scanate și atacate brute-force tot timpul. Conectează-te printr-un tunel SSH sau, dacă un server de aplicație trebuie să se conecteze direct, permite doar IP-ul acelui server, atât în pg_hba.conf, cât și în firewall.

Pot folosi PostgreSQL pe un plan NAT?

Da. Aplicațiile de pe același server se conectează local, iar de pe laptop ajungi la baza de date printr-un tunel SSH pe portul tău SSH personal. Ce nu poate face un plan NAT e să accepte o conexiune directă de intrare pe 5432 de la alt server.

De câtă RAM are nevoie PostgreSQL?

Rulează în câteva sute de megaocteți și folosește pentru cache cât îi dai. Un punct de pornire obișnuit e shared_buffers la aproximativ 25% din RAM. Pentru baza de date a unei aplicații mici, 2 GB de RAM pe server sunt comozi.

Cum fac backup bazei de date?

Folosește pg_dump cu formatul custom ('pg_dump -Fc') și rulează-l din cron. Ține copii și în afara serverului. Backup-urile administrate adaugă puncte zilnice de restaurare pentru tot serverul.

Ce versiune de PostgreSQL primesc?

Ubuntu 24.04 vine cu PostgreSQL 16, Debian 12 vine cu 15. Pentru o versiune majoră mai nouă, adaugă repository-ul apt oficial PostgreSQL (apt.postgresql.org).

Comentarii

Încă nu există comentarii. Fii primul.

Lasă un comentariu

Comentariile sunt moderate înainte să apară.