PostgreSQL installeras med ett kommando. Där folk gör fel är fjärråtkomsten: de öppnar port 5432 för hela världen, sätter ett lösenord och undrar sedan varför loggarna är fulla av inloggningsförsök. Den här guiden installerar Postgres på Ubuntu 24.04, skapar en databas och visar två säkra sätt att ansluta utifrån.
1. Installation
apt update && apt install -y postgresql
systemctl status postgresql --no-pager
På Ubuntu 24.04 är det PostgreSQL 16. Som standard lyssnar den bara på localhost; låt det vara så om du inte har ett skäl.
2. Skapa en användare och en databas
sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL
Appar på samma server ansluter med postgresql://app:PASSWORD@localhost:5432/appdb.
3. Anslut från din laptop: SSH-tunnel (rekommenderas)
Inget att öppna, inget att konfigurera på servern. Tunneln vidarebefordrar en lokal port via SSH:
ssh -N -L 5433:localhost:5432 root@203.0.113.10
På en NAT-plan lägger du till din personliga SSH-port från panelen:
ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host
Medan tunneln är uppe pekar du din databasklient mot localhost:5433. SSH krypterar allt och port 5432 förblir stängd mot internet. Grafiska verktyg som DBeaver och pgAdmin har en flik för ”SSH-tunnel” som gör samma sak.
4. Direkt åtkomst för en annan server (tillåtelselista)
Om en applikationsserver någon annanstans måste ansluta direkt, tillåt bara dess IP. Databasservern måste då ligga på en plan med dedikerad IP, eftersom NAT-planer inte tar emot inkommande anslutningar utöver SSH.
I /etc/postgresql/16/main/postgresql.conf:
listen_addresses = '*'
Längst ner i /etc/postgresql/16/main/pg_hba.conf:
hostssl appdb app 198.51.100.20/32 scram-sha-256
Öppna brandväggen för just den adressen och starta om:
ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql
hostssl tvingar fram en krypterad anslutning; Ubuntu-paketet levereras med ett självsignerat certifikat, så klienterna ska ansluta med sslmode=require.
5. Förnuftiga första inställningar
För en server med 2 GB RAM, i postgresql.conf:
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB
Starta om efter ändringen. Det räcker för de flesta små appar; finjustera när du ser riktiga frågor.
6. Backuper
En nattlig dump som sparas i en vecka:
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 skapar en komprimerad dump som du återställer med pg_restore. Kopiera också dumparna utanför servern; Managed Backups lägger till dagliga återställningspunkter för hela maskinen.
Kommentarer
Inga kommentarer än. Bli först.