
Projeto CY376 Blue Team — pfSense DMZ, Suricata IDS/IPS e hardening automatizado de hosts contra CVE-2014-6271
CY376: Monitoramento de Rede, Segurança e Auditoria — Projeto de Fim de Semestre Blue Team | Universidade de Minas e Tecnologia, Tarkwa
Autor: Kennedy Kumi Holomah Número de índice: FCM.41.018.148.23 ID do estudante: 9013004623
Este projeto constrói, protege e monitora uma zona desmilitarizada (DMZ) que hospeda um servidor web Ubuntu/Apache voltado ao público, atrás de um firewall pfSense, inteiramente em um laboratório isolado do VMware Workstation. Foi desenvolvido como um exercício de Blue Team para CY376 (Monitoramento de Rede, Segurança e Auditoria) na Universidade de Minas e Tecnologia, Tarkwa, e demonstra um ciclo de vida defensivo completo, em vez de um único controle isolado: um limite de rede segmentado, detecção inline nesse limite, uma tentativa real de exploração contra uma CVE identificada, remediação automatizada e revalidação de que a correção realmente fechou a lacuna.
O projeto deliberadamente combina cada camada defensiva com evidências, em vez de apenas uma captura de tela de configuração: a detecção do Suricata é mostrada capturando uma tentativa real de exploração do Shellshock em tempo real, o mesmo payload é mostrado falhando por completo após a aplicação do endurecimento, e os problemas de infraestrutura não óbvios encontrados ao longo do caminho (configurações de offload de hardware bloqueando silenciosamente a captura de pacotes, o escopo padrão de HOME_NET quebrando silenciosamente assinaturas direcionais, o bloqueio de permissões do próprio script de endurecimento derrubando o servidor que deveria proteger) são documentados como descobertas por direito próprio, não editados.
HOME_NET corretamente definido para a sub-rede da DMZ, de modo que o tráfego de ataque originado na LAN seja tratado como externo.scripts/dmz_web_hardening.sh) corrige o Bash, desativa o manipulador CGI do qual o Shellshock depende, restringe o SSH à LAN, ativa um firewall de host (UFW) e fail2ban e bloqueia as permissões da raiz da web.Relatório completo, capturas de tela de evidências e análise: docs/CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf.
Todo o tráfego entre segmentos passa exclusivamente pelo pfSense; nenhum caminho contorna o firewall.
.
├── README.md
├── .gitignore
├── scripts/
│ └── dmz_web_hardening.sh # Host hardening script for the DMZ web server
├── docs/
│ └── CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf # Full project report
└── evidence/
└── figure01_lab_topology.png ... figure11_wazuh_dashboard.png
# The 11 captioned screenshots from the report, numbered to match
# the figure numbers used throughout docs/CY376_DMZ_Report_*.pdf
O scripts/dmz_web_hardening.sh tem como alvo o host Ubuntu/Apache da DMZ. Ele foi escrito para ser seguro de reexecutar: todo arquivo de configuração que ele modifica é salvo em backup primeiro (sufixo .bak-YYYYmmdd-HHMMSS), e todas as ações são registradas em um arquivo com data/hora em /var/log.
# On the DMZ web server
sudo bash scripts/dmz_web_hardening.sh
Antes de executar, revise a seção CONFIG no topo do script (sub-rede da LAN, portas HTTP/HTTPS) para adequá-la à sua própria topologia.
O que ele faz:
mod_cgi/mod_cgid (removendo completamente a superfície de ataque do Shellshock) e bloqueia propriedade/permissões da raiz da web.Um resumo da conclusão é exibido ao final, e os detalhes completos de cada etapa estão no relatório.
Consulte a Seção 6 (Análise e Recomendações) do relatório para a discussão completa.
| Host | Função | Interface / VMnet | Endereço IP |
|---|
| pfSense | Firewall / roteador | WAN (em0) | 192.168.248.138 (DHCP, NAT) |
| pfSense | Firewall / roteador | LAN (em2) | 192.168.20.1/24 |
| pfSense | Firewall / roteador | DMZ (em1) | 192.168.10.1/24 |
| Kali Linux | Host atacante | VMnet4 (LAN) | 192.168.20.102 |
| Cliente LAN | Host LAN genérico | VMnet4 (LAN) | 192.168.20.100 |
| Servidor Web da DMZ | Alvo / ativo protegido | VMnet3 (DMZ) | 192.168.10.10 |
| Gerenciador Wazuh | Plataforma SIEM / de logs | VMnet4 (LAN) | 192.168.20.103 |
| Teste | Pré-endurecimento | Pós-endurecimento |
|---|
| Tentativa de exploração do Shellshock | Payload aceito; alerta do Suricata disparado (SID 2022028) | HTTP 404 — manipulador CGI removido |
| SSH a partir da LAN (Kali) | Disponível, sem restrições | Disponível, restrito a 192.168.20.0/24 |
| Acesso à raiz da web | Exibia conteúdo padrão | Brevemente 403 durante o endurecimento, depois restaurado |
| Regra de drop personalizada do Suricata | N/A | Bloqueio ativo confirmado na correspondência |