Hardening de Servidor Linux
Checklist prático de endurecimento para NOC de ISP — cada item com o comando real, mais contexto normativo e ferramentas de verificação.
Nesta página
1. Contexto normativo
Hardening é o processo de reduzir a superfície de ataque de um sistema, desabilitando serviços desnecessários, restringindo permissões e aplicando configurações seguras. É uma prática amplamente referenciada em padrões internacionais, como:
- CIS Benchmarks (Center for Internet Security) — referência de baselines de hardening para diversos sistemas operacionais e aplicações.
- NIST SP 800-123 — Guide to General Server Security.
- ISO/IEC 27001/27002 — controles de segurança da informação (Anexo A, especialmente A.9.4 e A.12).
- PCI-DSS — para servidores que processam dados de pagamento.
Para ISPs, o hardening é especialmente crítico em servidores de FreeRADIUS, DNS e daloRADIUS, que lidam com dados pessoais e registros de conexão sujeitos à LGPD e ao Marco Civil.
2. Princípios — defesa em profundidade
O hardening não é uma ação única, mas um processo contínuo baseado em camadas de defesa:
- Privilégio mínimo — cada usuário/processo tem apenas o acesso necessário.
- Separação de funções — serviços diferentes em servidores diferentes (ex.: recursivo DNS separado do autoritativo).
- Defesa em profundidade — múltiplas camadas de segurança (firewall + autenticação + auditoria).
- Revisão contínua — hardening é cíclico: aplicar, verificar, ajustar.
3. SSH — o alvo nº 1 de qualquer servidor exposto
# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no # só chave pública, nunca senha
PubkeyAuthentication yes
Port 2200 # fora da porta padrão reduz ruído de scan
MaxAuthTries 3
AllowUsers admin-noc tecnico-joao
X11Forwarding no
systemctl restart sshd
Desabilitar autenticação por senha é o item de maior impacto isolado — elimina a categoria de ataque de força bruta de senha, que é a esmagadora maioria do tráfego malicioso que qualquer SSH exposto recebe.
4. Usuários e privilégio
apt install sudo
usermod -aG sudo tecnico-joao
# /etc/sudoers.d/log
Defaults logfile="/var/log/sudo.log"
# Bloquear login direto de conta de serviço
usermod -s /usr/sbin/nologin freerad
5. Serviços — desabilitar o desnecessário
# Listar tudo que está escutando porta
ss -tlnp
# Desabilitar o que não tem função real
systemctl disable --now cups avahi-daemon bluetooth 2>/dev/null
# Verificar o que inicia automaticamente no boot
systemctl list-unit-files --state=enabled
Regra prática: se você não consegue explicar por que um serviço está rodando naquele servidor específico, ele provavelmente não deveria estar.
6. Atualizações automáticas
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
# /etc/apt/apt.conf.d/50unattended-upgrades
# garantir que atualizações de segurança estão habilitadas
Trade-off: automatizar só patches de segurança é o equilíbrio recomendado — atualização total pode quebrar compatibilidade de software crítico.
7. Fail2ban — bloqueio automático de força bruta
apt install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2200
maxretry = 3
bantime = 3600
findtime = 600
systemctl restart fail2ban
fail2ban-client status sshd
Integra com iptables/nftables para bloquear IPs com tentativas repetidas.
8. Parâmetros de kernel (sysctl)
# /etc/sysctl.d/99-hardening.conf
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
kernel.dmesg_restrict = 1
sysctl -p /etc/sysctl.d/99-hardening.conf
9. Auditoria — auditd
apt install auditd
auditctl -w /etc/passwd -p wa -k mudanca-usuarios
ausearch -k mudanca-usuarios
Relevante para rastreabilidade em servidores que lidam com dados pessoais (banco RADIUS) — em incidente, trilha de auditoria é a diferença entre investigação rápida e reconstrução às cegas.
10. Ferramentas de verificação — Lynis, OpenSCAP
Para auditar e validar o estado de hardening, ferramentas automatizadas são essenciais:
- Lynis — auditor de segurança open source, gera relatório com índice de hardening.
- OpenSCAP — valida conformidade com baselines SCAP (ex.: CIS, NIST).
# Lynis
apt install lynis
lynis audit system
# OpenSCAP (exemplo com baseline CIS)
apt install libopenscap8 ssg-base
oscap xccdf eval --profile cis /usr/share/ssg/ssg-ubuntu2204-ds.xml
Integre o resultado dessas ferramentas ao Zabbix ou PRTG para acompanhamento contínuo da conformidade.
11. Monitoramento contínuo e conformidade
O hardening não termina após a configuração inicial. É preciso monitorar continuamente:
- Revisão periódica — executar Lynis/OpenSCAP mensalmente.
- Alertas — configurar notificações para mudanças em arquivos críticos (via auditd, inotify).
- Logs — centralizar e revisar logs de autenticação, sudo e falhas de acesso.
12. Backup e recuperação da configuração
Após aplicar o hardening, é crucial documentar e versionar as configurações para replicar em novos servidores ou restaurar em caso de desastre:
- Arquivos de configuração —
/etc/ssh/sshd_config,/etc/sysctl.d/*.conf,/etc/fail2ban/jail.local,/etc/audit/rules.d/*.rules. - Uso de Ansible/Puppet — ideal para aplicar hardening de forma consistente em múltiplos servidores.
- Backup — usar restic ou Borg com a regra 3‑2‑1‑1‑0.
13. Checklist consolidado
| Item | Prioridade |
|---|---|
| ☐ SSH sem senha, só chave pública | Crítica |
| ☐ Root login desabilitado | Crítica |
| ☐ Firewall com política padrão DROP | Crítica |
| ☐ Fail2ban ativo em serviços expostos | Alta |
| ☐ Atualizações de segurança automáticas | Alta |
| ☐ Serviços desnecessários desabilitados | Alta |
| ☐ Auditoria de arquivo crítico habilitada | Recomendada |
| ☐ Ferramenta de verificação (Lynis) executada | Recomendada |
| ☐ Configurações versionadas e documentadas | Recomendada |
14. Glossário
15. Referências
- CIS Benchmarks — Center for Internet Security.
- NIST SP 800-123 — Guide to General Server Security.
- Documentação oficial Fail2ban, auditd, unattended-upgrades, Lynis, OpenSCAP.
- Páginas relacionadas: Criptografia, iptables, LGPD.
Conteúdo técnico independente. Nenhum trecho é cópia literal de fonte de terceiro.