# MANUAL TÉCNICO - DIAGNÓSTICO AVANÇADO, SHELL E RECOVERY **Código:** ITGENG 0026/26 | **Classificação:** RESTRITO **Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}} ## 1. HISTÓRICO DE REVISÃO | Data | Versão | Descrição | Autor | | :--- | :--- | :--- | :--- | | {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves | ## 2. OBJETIVO Fornecer ferramentas e comandos avançados para diagnóstico de rede, performance e recuperação de desastres no pfSense, focando no uso do Shell (`pfctl`, `tcpdump`) quando a WebGUI está inacessível ou insuficiente. ## 3. PRÉ-REQUISITOS - [ ] Acesso SSH habilitado (`System > Advanced > Admin Access`). - [ ] Usuário `admin` ou `root` com senha conhecida. - [ ] Acesso físico (Console/VGA/Serial) para casos de recuperação crítica. ## 4. PASSO A PASSO (EXECUÇÃO) ### Etapa 1: Comandos Essenciais do Shell (SSH/Console) Se a interface gráfica travar, use o shell (Opção 8 no menu console). **1. Gerenciamento do Filtro de Pacotes (pf)** * `pfctl -d`: **Desabilita** o Firewall temporariamente (CUIDADO! Libera tudo). Use se trancou para fora. * `pfctl -e`: **Habilita** o Firewall novamente. * `pfctl -f /etc/filter.conf`: Recarrega as regras de filtro. * `pfctl -s info`: Mostra estatísticas gerais (Estado, Drops). **2. Diagnóstico de Interface e Roteamento** * `ifconfig`: Lista interfaces, IPs e MACs. * `netstat -rn`: Mostra a tabela de roteamento. * `netstat -i`: Mostra estatísticas de erros/colisões por interface. **3. Captura de Pacotes (tcpdump)** Ferramenta definitiva para ver o que está passando no cabo. * `tcpdump -i em0`: Vê tudo na interface `em0`. * `tcpdump -i em0 host 192.168.1.50`: Vê tráfego de/para um IP específico. * `tcpdump -i em0 port 80`: Vê apenas tráfego HTTP. * `tcpdump -n -e -ttt -i pflog0`: Vê o log do firewall em tempo real (o que está sendo bloqueado). ### Etapa 2: Recuperação de Desastres (Rescue) **Cenário: Perdi a senha de admin ou lockout da WebGUI.** 1. Acesse o **Console Físico** (Monitor+Teclado ou Serial). 2. No menu numérico (0-16): * **Opção 3 (Reset webConfigurator password):** Reseta senha para `pfsense`. * **Opção 4 (Reset to factory defaults):** Zera TUDO. (Use em último caso). * **Opção 11 (Restart webConfigurator):** Reinicia apenas o serviço PHP/Nginx. Use se a GUI estiver dando erro 502/504. * **Opção 15 (Restore recent configuration):** Permite voltar para um backup automático anterior. O pfSense salva backups a cada alteração. Isso salva vidas! ### Etapa 3: Diagnóstico via WebGUI (Tools) Se a GUI funciona, use: 1. **Test Port (`Diagnostics > Test Port`):** * Testa se uma porta TCP está aberta num servidor remoto. Melhor que ping para testar serviço. 2. **Packet Capture (`Diagnostics > Packet Capture`):** * Interface gráfica para o `tcpdump`. Permite baixar o arquivo `.cap` para analisar no Wireshark do seu PC. 3. **States Dump (`Diagnostics > States`):** * Veja quem está conectado, quantos bytes consumiu e mate conexões específicas. ### Etapa 4: Logs do Sistema Caminhos importantes no Shell para leitura com `tail -f`: * `/var/log/system.log`: Log geral do sistema. * `/var/log/filter.log`: Logs do Firewall (Blocos/Pass). * `/var/log/dhcpd.log`: Logs do DHCP. * `/var/log/openvpn.log`: Logs das VPNs. * `/var/log/nginx.log`: Logs do servidor web da GUI. ## 5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING) **Problema 1: "PHP ERROR: Type: 1, File: /etc/inc/..."** * **Causa:** Corrupção de arquivos ou disco cheio. * **Solução:** 1. Verifique espaço em disco: `df -h`. 2. No console, escolha **Opção 16 (Restart PHP-FPM)**. 3. Se persistir, reforce update via console opção 13. **Problema 2: Alta Latência / Perda de Pacotes** * **Causa:** Hardware insuficiente (Mbuf exhaustion) ou loop de rede. * **Solução:** 1. Verifique uso de CPU (`top -aSH`). 2. Verifique interrupções (`vmstat -i`). Se uma placa de rede gera 20k+ interrupts, pode ser defeito ou driver ruim. 3. Aumente Mbufs em `System > Advanced > Networking` se tiver RAM sobrando. **Problema 3: Boot Loop ou Filesystem Error** * **Solução:** 1. Boot no modo Single User (`s` no boot loader). 2. Execute `fsck -y /` para corrigir o sistema de arquivos (apenas UFS). ZFS geralmente se autocorrige ou exige scrub. ## 6. DADOS TÉCNICOS | Comando | Função | Exemplo | | :--- | :--- | :--- | | `pfctl -d` | Desativa Firewall | Emergência | | `viconfig` | Edita config.xml | Uso Avançado | | `top` | Monitor de Processos | Ver carga | ## 7. VALIDAÇÃO FINAL (Definição de Pronto) - [ ] Consegue acessar via SSH? - [ ] O comando `tcpdump` mostra tráfego? - [ ] Sabe onde restaurar um backup pelo console (Opção 15)? - [ ] Logs estão acessíveis e legíveis?