Gestão de Segurança
Garantir a segurança do sistema Debian é uma tarefa central na administração de sistemas. Este guia apresentará várias áreas-chave para ajudá-lo a fortalecer seu sistema e proteger contra ameaças potenciais.
🔐 Usuários e Controle de Acesso
Restringir o acesso ao sistema é a primeira linha de defesa da segurança.
Impor Políticas de Senhas Fortes
O módulo libpam-pwquality pode forçar os usuários a criar senhas mais seguras.
Instalar o módulo:
bashsudo apt update sudo apt install libpam-pwqualityConfigurar a política: Edite o arquivo
/etc/security/pwquality.confpara definir as regras de senha.ini# Configuração de exemplo: minlen = 10 # Comprimento mínimo de 10 dcredit = -1 # Pelo menos 1 dígito ucredit = -1 # Pelo menos 1 letra maiúscula lcredit = -1 # Pelo menos 1 letra minúscula ocredit = -1 # Pelo menos 1 caractere especial difok = 3 # Pelo menos 3 caracteres diferentes da senha antiga
Reforçar a Segurança do SSH
A maneira mais comum de acessar um servidor remotamente é via SSH. Aqui estão algumas recomendações para reforçar a segurança:
Editar o arquivo de configuração do SSH:
bashsudo nano /etc/ssh/sshd_configConfigurações recomendadas:
- Desativar login root:
PermitRootLogin no - Desativar autenticação por senha (recomenda-se usar chaves):
PasswordAuthentication no - Ativar autenticação por chave pública:
PubkeyAuthentication yes - Alterar a porta padrão (opcional):
Port 2222
- Desativar login root:
Reiniciar o serviço SSH:
bashsudo systemctl restart sshd
🔥 Configuração de Firewall (UFW)
O Debian não vem com um firewall ativado por padrão. O UFW (Uncomplicated Firewall) é uma ferramenta de front-end amigável. No Debian 13, o UFW utiliza a estrutura nftables (compatível com a sintaxe antiga do iptables).
Instalar o UFW:
bashsudo apt install ufwConfigurar regras básicas:
bashsudo ufw default deny incoming # Negar todas as conexões de entrada sudo ufw default allow outgoing # Permitir todas as conexões de saída sudo ufw allow ssh # Permitir conexões SSH (ou a porta que você alterou) sudo ufw allow http # Se for um servidor web, permitir HTTP sudo ufw allow https # Permitir HTTPSAtivar o UFW:
bashsudo ufw enableO sistema avisará que isso pode interromper conexões SSH existentes; confirme.
Verificar o status:
bashsudo ufw status verbose
🔄 Atualizações de Segurança Automáticas
Aplicar patches de segurança em tempo hábil é crucial. O unattended-upgrades pode instalar atualizações de segurança automaticamente.
Instalar:
bashsudo apt install unattended-upgradesAtivar: Execute o assistente de configuração, que criará um arquivo de configuração básico.
bashsudo dpkg-reconfigure -plow unattended-upgradesSelecione "Sim" na caixa de diálogo que aparecer.
Ajustar a configuração (opcional): Você pode editar o arquivo
/etc/apt/apt.conf.d/50unattended-upgradespara personalizar o comportamento das atualizações, como ativar a reinicialização automática.
🛡️ Proteção contra Intrusões (Fail2Ban)
O Fail2Ban monitora arquivos de log e atualiza automaticamente as regras do firewall para bloquear endereços IP com base em comportamentos suspeitos (como múltiplas tentativas de login falhas).
Instalar o Fail2Ban:
bashsudo apt install fail2banCriar arquivo de configuração local: Não modifique diretamente os arquivos
.conf. Em vez disso, crie um arquivo.localpara sobrescrever as configurações.bashsudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.localConfigurar proteção SSH: No arquivo
jail.local, encontre a seção[sshd]e certifique-se de queenabled = true. Você pode ajustarmaxretry(número máximo de tentativas) ebantime(duração do bloqueio).ini[sshd] enabled = true port = ssh maxretry = 3 bantime = 3600 # Bloquear por 1 horaReiniciar o serviço:
bashsudo systemctl restart fail2ban
📝 Gerenciamento e Auditoria de Logs
Verificar regularmente os logs do sistema é fundamental para detectar atividades anormais.
- Usar
journalctlpara visualizar logs:bash# Ver todos os logs (do mais antigo ao mais recente) journalctl # Monitorar logs em tempo real journalctl -f # Ver logs de um serviço específico, por exemplo, sshd journalctl -u sshd.service # Ver logs do kernel journalctl -k