0 XP

DEVOPSQUEST

Minha Trilha
Módulo 2 · Redes, HTTP e Nginx

Firewall e portas: quem pode falar com o seu servidor

Intermediário 30 min+25 XPufwssnc

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 verbose

Testar conectividade

bash

nc -zv api.exemplo.com 443      # succeeded = porta acessível
nc -zv 10.0.1.20 5432           # refused = nada escutando; timeout = bloqueado

Por 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. 1. Qual comando lista portas escutando?

  2. 2. “Timeout” ao conectar geralmente indica:

  3. 3. O que fazer antes de `ufw enable` num servidor remoto?

Minhas anotações

Salvo automaticamente neste navegador.

AnteriorPróxima