guia completo de auditoria básica de segurança em servidores Linux, incluindo verificação de serviços, usuários, permissões, logs e pacotes. Ele é pensado para fornecer um ponto de partida sólido sem ser intrusivo, ideal para hardening inicial e detecção de problemas óbvios.
Auditoria Básica de Segurança em Linux
1. Informações do Sistema
Antes de qualquer auditoria, verifique detalhes do sistema:
uname -a # Kernel e arquitetura cat /etc/os-release # Distribuição Linux uptime # Tempo de atividade df -h # Espaço em disco free -h # Memória
Essas informações ajudam a contextualizar vulnerabilidades conhecidas do kernel ou pacotes.
2. Usuários e Grupos
Listar usuários ativos
cat /etc/passwd
Verifique usuários desconhecidos ou com UID 0 (root):
awk -F: '($3 == 0) {print $1}' /etc/passwd
Usuários com login permitido
cat /etc/shadow
Procure senhas em branco ou hashes suspeitos.
Grupos sensíveis
getent group sudo getent group wheel
Verifique membros de grupos com privilégios elevados.
3. Serviços Ativos e Portas
Listar serviços ativos
systemctl list-units --type=service --state=running
Ver portas abertas
ss -tulnp
Ou:
netstat -tulnp # se instalado
⚠️ Dica: Serviços desnecessários aumentam a superfície de ataque. Ex.: FTP, Telnet, SNMP público.
4. Pacotes e Atualizações
Verificar atualizações pendentes
- Debian/Ubuntu:
apt update && apt list --upgradable
- RHEL/CentOS:
yum check-update
Verificar pacotes suspeitos
rpm -qa | grep -i "backdoor\|suspicious" dpkg -l | grep -i "backdoor\|suspicious"
5. Logs do Sistema
Logs críticos
# Autenticação cat /var/log/auth.log # Debian/Ubuntu cat /var/log/secure # RHEL/CentOS # Mensagens do sistema cat /var/log/syslog cat /var/log/messages # Últimos logins last lastb
⚠️ Busque falhas de login repetidas, contas bloqueadas ou acessos estranhos.
6. Permissões e Arquivos Críticos
Permissões de arquivos importantes
ls -l /etc/passwd /etc/shadow /etc/sudoers
Apenas root deve ter acesso a arquivos sensíveis.
Arquivos SUID/SGID suspeitos
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
Arquivos SUID/SGID podem ser vetor de escalonamento de privilégios.
7. Kernel e Hardening
Configurações básicas
# Proteção contra IP spoofing sysctl net.ipv4.conf.all.rp_filter # Proteção contra ICMP broadcast sysctl net.ipv4.icmp_echo_ignore_broadcasts
SELinux/AppArmor
- Debian/Ubuntu:
sudo aa-status - RHEL/CentOS:
sestatus
⚠️ Devem estar ativos e aplicando políticas.
8. Cron Jobs e Scripts Automáticos
crontab -l # para usuário atual sudo crontab -l -u root ls -l /etc/cron* # para ver tarefas do sistema
Procure scripts desconhecidos que podem ser backdoors.
9. Auditoria de SSH
Configurações importantes
cat /etc/ssh/sshd_config | grep -i "PermitRootLogin\|PasswordAuthentication\|Port"
PermitRootLogin noPasswordAuthentication no(usar chave)- Alterar porta padrão 22
10. Ferramentas de Auditoria Automática
lynis— Auditoria de segurança completa:
sudo apt install lynis sudo lynis audit system
chkrootkit— Detecta rootkits:
sudo apt install chkrootkit sudo chkrootkit
rkhunter— Rootkit Hunter:
sudo apt install rkhunter sudo rkhunter --check
✅ Resumo das Ações Imediatas
- Remover serviços desnecessários.
- Atualizar kernel e pacotes.
- Revisar usuários e grupos.
- Fortalecer SSH.
- Monitorar logs críticos.
- Verificar arquivos SUID/SGID.
- Ativar SELinux/AppArmor.
- Executar auditoria com
lynis.
Script para auditoria básica.
Copie o script para nano auditoria_basica.sh
chmod +x auditoria_basica.sh
./auditoria_basica.sh
#!/bin/bash
# Auditoria Básica de Segurança - Bash
# Uso: sudo ./auditoria_basica.sh
echo "========================================"
echo " AUDITORIA BÁSICA DE SEGURANÇA "
echo "========================================"
echo ""
# 1. Informações do Sistema
echo ">> Informações do Sistema"
uname -a
cat /etc/os-release
uptime
df -h
free -h
echo ""
# 2. Usuários e Grupos
echo ">> Usuários com UID 0 (root)"
awk -F: '($3 == 0) {print $1}' /etc/passwd
echo ""
echo ">> Grupos com privilégios elevados"
getent group sudo
getent group wheel
echo ""
# 3. Serviços e Portas
echo ">> Serviços ativos"
systemctl list-units --type=service --state=running | awk '{print $1}'
echo ""
echo ">> Portas abertas"
ss -tulnp
echo ""
# 4. Pacotes e Atualizações
echo ">> Atualizações pendentes"
if command -v apt >/dev/null 2>&1; then
apt list --upgradable 2>/dev/null
elif command -v yum >/dev/null 2>&1; then
yum check-update 2>/dev/null
fi
echo ""
# 5. Logs críticos (últimos 20 registros)
echo ">> Últimos logs de autenticação"
if [ -f /var/log/auth.log ]; then
tail -n 20 /var/log/auth.log
elif [ -f /var/log/secure ]; then
tail -n 20 /var/log/secure
fi
echo ""
echo ">> Últimos logins"
last -n 10
echo ""
# 6. Permissões e Arquivos Críticos
echo ">> Permissões de arquivos críticos"
ls -l /etc/passwd /etc/shadow /etc/sudoers
echo ""
echo ">> Arquivos SUID/SGID"
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \; 2>/dev/null
echo ""
# 7. Cron Jobs
echo ">> Tarefas agendadas"
crontab -l 2>/dev/null
sudo crontab -l -u root 2>/dev/null
ls -l /etc/cron* 2>/dev/null
echo ""
# 8. Auditoria SSH
echo ">> Configuração SSH"
if [ -f /etc/ssh/sshd_config ]; then
grep -Ei "PermitRootLogin|PasswordAuthentication|Port" /etc/ssh/sshd_config
fi
echo ""
# 9. SELinux/AppArmor
echo ">> Status SELinux/AppArmor"
if command -v sestatus >/dev/null 2>&1; then
sestatus
elif command -v aa-status >/dev/null 2>&1; then
aa-status
fi
echo ""
# 10. Rootkits e Auditoria Rápida
echo ">> Verificando rootkits (chkrootkit/rkhunter se instalados)"
if command -v chkrootkit >/dev/null 2>&1; then
chkrootkit
fi
if command -v rkhunter >/dev/null 2>&1; then
rkhunter --check --sk
fi
echo ""
echo "========================================"
echo " AUDITORIA CONCLUÍDA "
echo "========================================"
FAQ – Auditoria Básica de Segurança em Servidores Linux
Uma auditoria básica de segurança é um processo de verificação do servidor Linux para identificar usuários, serviços, permissões, logs e configurações vulneráveis. Ela ajuda a prevenir acessos não autorizados e ataques simples sem alterar o funcionamento do sistema.
Realizar auditorias regularmente reduz riscos de intrusão, escalonamento de privilégios e compromete a disponibilidade do servidor. É essencial para manter servidores seguros, confiáveis e compatíveis com boas práticas de TI.
Os principais pontos incluem:
Usuários e grupos suspeitos ou com privilégios indevidos
Serviços e portas abertas
Pacotes desatualizados
Logs de autenticação e sistema
Permissões de arquivos críticos (como /etc/passwd e /etc/shadow)
Tarefas cron agendadas
Configuração de SSH
Status de SELinux ou AppArmor
Verificação de rootkits e malwares
Básica: Verifica os principais itens de segurança, gera relatórios e sugere melhorias. Não altera o sistema.
Avançada: Inclui testes de penetração, monitoramento contínuo, análise detalhada de logs, scanners de vulnerabilidade e correção automática de problemas.
Sim, mas alguns comandos podem variar:
Debian/Ubuntu: apt, /var/log/auth.log
RHEL/CentOS: yum, /var/log/secure
O restante, como verificação de usuários, permissões e SSH, é universal.
Não. O script coleta informações, verifica configurações e gera relatórios de segurança. Ele não instala pacotes, não altera permissões nem modifica serviços.
Recomenda-se:
Auditoria básica: mensal ou após atualizações importantes
Auditoria avançada: trimestral ou semestral, dependendo da criticidade do servidor
Avisos de usuários desconhecidos ou UID 0 → podem indicar contas suspeitas
Serviços desnecessários ativos → aumentam a superfície de ataque
Portas abertas não utilizadas → devem ser fechadas
Arquivos SUID/SGID estranhos → podem ser vetor de escalonamento de privilégios
Falhas em SSH, SELinux ou AppArmor → devem ser corrigidas imediatamente
Lynis: Auditoria completa de segurança (sudo lynis audit system)
chkrootkit: Detecta rootkits (chkrootkit)
rkhunter: Rootkit Hunter (rkhunter --check)
Atualizar pacotes e kernel
Desativar serviços desnecessários
Corrigir permissões de arquivos críticos
Ajustar configurações de SSH, SELinux/AppArmor
Monitorar logs e padrões suspeitos
Agendar auditorias periódicas

