Skip to main content

Guia Padrão de Hardening (UFW) - Infraestrutura CTIC

Este documento define o padrão de segurança e configuração de firewall local (UFW) para todas as novas Máquinas Virtuais (VMs) provisionadas na nossa infraestrutura.

Nossa arquitetura é baseada no princípio de Zero Trust (Confiança Zero) e Defesa em Profundidade. O fato de uma VM estar atrás do firewall de borda (MikroTik/pfSense) não a isenta de ter seu próprio firewall local ativado e configurado rigorosamente.

A Filosofia (Como pensamos as regras)

  1. Padrão Fechado: Tudo que entra é bloqueado por padrão.

  2. Gerência Restrita: Portas administrativas (SSH, Painéis Web) NUNCA são abertas para a rede toda (any). Elas devem apontar estritamente para as sub-redes de gerência (CTIC) ou para o IP do Proxy Reverso (Caddy).

  3. Serviços Públicos Isolados: Portas que recebem tráfego da internet via NAT (DMZ) devem ser abertas com cuidado, e a segurança da autenticação deve ser garantida na camada da aplicação.


Pré-requisitos (A Porta da Fortaleza)

Antes de sequer pensar em configurar o firewall, garanta que o serviço SSH da VM foi alterado da porta padrão (22) para a porta customizada da nossa infraestrutura:

  • Porta SSH Padrão: 19890 (Isso elimina 99% dos bots de escaneamento automatizado).


Passo a Passo: O Fluxo de Hardening

Passo 0: A Regra de Ouro (Mapeamento)

NUNCA ative o UFW antes de instalar os serviços da VM. O fluxo correto de trabalho é: Instalar as aplicações > Iniciar os serviços > Descobrir as portas > Configurar o UFW.

Após instalar o que a VM precisa rodar (Apache, Docker, Bancos de Dados, etc.), rode o comando abaixo para fazer um "raio-X" e descobrir exatamente quais portas estão ouvindo (LISTEN):

sudo ss -tulnp

Observe a coluna State e anote as portas e os protocolos (TCP/UDP) baseando-se nestes dois estados:

  • LISTEN: Para serviços TCP (ex: SSH, Apache, Bancos de Dados).

  • UNCONN (Unconnected): Para serviços UDP (ex: DNS, NTP, SNMP).

Anote as portas e os protocolos (TCP/UDP) que aparecerem na lista. Elas serão a base para as regras abaixo.

Passo 1: Política Base (Obrigatório)

Comece definindo a política de "Tolerância Zero".

# Bloqueia conexões de entrada por padrão e permite as de saída
sudo ufw default deny incoming
sudo ufw default allow outgoing

Passo 2: Acesso Administrativo - SSH (Obrigatório)

Libere o SSH apenas para as redes de gerência e do CTIC. Nunca use allow genérico para o SSH

# Permite SSH apenas da rede de Gerência
sudo ufw allow from 10.36.254.0/24 to any port 19890 proto tcp comment 'Acesso SSH - Gerencia'

# Permite SSH apenas da rede do CTIC
sudo ufw allow from 10.36.253.0/24 to any port 19890 proto tcp comment 'Acesso SSH - CTIC'

Passo 3: Serviços Internos via Proxy (Exemplo: Web, Painéis)

Se a VM roda um serviço que será acessado via domínio pelo nosso Proxy Reverso, libere a porta da aplicação apenas para o IP do servidor Caddy.

# Substitua o IP_DO_CADDY_GERENCIA pelo IP real do nosso proxy
sudo ufw allow from IP_DO_CADDY_GERENCIA to any port 3000 proto tcp comment 'Grafana via Caddy'
sudo ufw allow from IP_DO_CADDY_GERENCIA to any port 80 proto tcp comment 'Apache via Caddy'

Passo 4: Serviços Públicos / DMZ (Exemplo: IoT, APIs)

Se a VM fica na DMZ e recebe tráfego direto da internet via NAT do MikroTik, a porta da aplicação precisa ser aberta para any (qualquer origem).

⚠️ Atenção: Certifique-se de que a aplicação exige autenticação forte (Tokens, Usuário/Senha) antes de aplicar esta regra.

# Exemplo: Liberando portas abertas para a internet
sudo ufw allow 1883/tcp comment 'Mosquitto Público (NAT)'
sudo ufw allow 8086/tcp comment 'InfluxDB Público (NAT)'


🔴 Passo 5: Ativando o Firewall

Após mapear as portas no Passo 0 e inserir todas as regras nos Passos seguintes, ative o UFW. Atenção: Verifique duplamente se as regras do Passo 2 (SSH) foram aplicadas corretamente para você não trancar a si mesmo para fora da máquina!

sudo ufw enable


🔍 Comandos Úteis para Troubleshooting

Se algo der errado ou você precisar auditar a VM no futuro, use as ferramentas abaixo:

  • Listar regras ativas com numeração (ótimo para revisar):

    sudo ufw status numbered
    
  • Apagar uma regra específica (ex: regra número 3):

    sudo ufw delete 3
    
  • Refazer o Raio-X das portas locais:

    sudo ss -tulnp
    

Documentação de Infraestrutura CTIC - Arquitetura Segura e Zero Trust.