Visão Geral
O Gateway PKIGuardian suporta descoberta automatizada de certificados em appliances de rede, incluindo roteadores, switches, firewalls, balanceadores de carga e controladores wireless. Este guia aborda a configuração, fornecedores suportados e solução de problemas para descoberta de certificados em appliances de rede.
Índice
- Fornecedores Suportados
- Métodos de Conexão
- Configuração de Dispositivos
- Configuração Específica por Fornecedor
- Solução de Problemas
- Boas Práticas
Fornecedores Suportados
O PKIGuardian suporta atualmente os seguintes fabricantes de appliances de rede:
| Fabricante | Tipos de Dispositivo | Métodos de Conexão | Suporte a API |
|---|---|---|---|
| Cisco IOS/IOS-XE | Roteadores, Switches | SSH CLI | Não |
| Cisco ASA | Firewalls | SSH CLI | Não |
| Cisco WLC | Controladores Wireless | SSH CLI, HTTPS API | Sim (WLC 9800+) |
| F5 BIG-IP | Balanceadores de Carga | SSH CLI, HTTPS API | Sim (iControl REST) |
| Palo Alto Networks | Firewalls | SSH CLI, HTTPS API | Sim (XML API) |
| Fortinet FortiGate | Firewalls | SSH CLI, HTTPS API | Sim (REST API) |
| Juniper JunOS | Roteadores, Switches, Firewalls | SSH CLI | Limitado (XML) |
| SNMP Genérico | Qualquer dispositivo com SNMP | SNMP v2c/v3 | N/A |
Métodos de Conexão
SSH CLI (Interface de Linha de Comando)
O método mais universal, suportado por todos os appliances de rede. O PKIGuardian executa comandos específicos do fabricante para recuperar informações de certificado.
Vantagens:
- Funciona com todos os dispositivos
- Sem configuração adicional além do acesso SSH
- Mais confiável
Desvantagens:
- Mais lento do que os métodos via API
- Requer análise de saída em texto
- Limitado a operações somente leitura
HTTPS API
Appliances modernos fornecem APIs REST ou XML para gerenciamento de certificados. Este é o método preferido quando disponível.
Vantagens:
- Mais rápido e eficiente
- Respostas estruturadas em JSON/XML
- Melhor tratamento de erros
- Suporta gerenciamento programático
Desvantagens:
- Não disponível em todos os dispositivos
- Requer credenciais de API (chaves, tokens)
- Pode exigir licenciamento adicional
SNMP (Simple Network Management Protocol)
Método de fallback para dispositivos sem acesso SSH ou API. Informações de certificado limitadas disponíveis.
Vantagens:
- Funciona com configuração mínima no dispositivo
- Pode descobrir metadados do dispositivo
- Não requer autenticação (v2c)
Desvantagens:
- Informações de certificado limitadas
- Preocupações de segurança com v2c
- Requer conhecimento de MIB
Configuração de Dispositivos
Adicionando um Appliance de Rede
Via Interface Web
- Acesse Dispositivos > Adicionar Dispositivo
- Selecione o Tipo de Dispositivo (Roteador, Switch, Firewall, etc.)
- Selecione o Fabricante do Dispositivo no dropdown
- Preencha os detalhes:
- Nome: Nome amigável para o dispositivo
- Hostname/IP: Endereço IP de gerenciamento
- URL de Gerenciamento: (Opcional) URL HTTPS para acesso à API
- Configure o método de conexão:
- SSH: Forneça usuário e senha/chave privada
- HTTPS API: Forneça chave/token de API
- SNMP: Forneça community string (v2c) ou credenciais (v3)
- Clique em Testar Conexão para verificar as credenciais
- Clique em Salvar
Via CLI
# Adicionar roteador Cisco com SSH
pkiguardian devices add \
--name "Core-Router-01" \
--hostname "192.168.1.1" \
--vendor Cisco \
--type Router \
--connection-type SSH \
--username admin \
--password-file /path/to/password.txt
# Adicionar F5 BIG-IP com API
pkiguardian devices add \
--name "F5-LB-01" \
--hostname "192.168.1.10" \
--vendor F5Networks \
--type LoadBalancer \
--connection-type HttpsApi \
--management-url "https://192.168.1.10" \
--api-key "sua-chave-de-api"
# Adicionar dispositivo com SNMP
pkiguardian devices add \
--name "Unknown-Device" \
--hostname "192.168.1.20" \
--vendor Generic \
--type Other \
--connection-type Snmp \
--snmp-community "public"
Credenciais de Conexão
Autenticação SSH
Usuário/Senha:
{
"username": "readonly-user",
"password": "stored-in-vault"
}
Chave SSH:
{
"username": "readonly-user",
"privateKey": "-----BEGIN OPENSSH PRIVATE KEY-----\n...",
"passphrase": "passphrase-opcional"
}
Autenticação de API
Chave de API (Palo Alto, Fortinet):
{
"apiKey": "sua-chave-de-api"
}
Bearer Token (F5, Cisco WLC):
{
"apiToken": "Bearer eyJhbGc..."
}
Autenticação Básica:
{
"username": "api-user",
"password": "api-password"
}
Autenticação SNMP
SNMP v2c:
{
"community": "public-ou-private"
}
SNMP v3:
{
"username": "snmp-user",
"authProtocol": "SHA",
"authPassword": "auth-password",
"privProtocol": "AES",
"privPassword": "priv-password"
}
Configuração Específica por Fornecedor
Cisco IOS/IOS-XE (Roteadores e Switches)
Comandos Necessários
O PKIGuardian executa os seguintes comandos:
show crypto pki certificates
show crypto ca certificates
Configuração do Dispositivo
Crie um usuário somente leitura para o PKIGuardian:
! Criar nível de privilégio para acesso somente leitura a crypto
privilege exec level 15 show crypto pki certificates
privilege exec level 15 show crypto ca certificates
! Criar conta de usuário
username pkiguardian privilege 15 secret SuaSenhaSegura
! Configurar SSH
ip domain-name example.com
crypto key generate rsa general-keys modulus 2048
line vty 0 4
transport input ssh
login local
Permissões Necessárias
- Nível de privilégio 15 (ou equivalente) para comandos
show crypto - SSH habilitado e acessível
- Acesso somente leitura é suficiente
Solução de Problemas
Erro: “Command authorization failed”
Solução: Garanta que o usuário tem privilégio 15 ou configure o AAA para permitir comandos crypto
Erro: “SSH connection timeout”
Solução: Verifique se o SSH está habilitado e acessível:
- show ip ssh
- Teste o SSH a partir do gateway: ssh user@dispositivo
Erro: “No certificates found”
Solução: Verifique se os certificados estão instalados:
- show crypto pki certificates
- show crypto ca trustpoints
Cisco ASA (Firewalls)
Comandos Necessários
show crypto ca certificates
show crypto ca server
Configuração do Dispositivo
! Criar usuário local
username pkiguardian password SuaSenhaSegura privilege 15
! Habilitar SSH
crypto key generate rsa modulus 2048
ssh version 2
ssh 192.168.1.0 255.255.255.0 inside
aaa authentication ssh console LOCAL
Permissões Necessárias
- Privilégio 15 para comandos de certificado
- Acesso SSH a partir do IP do Gateway PKIGuardian
Diferenças em Relação ao IOS
- O formato de saída dos comandos é ligeiramente diferente
- Localização dos certificados pode incluir nomes de contexto
- Certificados de IPSec e SSL VPN são armazenados separadamente
F5 BIG-IP (Balanceadores de Carga)
Método Preferido: iControl REST API
O F5 BIG-IP fornece uma API REST abrangente para gerenciamento de certificados.
Endpoints de API Utilizados:
GET /mgmt/tm/sys/crypto/cert— Lista todos os certificadosGET /mgmt/tm/sys/file/ssl-cert— Lista arquivos de certificadoGET /mgmt/tm/sys/file/ssl-key— Lista arquivos de chave privada
Configuração do Dispositivo
Criar Usuário de API:
# Via tmsh
tmsh create auth user pkiguardian partition-access add { all-partitions { role operator } } shell none password SuaSenhaSegura
# Via GUI
System > Users > User List > Create
- User Name: pkiguardian
- Role: Operator (somente leitura)
- Partition Access: All partitions
Gerar Token de API:
# Usando curl
curl -sk -u pkiguardian:password -H "Content-Type: application/json" \
-X POST https://bigip.example.com/mgmt/shared/authn/login \
-d '{"username":"pkiguardian","password":"SuaSenhaSegura","loginProviderName":"tmos"}'
# Resposta contém token
{
"token": {
"token": "ABCDEFG123456...",
"timeout": 1200
}
}
Nota: Tokens expiram. Use usuário/senha para renovação automática do token.
Fallback: SSH CLI
tmsh list sys crypto cert
tmsh list sys file ssl-cert
Configuração SSH:
# Permitir SSH do gateway PKIGuardian
tmsh modify sys sshd allow add { 192.168.1.0/24 }
tmsh save sys config
Informações de Certificado Recuperadas
- Nome do certificado e partição
- DN do sujeito
- DN do emissor
- Número de série
- Datas de validade (não antes, não depois)
- Tamanho da chave e algoritmo
- Uso (perfil SSL, client SSL, server SSL)
Solução de Problemas
Erro: “401 Unauthorized”
Solução: Verifique as credenciais de API
- Verifique usuário e senha
- Certifique-se que o usuário tem papel Operator ou superior
- Teste: curl -k -u user:pass https://bigip/mgmt/tm/sys/version
Erro: “403 Forbidden”
Solução: Usuário sem permissão
- Adicione partition-access ao usuário
- Certifique-se que o papel é pelo menos Operator
Erro: “SSL certificate problem”
Solução: O F5 usa certificado autoassinado
- Adicione o certificado F5 ao trust store do PKIGuardian
- Ou configure para aceitar autoassinados (não recomendado em produção)
Palo Alto Networks (Firewalls)
Método Preferido: XML API
Firewalls Palo Alto fornecem uma API XML para gerenciamento de certificados e configuração.
Endpoints de API:
GET /api/?type=op&cmd=<show><config><running><certificate></certificate></running></config></show>&key=API_KEY
Configuração do Dispositivo
Gerar Chave de API:
# Via web UI: Device > Setup > Management > Administrators
# Ou via comando:
curl -k "https://palo.example.com/api/?type=keygen&user=pkiguardian&password=SuaSenha"
# Resposta:
<response status="success">
<result>
<key>LUFRPT1234567890...</key>
</result>
</response>
Criar Administrador Somente Leitura:
# Via GUI: Device > Administrators > Add
- Name: pkiguardian
- Authentication Profile: None (Local Database)
- Password: SuaSenhaSegura
- Role: Read-Only
# Via CLI:
set mgt-config users pkiguardian permissions role-based superreader yes
set mgt-config users pkiguardian password
Informações de Certificado Recuperadas
- Nome do certificado
- CN do sujeito
- CN do emissor
- Número de série
- Período de validade
- Uso (certificado de dispositivo, CA confiável, etc.)
- Algoritmo e tamanho de chave
Solução de Problemas
Erro: “Invalid credentials”
Solução: Verifique a chave de API
- Regere a chave: type=keygen&user=X&password=Y
- Certifique-se que o usuário não está bloqueado
- Verifique as regras de acesso de gerenciamento do firewall
Erro: “403 api_key_mismatch”
Solução: Chave de API expirada ou inválida
- Gere nova chave de API
- Atualize a configuração do dispositivo no PKIGuardian
Fortinet FortiGate (Firewalls)
Método Preferido: REST API
O FortiGate fornece uma API REST abrangente.
Endpoints de API:
GET /api/v2/monitor/vpn-certificate/local— Certificados locaisGET /api/v2/monitor/system/certificate/download— Detalhes do certificado
Configuração do Dispositivo
Criar Usuário de API:
# Via GUI: System > Administrators > Create New > REST API Admin
- Username: pkiguardian
- Administrator Profile: Read-Only
- JSON API Access: Enable
- Trusted Hosts: 192.168.1.0/255.255.255.0
# Gere o token de API (exibido apenas uma vez, salve-o!)
Via CLI:
config system api-user
edit pkiguardian
set accprofile "prof_admin_readonly"
set vdom "root"
set trusthost 192.168.1.0 255.255.255.0
next
end
Informações de Certificado Recuperadas
- ID e nome do certificado
- Sujeito e emissor
- Número de série
- Datas de validade
- Status (válido, expirado, revogado)
- Tipo (local, CA, CRL)
Solução de Problemas
Erro: “Authentication failed”
Solução: Verifique o token de API
- Regere o token na GUI
- Certifique-se que "JSON API Access" está habilitado
- Verifique a configuração de trusted hosts
Juniper JunOS (Roteadores, Switches, Firewalls)
Método de Conexão: SSH CLI
O JunOS usa uma estrutura de comandos diferente do Cisco.
Comandos Utilizados:
show security pki certificate
show security pki ca-certificate
Para a Série SRX:
show security pki local-certificate
show security pki ca-certificate
Configuração do Dispositivo
Criar Usuário Somente Leitura:
set system login user pkiguardian class read-only
set system login user pkiguardian authentication plain-text-password
# Digite a senha quando solicitado
commit
Habilitar SSH:
set system services ssh root-login deny
set system services ssh protocol-version v2
commit
Opcional: Saída XML
O JunOS pode gerar saída em formato XML para análise mais fácil:
show security pki certificate | display xml
Configure no PKIGuardian para melhor precisão na análise.
Solução de Problemas
Erro: “Permission denied”
Solução: Certifique-se que o usuário tem a classe adequada
- Use a classe 'read-only' ou 'operator'
- Teste: show configuration security pki
Dispositivos SNMP Genéricos
Para dispositivos sem suporte a SSH ou API, o SNMP pode fornecer informações básicas.
Configuração SNMP v2c
No Dispositivo:
! Exemplo Cisco
snmp-server community public RO
Configuração no PKIGuardian:
{
"connectionType": "Snmp",
"snmpVersion": "v2c",
"community": "public"
}
Configuração SNMP v3 (Recomendado)
No Dispositivo:
! Exemplo Cisco
snmp-server group pkiguardian-group v3 auth
snmp-server user pkiguardian pkiguardian-group v3 auth sha SenhaAuth priv aes 128 SenhaPriv
Configuração no PKIGuardian:
{
"connectionType": "SnmpV3",
"username": "pkiguardian",
"authProtocol": "SHA",
"authPassword": "SenhaAuth",
"privProtocol": "AES",
"privPassword": "SenhaPriv"
}
Limitações
- SNMP não consegue recuperar detalhes de certificado diretamente
- Usado principalmente para descoberta de dispositivos e metadados
- Informações de certificado requerem MIBs personalizadas (específicas do fornecedor)
Solução de Problemas
Problemas Gerais
Timeouts de Conexão
Sintomas: Conexão com o dispositivo falha com erro de timeout
Soluções:
- Verifique a conectividade de rede:
ping ip-do-dispositivo telnet ip-do-dispositivo 22 # SSH telnet ip-do-dispositivo 443 # HTTPS - Verifique as regras de firewall:
- Certifique-se que o IP do Gateway PKIGuardian está permitido
- Verifique as ACLs da interface de gerenciamento no dispositivo
- Aumente o timeout na configuração:
{ "ConnectionServices": { "SSH": { "TimeoutSeconds": 60 } } }
Falhas de Autenticação
Sintomas: “Invalid credentials” ou “Authentication failed”
Soluções:
- Verifique as credenciais no Vault:
pkiguardian vault get device/{device-id}/ssh - Teste as credenciais manualmente:
ssh user@ip-do-dispositivo # Ou curl -k -u user:pass https://ip-do-dispositivo/api/endpoint - Verifique bloqueio de conta no dispositivo:
show users # Cisco show system login # Juniper
Erros de Análise de Certificado
Sintomas: Certificados descobertos, mas dados incompletos
Soluções:
- Verifique os logs do adaptador:
kubectl logs deployment/pkiguardian-gateway | grep "vendor adapter" - Colete a saída do comando manualmente e compare:
ssh dispositivo "show crypto pki certificates" > output.txt # Revise output.txt para formatos inesperados - Atualize o adaptador se o firmware do dispositivo alterou o formato
Problemas Específicos por Fornecedor
Cisco: “Command authorization failed”
Causa: Usuário sem nível de privilégio adequado
Solução:
! Conceder privilégio 15
username pkiguardian privilege 15 secret senha
! Ou configurar autorização de comandos AAA
aaa authorization commands 15 default local
F5: “Token expired”
Causa: Tokens de API têm tempo de vida limitado
Solução:
- Use usuário/senha em vez de token
- Configure renovação automática de token
- Aumente o timeout de token nas configurações do F5
Palo Alto: “XML parse error”
Causa: Formato de resposta XML inesperado
Solução:
- Verifique a compatibilidade da versão de API
- Verifique caracteres especiais nos campos de certificado
- Revise os logs do adaptador para detalhes de análise
Fortinet: “VDOM access denied”
Causa: Usuário sem acesso ao VDOM onde o certificado está armazenado
Solução:
config system api-user
edit pkiguardian
set vdom "root" # Ou VDOM específico
next
end
Boas Práticas
Segurança
- Use Contas Somente Leitura
- Crie contas dedicadas com privilégios mínimos necessários
- Nunca use contas de administrador para o PKIGuardian
- Gerenciamento de Credenciais
- Armazene credenciais no HashiCorp Vault
- Habilite rotação automática de credenciais onde suportado
- Audite todas as tentativas de acesso
- Segmentação de Rede
- Implante o Gateway PKIGuardian na rede de gerenciamento
- Use VLAN separada para tráfego de gerenciamento
- Implemente regras de firewall rigorosas
- Prefira API em Vez de SSH
- APIs oferecem melhor segurança e auditoria
- Use chaves de API com curta expiração
- Desabilite o SSH onde a API estiver disponível
Desempenho
- Pool de Conexões
- Configure tamanhos adequados de pool de conexões
- Ajuste com base no número de dispositivos
- Limitação de Taxa
- Respeite os limites de taxa de API dos fornecedores
- Configure agendamentos escalonados de descoberta
- Use intervalos adequados entre varreduras
- Processamento Paralelo
- Habilite varredura concorrente de dispositivos
- Equilibre entre velocidade e carga nos dispositivos
- Monitore a CPU dos dispositivos durante a descoberta
Operacional
- Monitoramento
- Configure alertas para falhas de descoberta
- Monitore a expiração de credenciais
- Acompanhe as taxas de sucesso de descoberta
- Documentação
- Documente configurações específicas por dispositivo
- Mantenha inventário de credenciais
- Mantenha informações de contato dos fornecedores
- Testes
- Teste as alterações de credenciais antes de implantar
- Verifique a descoberta após atualizações de firmware do dispositivo
- Mantenha ambiente de teste para validação
Conformidade
- Log de Auditoria
- Habilite logs de auditoria abrangentes
- Registre todas as tentativas de acesso aos dispositivos
- Retenha logs conforme os requisitos de conformidade
- Gestão de Mudanças
- Documente todas as alterações de configuração
- Siga os procedimentos de controle de mudanças
- Teste em staging antes de produção
- Revisões Regulares
- Revise as permissões de acesso a dispositivos trimestralmente
- Audite o uso de credenciais
- Valide as configurações de segurança
Recursos Adicionais
- Guia de Configuração do Gateway
- Solução de Problemas
Suporte
Para assistência adicional:
- GitHub Issues: https://github.com/mtpanissa/PKIGuardian/issues
- Documentação: https://pkiguardian.io/docs
- Fórum da Comunidade: https://community.pkiguardian.io
Última Atualização: Maio de 2026 | Versão: Phase 12