Visão Geral
O Gateway PKIGuardian é responsável por descobrir certificados em dispositivos de rede, servidores e appliances. Este guia aborda as opções de configuração disponíveis no appsettings.json.
Configuração dos Serviços de Conexão
Serviço de Conexão HTTP API
Configuração para conexões HTTPS REST API com appliances de rede (F5 BIG-IP, Palo Alto, Fortinet, etc.).
"ConnectionServices": {
"HttpApi": {
"TimeoutSeconds": 30,
"MaxRetries": 3,
"CircuitBreakerMinimumThroughput": 5,
"CircuitBreakerSamplingDurationSeconds": 30,
"CircuitBreakerBreakDurationSeconds": 30,
"RateLimitRequestsPerMinute": 60,
"MaxConcurrentConnections": 10
}
}
Parâmetros:
TimeoutSeconds: Tempo máximo de espera pela resposta da API (padrão: 30)MaxRetries: Número de tentativas em caso de falha (padrão: 3)CircuitBreakerMinimumThroughput: Mínimo de requisições antes de ativar o circuit breaker (padrão: 5)CircuitBreakerSamplingDurationSeconds: Janela de tempo para medir falhas (padrão: 30)CircuitBreakerBreakDurationSeconds: Duração do circuito aberto após disparo (padrão: 30)RateLimitRequestsPerMinute: Máximo de requisições por minuto (padrão: 60)MaxConcurrentConnections: Máximo de conexões HTTP simultâneas (padrão: 10)
Serviço de Conexão SNMP
Configuração para conexões SNMP v2c e v3 com dispositivos de rede.
"Snmp": {
"TimeoutMilliseconds": 5000,
"MaxRetries": 2,
"DefaultPort": 161,
"RateLimitRequestsPerMinute": 120,
"MaxConcurrentConnections": 10
}
Parâmetros:
TimeoutMilliseconds: Timeout da requisição SNMP em milissegundos (padrão: 5000ms = 5 segundos)MaxRetries: Número de tentativas (padrão: 2)DefaultPort: Porta SNMP padrão (padrão: 161)RateLimitRequestsPerMinute: Máximo de consultas SNMP por minuto (padrão: 120)MaxConcurrentConnections: Máximo de conexões SNMP simultâneas (padrão: 10)
Serviço de Conexão SSH
Configuração para conexões SSH CLI com dispositivos de rede (Cisco, Juniper, etc.).
"SSH": {
"TimeoutSeconds": 60,
"MaxRetries": 2,
"RateLimitRequestsPerMinute": 30,
"MaxConcurrentConnections": 5
}
Parâmetros:
TimeoutSeconds: Timeout de comando SSH (padrão: 60)MaxRetries: Número de tentativas (padrão: 2)RateLimitRequestsPerMinute: Máximo de comandos SSH por minuto (padrão: 30)MaxConcurrentConnections: Máximo de sessões SSH simultâneas (padrão: 5)
Nota: Conexões SSH são mais exigentes em recursos; mantenha MaxConcurrentConnections em 5 ou menos para não sobrecarregar os dispositivos.
Serviço de Conexão WinRM
Configuração para conexões Windows Remote Management com servidores Windows.
"WinRM": {
"TimeoutSeconds": 60,
"MaxRetries": 2,
"RateLimitRequestsPerMinute": 30,
"MaxConcurrentConnections": 5
}
Parâmetros:
TimeoutSeconds: Timeout de comando WinRM (padrão: 60)MaxRetries: Número de tentativas (padrão: 2)RateLimitRequestsPerMinute: Máximo de comandos WinRM por minuto (padrão: 30)MaxConcurrentConnections: Máximo de sessões WinRM simultâneas (padrão: 5)
Configuração de Adaptadores de Fornecedor
Configurações específicas por fabricante de dispositivo de rede.
"VendorAdapters": {
"Cisco": {
"RateLimitRequestsPerMinute": 30,
"MaxConcurrentConnections": 5,
"ConnectionPreference": [ "SSH", "HttpsApi", "Snmp" ]
},
"F5Networks": {
"RateLimitRequestsPerMinute": 60,
"MaxConcurrentConnections": 10,
"ConnectionPreference": [ "HttpsApi", "SSH" ]
}
}
Fornecedores Suportados
Cisco
- Dispositivos: IOS, IOS-XE, ASA, WLC (Wireless LAN Controller)
- Protocolo Preferido: SSH
- Limite de Taxa: 30 requisições/minuto (conservador para dispositivos mais antigos)
- Máx. Concorrentes: 5 conexões
F5 Networks
- Dispositivos: BIG-IP (LTM, GTM, ASM)
- Protocolo Preferido: iControl REST API
- Limite de Taxa: 60 requisições/minuto
- Máx. Concorrentes: 10 conexões
Palo Alto
- Dispositivos: Firewalls PA-Series, Panorama
- Protocolo Preferido: XML API
- Limite de Taxa: 60 requisições/minuto
- Máx. Concorrentes: 10 conexões
Fortinet
- Dispositivos: Firewalls FortiGate, FortiManager
- Protocolo Preferido: REST API
- Limite de Taxa: 60 requisições/minuto
- Máx. Concorrentes: 10 conexões
Juniper
- Dispositivos: Roteadores e switches JunOS
- Protocolo Preferido: SSH (NETCONF opcional)
- Limite de Taxa: 30 requisições/minuto
- Máx. Concorrentes: 5 conexões
Genérico
- Dispositivos: Dispositivos não suportados ou genéricos
- Protocolo Preferido: SNMP (fallback)
- Limite de Taxa: 30 requisições/minuto
- Máx. Concorrentes: 5 conexões
Preferência de Conexão
O array ConnectionPreference define a ordem em que os métodos de conexão são tentados:
- Primeira preferência: Tentar protocolo primário (geralmente o mais eficiente)
- Segunda preferência: Fallback se o primário falhar
- Terceira preferência: Último recurso
Exemplo: Para dispositivos Cisco, o Gateway tenta SSH primeiro, depois HTTPS API, depois SNMP.
Configuração de Caminhos de Certificados
Localizações padrão de certificados para diferentes tipos de dispositivo. O Gateway usa esses caminhos durante a descoberta.
"DeviceCertificatePaths": {
"Router": {
"DefaultPaths": [
"/etc/ssl/certs",
"/flash/certs"
],
"DefaultStores": [ "trustpoint", "ca-certificates" ]
}
}
Tipos de Dispositivo
Roteador
- Caminhos:
/etc/ssl/certs,/flash/certs - Stores:
trustpoint,ca-certificates - Notas: Cisco IOS usa trustpoints; roteadores baseados em Linux usam caminhos padrão
Switch
- Caminhos:
/etc/ssl/certs,/flash/certs - Stores:
trustpoint,ca-certificates - Notas: Semelhante a roteadores; pode ter menos certificados
Firewall
- Caminhos:
/config/ssl,/etc/ssl/certs - Stores:
device-certificates,trusted-ca - Notas: Firewalls frequentemente armazenam certs em partições
/config
Balanceador de Carga
- Caminhos:
/config/ssl,/etc/ssl - Stores:
ssl-profiles,client-ssl,server-ssl - Notas: F5 usa perfis SSL; HAProxy usa arquivos PEM
Ponto de Acesso
- Caminhos:
/etc/ssl/certs - Stores:
certificates - Notas: Controllers wireless gerenciam certificados de AP
Servidor
- Caminhos:
/etc/ssl/certs,/etc/pki/tls/certs - Stores:
My,Root,CA - Notas: Windows usa stores de certificado; Linux usa caminhos no sistema de arquivos
Ajuste de Desempenho
Ajustando Limites de Concorrência
Dispositivos de Baixa Potência (IoT, equipamentos mais antigos):
"MaxConcurrentConnections": 2
"RateLimitRequestsPerMinute": 10
Dispositivos de Alta Performance (firewalls modernos, balanceadores de carga):
"MaxConcurrentConnections": 20
"RateLimitRequestsPerMinute": 120
Recomendações de Timeout
| Tipo de Dispositivo | Timeout | Justificativa |
|---|---|---|
| REST APIs | 30s | Respostas rápidas e estruturadas |
| SSH CLI | 60s | Processamento e análise de comandos |
| SNMP | 5000ms (5s) | Deve ser imediato; tentar novamente se lento |
| WinRM | 60s | Semelhante ao SSH |
Boas Práticas de Limitação de Taxa
- Comece de forma conservadora: Use os limites padrão inicialmente
- Monitore o desempenho: Verifique CPU/memória do dispositivo durante a descoberta
- Aumente gradualmente: Eleve os limites em 20% se não houver problemas
- Limites do fornecedor: Respeite os limites de API (consulte a documentação do fornecedor)
- Horário de produção: Considere reduzir os limites durante picos de uso
Exemplos de Configuração
Ambiente de Alto Volume (1000+ dispositivos)
"ConnectionServices": {
"HttpApi": {
"MaxConcurrentConnections": 20,
"RateLimitRequestsPerMinute": 120
},
"SSH": {
"MaxConcurrentConnections": 10,
"RateLimitRequestsPerMinute": 60
}
}
Ambiente Conservador/Legado
"ConnectionServices": {
"HttpApi": {
"MaxConcurrentConnections": 5,
"RateLimitRequestsPerMinute": 30
},
"SSH": {
"MaxConcurrentConnections": 3,
"RateLimitRequestsPerMinute": 15
}
}
Solução de Problemas
Timeouts de Conexão
Sintoma: Dispositivos falham com erros de timeout
Soluções:
- Aumente
TimeoutSecondspara o tipo de conexão - Reduza
MaxConcurrentConnections - Verifique a latência de rede para os dispositivos
- Verifique se o dispositivo não está sobrecarregado
Erros de Limitação de Taxa
Sintoma: Erros “429 Too Many Requests” ou semelhantes
Soluções:
- Reduza
RateLimitRequestsPerMinute - Reduza
MaxConcurrentConnections - Consulte a documentação da API do fornecedor para conhecer os limites
- Implemente agendamentos escalonados de descoberta
Ativação do Circuit Breaker
Sintoma: Erros “Circuit breaker is open”
Soluções:
- Aumente
CircuitBreakerThreshold - Estenda
CircuitBreakerBreakDurationSeconds - Resolva os problemas de conexão subjacentes primeiro
- Revise os logs do dispositivo para identificar falhas
Considerações de Segurança
- Armazenamento de Credenciais: Use HashiCorp Vault para armazenar chaves de API e community strings SNMP
- Conexões Criptografadas: Sempre use HTTPS, SSH ou SNMPv3 (nunca Telnet ou SNMPv2c em produção)
- Privilégio Mínimo: Crie contas somente leitura nos dispositivos para descoberta de certificados
- Log de Auditoria: Todas as tentativas de conexão são registradas nos logs do Gateway
- Limitação de Taxa: Previne DoS acidental de dispositivos de rede
Consulte Também
- Descoberta em Appliances de Rede — Guia completo de descoberta em dispositivos de rede
- Solução de Problemas — Problemas comuns e soluções