O PostgreSQL se instala com um comando. Onde as pessoas erram é no acesso remoto: abrem a porta 5432 para o mundo, colocam uma senha e depois se perguntam por que os logs estão cheios de tentativas de login. Este guia instala o Postgres no Ubuntu 24.04, cria um banco de dados e mostra duas formas seguras de se conectar de fora.
1. Instalação
apt update && apt install -y postgresql
systemctl status postgresql --no-pager
No Ubuntu 24.04 é o PostgreSQL 16. Por padrão ele só escuta em localhost; deixe assim, a menos que tenha um motivo.
2. Crie um usuário e um banco de dados
sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL
Apps no mesmo servidor se conectam com postgresql://app:PASSWORD@localhost:5432/appdb.
3. Conectar a partir do notebook: túnel SSH (recomendado)
Nada para abrir, nada para configurar no servidor. O túnel encaminha uma porta local através do SSH:
ssh -N -L 5433:localhost:5432 root@203.0.113.10
Num plano NAT, adicione a sua porta SSH pessoal do painel:
ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host
Enquanto o túnel estiver ativo, aponte o seu cliente de banco de dados para localhost:5433. O SSH criptografa tudo e a porta 5432 continua fechada para a internet. Ferramentas gráficas como DBeaver e pgAdmin têm uma aba de «túnel SSH» que faz o mesmo.
4. Acesso direto para outro servidor (lista de permissões)
Se um servidor de aplicação em outro lugar precisa se conectar diretamente, libere só o IP dele. Para isso, o servidor do banco precisa estar num plano com IP dedicado, porque planos NAT não aceitam conexões de entrada além do SSH.
Em /etc/postgresql/16/main/postgresql.conf:
listen_addresses = '*'
No fim de /etc/postgresql/16/main/pg_hba.conf:
hostssl appdb app 198.51.100.20/32 scram-sha-256
Abra o firewall para esse único endereço e reinicie:
ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql
hostssl exige uma conexão criptografada; o pacote do Ubuntu vem com um certificado autoassinado, então os clientes devem se conectar com sslmode=require.
5. Primeiros ajustes sensatos
Para um servidor com 2 GB de RAM, no postgresql.conf:
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB
Reinicie depois da mudança. Isso basta para a maioria dos apps pequenos; ajuste melhor quando vir consultas reais.
6. Backups
Um dump noturno, guardado por uma semana:
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 gera um dump compactado que se restaura com pg_restore. Copie os dumps também para fora do servidor; os Managed Backups acrescentam pontos de restauração diários da máquina inteira.
Comentários
Nenhum comentário ainda. Seja o primeiro.