Hardening para Servidores

De Wiki Projeto Root
Ir para navegação Ir para pesquisar

Sobre

Olá! Visitante, reunimos aqui, informações sobre como aumentar a segurança em ambientes Linux.

Manual de Hardening para Servidores Debian

Objetivo

Aplicar medidas de segurança para proteger servidores Debian contra ataques, vazamentos de dados e falhas de configuração, em conformidade com os principais frameworks de segurança como NIST SP 800-53, HIPAA, CIS Controls, e ISO/IEC 27001.

1. Atualizações e Patches

  • Mantenha o sistema atualizado:
 apt update && apt full-upgrade -y
  • Habilite atualizações automáticas:
 apt install unattended-upgrades apt-listchanges -y
 dpkg-reconfigure --priority=low unattended-upgrades

2. Contas de Usuário e Permissões

  • Remova usuários e grupos não utilizados.
  • Desabilite o login root via SSH.
  • Use sudo para usuários com privilégios administrativos.

3. Configuração Segura do SSH

Edite o arquivo /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no
  • Use autenticação via chave SSH.
  • Permita apenas usuários autorizados.

4. Firewall (UFW)

Instale e ative o UFW:

apt install ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw enable

5. Auditoria e Logs

  • Instale o auditd:
 apt install auditd
  • Configure regras específicas para monitoramento de eventos críticos.

6. Logrotate

  • Verifique o arquivo /etc/logrotate.conf.
  • Centralize logs usando syslog-ng ou rsyslog remoto.

7. Verificação de Integridade

  • Instale o AIDE:
 apt install aide
 aideinit
  • Agende verificações regulares com cron.

8. Antivírus

  • Instale o ClamAV:
 apt install clamav

9. Controle de Acesso com AppArmor

  • Verifique se o AppArmor está habilitado:
 systemctl status apparmor
  • Use perfis específicos para serviços.

10. Serviços e Daemons

  • Desabilite serviços desnecessários:
 systemctl disable nome_servico

11. Sincronização de Hora (NTP)

  • Instale o Chrony:
 apt install chrony
  • Configure o Chrony:
nano /etc/chrony/chrony.conf
  • Substitua ou comente as linhas pool existentes e adicione os servidores NTP brasileiros recomendados:
# Servidores NTP confiáveis no Brasil
pool a.st1.ntp.br iburst
pool b.st1.ntp.br iburst
pool c.st1.ntp.br iburst
  • Configure o fuso horário do sistema para o horário oficial de Brasília (BRT) e Ative sincronização de tempo no BIOS/RTC
timedatectl set-timezone America/Sao_Paulo
timedatectl set-local-rtc 0 --adjust-system-clock
systemctl restart chrony
  • Verifique se está sincronizando corretamente
chronyc sources -v

Saída esperada:

210 Number of sources = 3
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* a.st1.ntp.br                 2   6    377    34   -23us[ -59us] +/-   1ms
  • Verifique a hora atual e sincronização
timedatectl status

Saída esperada:

              Local time: Mon 2025-06-09 12:45:00 -03
          Universal time: Mon 2025-06-09 15:45:00 UTC
                RTC time: Mon 2025-06-09 15:45:00
               Time zone: America/Sao_Paulo (-03, -0300)
             System clock synchronized: yes
             NTP service: active

12. Criptografia

  • Criptografe discos com LUKS.
  • Use certificados válidos com TLS.

13. Políticas de Senha

Garantir que as senhas criadas pelos usuários sigam regras de complexidade para aumentar a segurança e prevenir o uso de senhas fracas, em conformidade com o NIST e outras normas de segurança Verifique se o módulo libpam-pwquality está instalado:

apt install libpam-pwquality

Edite o arquivo /etc/pam.d/common-password: pam_pwquality.so

retry=3 
minlen=12 
difok=3 
ucredit=-1 
lcredit=-1 
dcredit=-1 
ocredit=-1


Explicação dos parâmetros:

Parâmetro Significado
retry=3 Permite até 3 tentativas em caso de erro de senha.
minlen=12 A senha deve ter no mínimo 12 caracteres.
difok=3 A nova senha deve diferir da anterior em pelo menos 3 caracteres.
ucredit=-1 Requer pelo menos 1 letra maiúscula.
lcredit=-1 Requer pelo menos 1 letra minúscula.
dcredit=-1 Requer pelo menos 1 número.
ocredit=-1 Requer pelo menos 1 caractere especial (ex: !@#).
Yellowpin.svg Nota: Os créditos com sinal negativo são obrigatórios. Não misture com pam_cracklib se estiver habilitado; use um ou outro para evitar conflitos.

14. Backup Seguro

  • Utilize ferramentas como Borg, Restic ou Rsnapshot.
  • Mantenha backups criptografados e fora do ambiente de produção.

15. Conformidade com Frameworks

  • NIST SP 800-53: AC-2 (Controle de Acesso), AU-2 (Logs), SC-28 (Proteção de Dados)
  • HIPAA: 164.312(a)(1) - Controle de Acesso, 164.308(a)(1)(ii)(D) - Avaliação
  • CIS Controls: Control 4 (Controle de Acesso), Control 6 (Auditoria), Control 10 (Backups)

16. Ferramentas de Verificação

  • Instale e rode o Lynis:
 apt install lynis
 lynis audit system

17. Checklist Final

  • [x] Atualizações automáticas
  • [x] SSH seguro
  • [x] Firewall ativo
  • [x] Logs e auditoria configurados
  • [x] Backup seguro
  • [x] Verificação de integridade ativa
  • [x] AppArmor ou SELinux ativos
  • [x] Conformidade com frameworks aplicada