Um script inteligente e adaptativo para hardening de sistemas Arch Linux, oferecendo três níveis de segurança balanceados entre proteção e usabilidade.
- 🛡️ Hardening Adaptativo: Três perfis de segurança para diferentes necessidades
- 🔄 Reversível: Backups automáticos antes de qualquer mudança
- 📊 Monitoramento Contínuo: Script de verificação integrado
- ⚡ Não Intrusivo: Mantém a usabilidade do sistema
- 🔍 Logs Inteligentes: Registra apenas eventos relevantes
- 🎨 Interface Amigável: Menu interativo com cores e feedback claro
# Clone o repositório
git clone https://github.com/seu-usuario/arch-hardening-script.git
cd arch-hardening-script
# Dar permissão de execução
chmod +x hardening_script.sh
# Executar (NÃO como root)
./hardening_script.shRecomendado para uso pessoal
- ✅ Firewall básico (nftables)
- ✅ Atualizações automáticas
- ✅ Parâmetros de kernel essenciais
- ✅ Configurações de usuário seguras
- ✅ Zero impacto na usabilidade
- 🎯 Protege contra 90% dos ataques comuns
Ideal para desenvolvedores e usuários avançados
- ✅ Todas as proteções do Perfil 1
- ✅ Auditoria seletiva (auditd)
- ✅ AppArmor para aplicações web
- ✅ Firewall com regras para desenvolvimento
- ✅ Logging inteligente de eventos críticos
- 🎯 Segurança avançada sem prejudicar desenvolvimento
Para ambientes de alta segurança
- ✅ Todas as proteções dos Perfis 1 e 2
- ✅ Monitoramento de integridade (AIDE)
- ✅ Parâmetros de kernel restritivos
- ✅ Auditoria completa otimizada
- ✅ Configurações máximas de sudo
⚠️ Pode impactar performance em sistemas antigos
- Política padrão de negação
- Regras específicas por perfil
- Logging de tentativas de scan
- Bloqueio de backdoors conhecidos
- Monitoramento de arquivos críticos
- Rastreamento de escalação de privilégios
- Logs otimizados por perfil
- Detecção de mudanças suspeitas
- Proteções contra exploits
- ASLR (Address Space Layout Randomization)
- Proteções de rede
- Parâmetros adaptados por perfil
- AppArmor para aplicações críticas
- Configurações sudo restritivas
- Timeouts de sessão
- Políticas de senha
- Script de verificação integrado
- Relatórios de status em tempo real
- Alertas para atividades suspeitas
- Logs estruturados
# Executar o script (como usuário normal)
./hardening_script.sh
# Selecionar perfil no menu interativo
1) Desktop Doméstico
2) Workstation de Desenvolvimento
3) Sistema Crítico
4) Verificar sistema atual
5) Sair
# Reiniciar após a implementação
sudo reboot# Verificação manual do sistema
sudo security-check
# Ou usar o alias criado
sec-check
# Verificação automatizada (opcional)
# Adicionar ao cron para execução diária
echo "0 9 * * * /usr/local/bin/security-check >> /var/log/daily-security.log" | sudo crontab -=== Verificação de Segurança do Sistema ===
Data: Thu Aug 28 15:30:45 2025
--- Status dos Serviços ---
Firewall (nftables): active
SSH: inactive
Auditd: active
AppArmor: active
--- Configurações de Segurança ---
Perfis AppArmor: 12
Regras de auditoria: 8
Regras do firewall: 4
--- Logs Recentes (últimas 24h) ---
Tentativas de login falhadas: 0
Eventos de sudo: 5
--- Sistema ---
Última atualização: Aug 28 10:15
Uptime: 2 hours, 15 minutes
Load average: 0.25, 0.30, 0.28
=== Fim da Verificação ===
# Visualizar regras ativas
sudo nft list ruleset
# Status do serviço
sudo systemctl status nftables# Verificar regras ativas
sudo auditctl -l
# Visualizar logs
sudo ausearch -k users# Status dos perfis
sudo aa-status
# Perfis em modo enforce
sudo aa-enforce /usr/bin/firefox# Verificar logs do firewall
sudo journalctl -u nftables
# Adicionar regra temporária
sudo nft add rule inet filter input tcp dport PORTA accept# Verificar configuração
sudo sshd -t
# Reverter configuração
sudo cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
sudo systemctl restart sshd# Colocar perfil em modo complain
sudo aa-complain /caminho/para/aplicacao
# Verificar logs de negação
sudo grep DENIED /var/log/audit/audit.logO script cria backups automáticos em /tmp/hardening_backup_[timestamp]. Para reverter:
# Encontrar o backup mais recente
ls -la /tmp/hardening_backup_*
# Restaurar configurações
sudo cp -r /tmp/hardening_backup_TIMESTAMP/* /
# Reiniciar serviços afetados
sudo systemctl restart nftables sshd auditd- OS: Arch Linux (testado), Manjaro (compatível)
- Shell: Bash, Zsh, Fish
- Arquitetura: x86_64, ARM64
- Kernel: Linux 5.4+
Contribuições são muito bem-vindas! Por favor:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -am 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
- Suporte para outras distribuições baseadas em Arch
- Perfis customizados por usuário
- Interface gráfica (GTK/Qt)
- Integração com ferramentas de SIEM
- Testes automatizados
- Documentação em outros idiomas
- ✅ Implementação dos três perfis básicos
- ✅ Sistema de backup e recuperação
- ✅ Script de monitoramento
- 🔄 Interface gráfica
- 🔄 Perfis customizáveis
- 🔄 Integração com Lynis
- 🔄 Suporte a containers
- 🔄 Alertas por email/telegram
Este script modifica configurações críticas do sistema. Sempre:
- Faça backup completo do sistema antes de usar
- Teste em ambiente não-produtivo primeiro
- Leia o código antes de executar
- Entenda as implicações de cada configuração
O autor não se responsabiliza por problemas causados pelo uso inadequado.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Desenvolvido por @caio2203 especialista em Linux e engenheiro de dados
- Comunidade Arch Linux
- Projeto AppArmor
- Desenvolvedores do nftables
- Contribuidores do projeto AIDE
- Todos que reportaram bugs e sugeriram melhorias
⭐ Se este script foi útil para você, considere dar uma estrela no projeto! ⭐
#ArchLinux #Security #Hardening #CyberSecurity #Linux #OpenSource