LINUX SERVER SECURITY — DEFENSE IN DEPTH Network UFW Firewall fail2ban Port Control Rate Limiting Layer 1 Access SSH Keys Only No Root Login sudo + Least Priv 2FA / MFA Layer 2 System Auto Updates Kernel Hardening AppArmor/SELinux Disable Unused Layer 3 Monitoring Log Auditing File Integrity Alerting AIDE / auditd Layer 4 Multiple security layers protect against different attack vectors

Toda organização que executa servidores Linux precisa de uma abordagem sistemática para segurança. As ameaças são constantes — bots automatizados escaneando portas SSH abertas, vulnerabilidades sendo exploradas horas após a divulgação e credenciais comprometidas sendo vendidas na dark web. Este checklist fornece ações concretas e priorizadas para proteger seus servidores Linux, cobrindo desde a configuração inicial até monitoramento contínuo.

Use este guia como um checklist funcional. Cada seção inclui os comandos exatos que você precisa executar e explica por que cada medida é importante.

1. Atualizações do Sistema e Patching Automático

A medida de segurança mais fundamental é manter seu sistema atualizado. A maioria dos ataques bem-sucedidos explora vulnerabilidades conhecidas que já têm patches disponíveis.

# Atualizar lista de pacotes e atualizar todos os pacotes
sudo apt update && sudo apt upgrade -y

# Instalar atualizações automáticas de segurança
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Ative atualizações automáticas de segurança editando /etc/apt/apt.conf.d/50unattended-upgrades:

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";

2. Hardening SSH

O SSH é o vetor de ataque mais comum para servidores Linux. Consulte nosso guia dedicado de Hardening SSH para os 12 passos completos. Aqui está o resumo:

# /etc/ssh/sshd_config - configurações essenciais
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
Protocol 2

3. Configuração de Firewall com UFW

# Definir políticas padrão
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Permitir SSH (ajuste a porta se você mudou)
sudo ufw allow 22/tcp comment 'SSH'

# Permitir serviços web se necessário
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'

# Habilitar o firewall
sudo ufw enable

# Verificar status
sudo ufw status verbose

4. Fail2ban

sudo apt install fail2ban -y

sudo tee /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
EOF

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

5. Gerenciamento de Usuários e Privilégios

# Criar um usuário administrador dedicado
sudo adduser admin
sudo usermod -aG sudo admin

# Desabilitar conta root
sudo passwd -l root

# Auditar usuários com acesso sudo
grep -Po '^sudo.+:\K.*$' /etc/group

6. Hardening de Rede do Kernel

Aplique parâmetros de rede do kernel para proteção contra ataques comuns:

sudo tee /etc/sysctl.d/99-security.conf << 'EOF'
# Proteção contra IP spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Desabilitar redirecionamentos ICMP
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

# Proteção contra SYN flood
net.ipv4.tcp_syncookies = 1

# Ignorar broadcasts ICMP
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Log de pacotes suspeitos
net.ipv4.conf.all.log_martians = 1
EOF

sudo sysctl -p /etc/sysctl.d/99-security.conf

7. Monitoramento de Integridade de Arquivos

# Instalar AIDE (Advanced Intrusion Detection Environment)
sudo apt install aide -y

# Inicializar o banco de dados
sudo aideinit

# Executar verificação de integridade
sudo aide --check

8. Desabilitar Serviços Desnecessários

# Listar serviços em execução
systemctl list-units --type=service --state=running

# Desabilitar serviços desnecessários
sudo systemctl disable --now cups
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now bluetooth

9. Configuração de Auditoria

sudo apt install auditd -y
sudo systemctl enable auditd

# Monitorar mudanças em arquivos críticos
sudo auditctl -w /etc/passwd -p wa -k identity
sudo auditctl -w /etc/shadow -p wa -k identity
sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config

10. Backups e Recuperação

Nenhuma estratégia de segurança está completa sem backups. Certifique-se de que você tem:

  • Backups automatizados regulares
  • Backups armazenados fora do servidor
  • Testes regulares de restauração
  • Backup criptografado para dados sensíveis

Conclusão

Segurança não é um evento único — é um processo contínuo. Use este checklist como ponto de partida e revise sua postura de segurança regularmente. As medidas mais impactantes são manter o sistema atualizado, usar autenticação por chave SSH e configurar um firewall adequadamente. Implemente cada camada progressivamente e teste cada mudança antes de prosseguir.

Para tópicos relacionados, explore nossos artigos sobre hardening SSH e configuração de VPN WireGuard.