# MANUAL TÉCNICO - SERVIÇO TFTP E PROVISIONAMENTO **Código:** ITGINF 0021/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 Habilitar e configurar o servidor TFTP (Trivial File Transfer Protocol) no pfSense, utilizado principalmente para provisionamento automático de telefones IP (VoIP) e boot via rede (PXE) de thin clients ou instaladores. ## 3. PRÉ-REQUISITOS - [ ] Acesso à WebGUI do pfSense. - [ ] Arquivos de configuração/firmware prontos para upload (ex: `.xml`, `.cfg`, `.bin`). - [ ] DHCP Server configurado (necessário para informar a Option 66). ## 4. PASSO A PASSO (EXECUÇÃO) ### Etapa 1: Upload dos Arquivos Antes de ativar o serviço, suba os arquivos que serão servidos. 1. Acesse `Diagnostics > Command Prompt`. 2. Use a seção **Upload File** para enviar arquivos um por um. * O destino padrão do TFTP é `/tftpboot`. No entanto, o **Command Prompt** salva em `/tmp` por padrão. 3. **Método Recomendado (SCP/SFTP):** * Use o WinSCP (ver `Manual de Ferramentas - WinSCP`) para conectar no pfSense via SSH (porta 22). * Navegue até `/tftpboot/`. Se não existir, crie a pasta. * Copie todos os arquivos de firmware/configuração para lá. ### Etapa 2: Validar Permissões (Shell) 1. Acesse o Shell (SSH ou Console). 2. Garanta que o usuário `root` ou `nobody` consiga ler os arquivos: ```bash chmod -R 755 /tftpboot chown -R root:wheel /tftpboot ``` ### Etapa 3: Habilitar o Serviço TFTP 1. Acesse `System > Advanced > Firewall & NAT`. 2. Procure por **TFTP Proxy** e garanta que esteja configurado apenas se necessário NAT para fora. 3. Para o **Servidor Interno**, acesse `Services > TFTP Server`. (Se não aparecer, verifique se o pacote está instalado ou se sua versão inclui o daemon nativo. Em versões modernas, ele é nativo). 4. **Enable:** Marque a caixa. 5. **Interface:** Selecione a interface onde os telefones/clientes estão (ex: `LAN` ou `VOIP_VLAN`). 6. **TFTP Directory:** `/tftpboot` (ou o caminho onde você colocou os arquivos). ![TFTP Settings](assets/pfsense_tftp_settings.png) 7. Clique em **Save**. ### Etapa 4: Configurar DHCP Option 66 (Boot Server) O telefone precisa saber ONDE buscar os arquivos. 1. Acesse `Services > DHCP Server`. 2. Vá na interface correspondente (ex: LAN). 3. Clique em **Advanced Options** (botão 'Display Advanced' se houver, ou role para baixo). 4. Em **TFTP Server**, coloque o IP da interface do pfSense (ex: `192.168.1.1`). 5. Em **Bootfile** (se necessário), coloque o nome do arquivo padrão (ex: `boot.bin` ou deixe em branco se o aparelho procurar pelo MAC). 6. Salve. ## 5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING) **Problema 1: Timeout ao baixar arquivo** * **Causa:** Firewall bloqueando porta 69 (UDP) ou intervalo de portas altas usadas pela transferência. * **Solução:** Crie uma regra na Interface LAN/VLAN permitindo Protocolo UDP, Origem `Rede Local`, Destino `Endereço da Interface`, Porta `69 (TFTP)`. O helper TFTP deve cuidar do resto, mas às vezes é necessário liberar portas altas. **Problema 2: File not found** * **Causa:** Permissão de arquivo linux ou Case Sensitive. * **Solução:** O Linux diferencia maiúsculas de minúsculas (`Config.xml` ≠ `config.xml`). Verifique o nome exato que o aparelho solicita nos logs (`Status > System Logs > DHCP/TFTP` se disponível, ou via tcpdump). **Problema 3: Conflito com TFTP Proxy** * **Solução:** Se estiver usando o TFTP Server interno, desative o TFTP Proxy em `System > Advanced > Firewall & NAT` se houver conflito, ou garanta que ele está apontando para o Localhost corretamente. ## 6. DADOS TÉCNICOS | Campo | Valor | Descrição | | :--- | :--- | :--- | | **Porta** | 69 UDP | Porta de Controle | | **Diretório** | `/tftpboot` | Padrão do pfSense | | **Protocolo** | UDP | Não tem retransmissão TCP | ## 7. VALIDAÇÃO FINAL (Definição de Pronto) - [ ] O serviço TFTP está rodando? - [ ] Ao rodar `tftp 192.168.1.1 get arquivo.txt` de um PC, o download ocorre? - [ ] Os telefones IP receberam a configuração após reboot?