Todos os sistemas operacionais Amsterdã · Paris · Reykjavík +5 Pagar com Criptomoeda
Guia

Hardening de um VPS Debian recente em dez minutos

Um VPS recente recebe sua primeira tentativa de força bruta SSH minutos após iniciar. Este é o checklist curto e opinativo que fecha as portas fáceis — chaves, firewall, fail2ban, atualizações automáticas — antes de você instalar qualquer outra coisa.

Atualizado em 2026-06-12

Fenrir o lobo atrás de um escudo fortificado

Observe o log de autenticação de qualquer servidor novo e a radiação de fundo da internet aparece imediatamente: bots de credential-stuffing percorrendo dicionários contra o root, scanners procurando vulnerabilidades do ano passado, crawlers identificando o que responde na porta 80. Nada disso é pessoal e quase tudo é automatizado, o que é a boa notícia — ataques automatizados são derrotados por higiene básica, aplicada antes de você implantar sua carga de trabalho real. Este guia é essa higiene, comprimida em dez minutos no Debian 12/13 (tudo se traduz para Ubuntu com edições menores). Deliberadamente não é um framework de auditoria de 4.000 palavras: são as portas que bots reais realmente tentam, fechadas em ordem de importância. Execute-o em cada máquina que você implantar aqui, depois vá trabalhar na VPN, node ou servidor de e-mail para o qual veio.

O que este checklist deliberadamente deixa de fora

Port-knocking, paredes sysctl de hardening de kernel, ajustes SELinux/AppArmor, suítes de detecção de intrusão — todas ferramentas reais, nenhuma delas prioridade no primeiro dia em um VPS de propósito único, e várias são fáceis de configurar errado e resultar em bloqueios. O 80/20 aqui é honesto: chaves + sem senhas + default-deny + patches automáticos para essencialmente todo comprometimento não direcionado. Adicione as ferramentas pesadas quando seu modelo de ameaça nomear um adversário que derrotaria o básico — e se a privacidade em nível de disco importa para seu modelo, lembre que a camada KVM permite rodar criptografia de disco completo dentro do guest.

Backups fazem parte da segurança

Hardening reduz as chances; backups limitam o dano. Snapshots semanais estão incluídos em todos os planos aqui, mas snapshots ficam com o servidor — para qualquer coisa que você não pode perder, envie cópias offsite criptografadas também: restic ou borg para uma segunda máquina (um Pup de US$3,50 em outra região é um alvo de backup conveniente) custa minutos para configurar. Teste uma restauração uma vez; um backup não testado é uma esperança, não um plano.

  1. Faça login uma vez, atualize tudo
    apt update && apt full-upgrade -y && reboot

    Templates são snapshots; a lacuna entre a data do snapshot e hoje é exatamente a janela que os scanners exploram. Aplique os patches primeiro, reinicie no novo kernel, depois configure.

  2. Crie seu usuário e instale sua chave SSH
    adduser ops && usermod -aG sudo ops
    mkdir -p /home/ops/.ssh && nano /home/ops/.ssh/authorized_keys   # paste your ed25519 public key
    chmod 700 /home/ops/.ssh && chmod 600 /home/ops/.ssh/authorized_keys && chown -R ops:ops /home/ops/.ssh

    Gere a chave na sua máquina local se não tiver uma: ssh-keygen -t ed25519. Teste ssh ops@your-ip em um segundo terminal antes de continuar.

  3. Bloqueie o sshd

    Edite /etc/ssh/sshd_config.d/hardening.conf:

    PermitRootLogin no
    PasswordAuthentication no
    KbdInteractiveAuthentication no
    MaxAuthTries 3
    AllowUsers ops

    Depois systemctl restart sshcom sua sessão por chave confirmada funcionando primeiro. Adivinhação de senha morre aqui: não há senha para adivinhar. Mover a porta para algo não-padrão silencia o ruído dos logs, mas é cosmético, não segurança; faça por organização se quiser.

  4. Levante um firewall default-deny (nftables)

    O firewall nativo do Debian, ruleset mínimo em /etc/nftables.conf:

    table inet filter {
      chain input {
        type filter hook input priority 0; policy drop;
        ct state established,related accept
        iif lo accept
        tcp dport 22 accept
        icmp type echo-request limit rate 5/second accept
        icmpv6 type { echo-request, nd-neighbor-solicit, nd-neighbor-advert, nd-router-advert } accept
      }
    }

    systemctl enable --now nftables. Abra portas adicionais apenas quando implantar os serviços que precisam delas — o guia de VPN abre 51820/udp, o guia de e-mail 25/465/993, e assim por diante. Default-deny significa que um daemon de teste esquecido fica inacessível em vez de ser uma brecha.

  5. Adicione fail2ban para o ruído que resta
    apt install -y fail2ban
    printf "[sshd]
    enabled = true
    maxretry = 4
    bantime = 1h
    " > /etc/fail2ban/jail.d/ssh.local
    systemctl enable --now fail2ban

    Com senhas já desativadas, isso é defesa em profundidade mais higiene de logs — reincidentes são bloqueados no firewall em vez de encher seu log de autenticação.

  6. Ative atualizações de segurança automáticas
    apt install -y unattended-upgrades
    dpkg-reconfigure -plow unattended-upgrades

    O time de segurança do Debian agora aplica patches na sua máquina enquanto você dorme. A linha de maior valor efetiva desta página medida por pressionamento de tecla: a maioria dos comprometimentos reais explora patches que existiam há meses.

  7. Verificação rápida em dois minutos

    Confirme a postura de fora:

    ssh root@your-ip          # must be refused
    nmap -p- your-ip          # only 22 (and your service ports) open
    last -a; journalctl -u ssh -n 50   # familiarise yourself with normal

    Opcionalmente adicione TOTP 2FA na sua conta VPSCrypto em si — o painel pode reconstruir ou reimplantar o servidor, portanto merece o mesmo cuidado que o root.

FAQ

Perguntas frequentes

Devo mudar a porta SSH?

É controle de ruído nos logs, não segurança — scanners encontram portas não-padrão em segundos com masscan. Faça isso se logs quietos ajudam a notar anomalias reais; nunca conte como uma camada de defesa. As defesas reais são autenticação somente por chave e MaxAuthTries.

Preciso de fail2ban se as senhas estão desativadas?

Estritamente não para SSH — não há nada para forçar. Fica na lista porque também cobre outros serviços que você pode adicionar depois (e-mail, painéis) e mantém os logs legíveis. Pule em uma máquina minimalista se preferir.

Um firewall VPS é necessário quando o provedor tem proteção DDoS?

Eles resolvem problemas diferentes. A mitigação DDoS upstream absorve floods; sua política nftables controla quais serviços são acessíveis. Default-deny é sobre o daemon que você esqueceu, não sobre gigabits.

E sobre Ubuntu em vez de Debian?

Tudo aqui se aplica; Ubuntu vem com ufw como frontend mais amigável (ufw default deny incoming; ufw allow 22/tcp; ufw enable) e ativa unattended-upgrades por padrão em versões recentes. O hardening do sshd é idêntico.

Como me recupero se me bloquear?

Use o acesso ao console na sua área do cliente — ele é independente do sshd, portanto você pode corrigir uma configuração incorreta ou restaurar um snapshot. É também por isso que você testa a nova configuração SSH em uma segunda sessão antes de fechar a primeira.

Implante um VPS offshore em cerca de um minuto

Sem KYC, pago em cripto, tudo NVMe. Escolha um plano, pague em Monero ou qualquer moeda principal e receba root em cerca de 60 segundos.

Fenrir em guarda