PostgreSQL s'installe en une seule commande. Là où l'on se trompe, c'est sur l'accès distant : on ouvre le port 5432 au monde entier, on met un mot de passe, puis on se demande pourquoi les journaux débordent de tentatives de connexion. Ce guide installe Postgres sur Ubuntu 24.04, crée une base et montre deux façons sûres de s'y connecter de l'extérieur.
1. Installation
apt update && apt install -y postgresql
systemctl status postgresql --no-pager
Sur Ubuntu 24.04, c'est PostgreSQL 16. Par défaut, il n'écoute que sur localhost — gardez-le ainsi sauf raison contraire.
2. Créer un utilisateur et une base
sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL
Les applications du même serveur se connectent avec postgresql://app:PASSWORD@localhost:5432/appdb.
3. Se connecter depuis son portable : tunnel SSH (recommandé)
Rien à ouvrir, rien à configurer sur le serveur. Le tunnel fait transiter un port local par SSH :
ssh -N -L 5433:localhost:5432 root@203.0.113.10
Sur une offre NAT, ajoutez votre port SSH personnel indiqué dans le tableau de bord :
ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host
Tant que le tunnel tourne, faites pointer votre client de base de données vers localhost:5433. Tout est chiffré par SSH et le port 5432 reste fermé à Internet. Les outils graphiques comme DBeaver et pgAdmin ont un onglet « tunnel SSH » qui fait la même chose.
4. Accès direct pour un autre serveur (liste d'autorisation)
Si un serveur d'application situé ailleurs doit se connecter directement, autorisez uniquement son IP. Il faut pour cela que le serveur de base de données soit sur une offre avec IP dédiée, car les offres NAT n'acceptent aucune connexion entrante hormis SSH.
Dans /etc/postgresql/16/main/postgresql.conf :
listen_addresses = '*'
À la fin de /etc/postgresql/16/main/pg_hba.conf :
hostssl appdb app 198.51.100.20/32 scram-sha-256
Ouvrez le pare-feu pour cette seule adresse et redémarrez :
ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql
hostssl impose une connexion chiffrée — le paquet Ubuntu fournit un certificat auto-signé, les clients doivent donc se connecter avec sslmode=require.
5. Premiers réglages raisonnables
Pour un serveur de 2 Go de RAM, dans postgresql.conf :
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB
Redémarrez après modification. C'est suffisant pour la plupart des petites applications ; affinez une fois que vous voyez de vraies requêtes.
6. Sauvegardes
Un dump nocturne, conservé une semaine :
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 produit un dump compressé que l'on restaure avec pg_restore. Copiez aussi les dumps hors du serveur ; les Managed Backups ajoutent des points de restauration quotidiens de toute la machine.
Commentaires
Pas encore de commentaires. Soyez le premier.