
Firewall e portas: quem pode falar com o seu servidor
Objetivos desta aula
- Entender portas e o que significa um serviço “escutando”
- Listar portas abertas com ss
- Configurar regras de firewall com ufw
- Testar conectividade de porta com nc e curl
Um servidor tem um endereço IP, e cada serviço dentro dele usa uma porta — como apartamentos num prédio. SSH usa a 22, HTTP a 80, HTTPS a 443, PostgreSQL a 5432.
Um serviço está escutando (listening) quando aguarda conexões numa porta. Veja quem escuta com sudo ss -tulpn: mostra protocolo, endereço, porta e o processo dono.
Repare no endereço: 127.0.0.1:5432 significa que só a própria máquina acessa; 0.0.0.0:5432 significa qualquer rede — um banco exposto assim na internet é um enorme risco.
O firewall decide quais conexões entram. No Ubuntu, o ufw simplifica: a política padrão deve ser negar entrada e liberar só o necessário (22, 80, 443).
Cuidado clássico: ativar o firewall sem liberar a porta 22 corta seu próprio acesso SSH. Sempre rode ufw allow OpenSSH antes de ufw enable.
Para testar se uma porta está acessível de fora, use nc -zv host porta ou curl -v telnet://host:porta. “Connection refused” = nada escutando; “timeout” = firewall bloqueando no caminho.
Na nuvem existem firewalls adicionais, os Security Groups. Um serviço pode estar escutando e o ufw liberado, mas o Security Group bloquear. Investigue camada por camada.
Princípio que guia tudo: menor exposição possível. Bancos e painéis administrativos nunca devem estar abertos para a internet.
Na prática
Ver portas e configurar ufw
bash
sudo ss -tulpn # quem está escutando
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH # ANTES de ativar!
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verboseTestar conectividade
bash
nc -zv api.exemplo.com 443 # succeeded = porta acessível
nc -zv 10.0.1.20 5432 # refused = nada escutando; timeout = bloqueadoPor que isso importa
Portas expostas sem necessidade são a porta de entrada da maioria dos ataques automatizados.
Erro comum
Ativar o firewall remotamente sem liberar SSH e perder acesso ao servidor.
Dica de produção
Faça os serviços internos escutarem só em 127.0.0.1 ou na rede privada, e exponha apenas o proxy.
Alerta de segurança
Bancos de dados expostos em 0.0.0.0 na internet são encontrados por robôs em minutos.
Pergunta de entrevista
Qual a diferença entre receber “connection refused” e “timeout” ao acessar uma porta?
Glossário
- Porta
- Número que identifica um serviço dentro de um host.
- Listening
- Estado de um serviço aguardando conexões.
- ufw
- Interface simplificada de firewall no Ubuntu.
- Security Group
- Firewall virtual de recursos na nuvem.
Conexão com o CloudShop
No CloudShop só o Nginx fica público; API e banco escutam apenas na rede privada.
Quiz da aula
1. Qual comando lista portas escutando?
2. “Timeout” ao conectar geralmente indica:
3. O que fazer antes de `ufw enable` num servidor remoto?
Minhas anotações
Salvo automaticamente neste navegador.
