Erro “invalid RADIUS client IP” no Duo Authentication Proxy: como corrigir (guia completo)

Ao configurar o Duo Authentication Proxy como servidor RADIUS, é comum receber “a RADIUS message was received from invalid RADIUS client IP”. Este guia prático mostra como identificar o IP real de origem, ajustar o authproxy.cfg, validar o segredo compartilhado e normalizar portas e conectividade.

Índice

Visão geral do erro

O erro “a RADIUS message was received from invalid RADIUS client IP” indica que o Duo Authentication Proxy recebeu um pacote RADIUS de um endereço IP que não está autorizado no arquivo de configuração authproxy.cfg. Em outras palavras, o proxy está de pé, recebeu o tráfego, mas recusou o pedido por não reconhecer o emissor.

Na prática, isso acontece quando:

  • O IP cadastrado não corresponde ao IP que realmente chega ao Duo (comum em redes com NAT, VIP de balanceador ou múltiplas interfaces no equipamento);
  • O segredo RADIUS (shared secret) não coincide;
  • O dispositivo usa porta legada 1645/1646 enquanto o Duo aguarda em 1812/1813, ou vice-versa;
  • Há bloqueio de UDP 1812/1813 (ou 1645/1646) por firewall/ACL.

Como o cenário RADIUS com Duo funciona (resumo)

Um dispositivo (NAS/AAA — firewall, VPN, Wi‑Fi, switch, etc.) envia um Access-Request RADIUS ao Duo Authentication Proxy. O Proxy valida remetente e segredo; se aprovados, processa a autenticação (conforme modo auto/challenge, LDAP/AD, e integração Duo Cloud). Se o IP de origem não estiver listado, ocorre o erro de cliente inválido.

Diagnóstico e correção — passo a passo

Confirmar o IP real que chega ao Proxy

Antes de alterar qualquer coisa, confirme qual IP o Duo está vendo como origem. Verifique os logs do Authentication Proxy e, se necessário, ative depuração:

  • Windows: C:\Program Files\Duo Security Authentication Proxy\log\authproxy.log
  • Linux: /opt/duoauthproxy/log/authproxy.log

Para logs mais verbosos, no authproxy.cfg adicione debug=true e reinicie o serviço.

# Exemplo de mensagem típica nos logs (ilustrativo):
2025-09-10T12:34:56+00:00 [radiusserverauto] WARNING:
Received RADIUS request from unknown client 203.0.113.25: Access-Request

O IP mostrado nessa mensagem (203.0.113.25 no exemplo) é exatamente o que deve ser cadastrado como cliente RADIUS no authproxy.cfg. Em ambientes com NAT ou balanceador, este será o IP pós-NAT/VIP, e não o IP “interno” do dispositivo de rede.

Cadastrar o(s) IP(s) do(s) cliente(s) RADIUS no authproxy.cfg

Dentro do bloco do servidor RADIUS (por exemplo, [radiusserverauto] ou [radiusserverchallenge]), inclua o(s) IP(s) e o(s) segredo(s) correspondentes. Exemplo prático:

[radiusserverauto]
ikey=SEU_IKEY
skey=SEU_SKEY
apihost=SEUAPI_HOST
port=1812                    ; use 1645 se o dispositivo usar porta legada
radiusip1=10.10.10.5       ; IP que o proxy vê (pós-NAT/VIP se houver)
radiussecret1=SegredoForte
; radiusip2=10.10.20.6
; radiussecret2=OutroSegredo
debug=true

Importante: em cenários com NAT ou balanceamento, cadastre o IP pós‑NAT ou o IP do balanceador que aparece nos logs, e não o IP da interface do equipamento.

Garantir que o segredo compartilhado coincide

O segredo configurado no dispositivo/cliente (NAS/AAA) deve ser idêntico ao radiussecretX no Duo. Pequenos deslizes como espaço extra no fim, caracteres trocados ou um segredo diferente em cada lado são causas muito comuns de falha.

  • Copie/cole com cuidado e confirme o valor em ambos os lados;
  • Se possível, defina um segredo forte, com boa entropia, e guarde de forma segura.

Verificar portas e conectividade

O RADIUS utiliza UDP por padrão:

  • 1812 Autenticação | 1813 Accounting;
  • Equipamentos antigos podem usar 1645/1646.

Testes úteis:

  • ping para reachability IP;
  • tracert/traceroute para rota;
  • radtest (Linux) para simular Access-Request:
# Em uma máquina que possa alcançar o Duo Proxy:
radtest usuario senha PROXY_IP:1812 0 SegredoForte
  • NTRadPing (Windows) a partir do cliente para um teste rápido de RADIUS;
  • Captura de pacotes (para confirmar portas/origens): # Linux (no host do Duo Proxy) sudo tcpdump -ni any udp port 1812 -vv Filtrar um cliente específico sudo tcpdump -ni any host 203.0.113.25 and udp port 1812 -vv

Revisar sintaxe e reiniciar o serviço

Após editar o authproxy.cfg, valide a sintaxe e reinicie o Duo Authentication Proxy.

  • Linux: sudo /opt/duoauthproxy/bin/authproxyctl restart
  • Windows: reinicie o serviço “Duo Security Authentication Proxy” (via services.msc).

Manter o Duo Authentication Proxy atualizado

Execute versões recentes do Proxy para garantir correções de bugs e compatibilidade com novos recursos. Planeje janela de manutenção e faça backup do authproxy.cfg antes de atualizar.

Checklist de correção rápida

  • Identifique no log o IP de origem real que chega ao Proxy;
  • Cadastre esse IP (pós‑NAT/VIP se houver) no authproxy.cfg com o segredo correto;
  • Confirme portas UDP abertas (1812/1813 ou 1645/1646 se legado);
  • Reinicie o serviço e repita o teste (radtest ou NTRadPing);
  • Monitore o authproxy.log para validar o aceite do cliente.

Tabela de referência rápida

ItemValor/ExemploObservações
Log (Windows)C:\Program Files\Duo Security Authentication Proxy\log\authproxy.logAtive debug=true no authproxy.cfg para mais verbosidade.
Log (Linux)/opt/duoauthproxy/log/authproxy.logVerifique “unknown client” para descobrir o IP que chegou.
Portas padrãoUDP 1812 (Auth), UDP 1813 (Acct)Legado: UDP 1645/1646.
Teste Linuxradtest usuario senha PROXY_IP:1812 0 SegredoÚtil para validar segredo e reachability.
Captura de pacotestcpdump -ni any udp port 1812 -vvConfirma IP e porta realmente vistos pelo Proxy.
Reinício (Linux)/opt/duoauthproxy/bin/authproxyctl restartApós editar o arquivo de configuração.
Reinício (Windows)Serviço “Duo Security Authentication Proxy”Use services.msc ou PowerShell.

Entenda o papel do NAT e do balanceamento

Em muitas implantações, o dispositivo que origina o RADIUS (por exemplo, um firewall VPN) fica atrás de NAT ou envia tráfego via um balanceador de carga (L4/L7). Nesses casos, o IP de origem que chega ao Duo é alterado:

  • NAT de saída (SNAT): o IP que o Duo verá é o IP público/externo do gateway de saída;
  • Balanceador L4: normalmente o tráfego chega com IP de origem do próprio balanceador (Self-IP);
  • VIP: se o balanceador envia do VIP, será esse o IP visto nos logs.

Matriz de decisão — qual IP cadastrar

CenárioIP a cadastrarDica
Dispositivo sem NAT direto ao ProxyIP da interface do dispositivoConfirme nos logs do Duo para evitar erros.
SNAT no firewall/roteadorIP pós‑NAT (endereço de saída)O Duo verá o IP traduzido; cadastre esse.
Balanceador L4/L7Self-IP do balanceador ou VIP (o que os logs mostrarem)Use tcpdump para confirmar a origem real.
Equipamento com múltiplas interfacesIP da interface usada para falar com o ProxyO roteamento pode escolher outra interface; valide no log.

Exemplos completos de configuração

Modo automático com múltiplos clientes

[radiusserverauto]
ikey=SEU_IKEY
skey=SEU_SKEY
apihost=SEUAPI_HOST
port=1812

; Cliente 1 — pós-NAT (conforme log)
radius\ip\1=203.0.113.25
radius\secret\1=SegredoMuitoForte

; Cliente 2 — VPN concentrator
radius\ip\2=10.20.30.40
radius\secret\2=OutroSegredoForte

; Cliente 3 — Balanceador L4 (Self-IP)
radius\ip\3=198.51.100.10
radius\secret\3=TerceiroSegredo

; Mais parâmetros de integração (LDAP/AD) podem ser adicionados aqui.
debug=true 

Modo challenge com porta legada

[radiusserverchallenge]
ikey=SEU_IKEY
skey=SEU_SKEY
apihost=SEUAPI_HOST
port=1645  ; dispositivo legado usando 1645

radius\ip\1=192.0.2.55
radius\secret\1=SegredoChallenge
debug=true 

Verificações adicionais que evitam armadilhas

  • DNS reverso não é requisito para o aceite do cliente; a decisão é por IP literal cadastrado;
  • Não use hostname no campo radiusipX; cadastre o IP numérico;
  • Contagem de clientes: é possível cadastrar múltiplos radiusipX/radiussecretX (liste todos os necessários);
  • Firewall local: verifique políticas no host do Proxy (Windows Defender Firewall, iptables/ufw) permitindo UDP 1812/1813 (ou 1645/1646);
  • Roteamento/VRF: em servidores com múltiplas rotas/VRFs, confirme que a interface correta recebe e responde aos pacotes;
  • Persistência no LB: se existir, prefira afinar afinidade por IP/porta para reduzir intermitências.

Procedimento sugerido de teste ponta a ponta

  1. Ativar debug=true e reiniciar o serviço;
  2. Executar tcpdump (ou Wireshark) no servidor do Duo por 2–3 minutos;
  3. Iniciar uma autenticação no cliente (por exemplo, tentativa de VPN);
  4. Verificar no log a origem: “unknown client IP” (se aparecer);
  5. Cadastrar esse IP em authproxy.cfg com o segredo correto;
  6. Reiniciar o Duo Proxy e repetir a autenticação;
  7. Confirmar nos logs Access-Accept ou fluxo de desafio Duo conforme o modo.

Erros comuns e como evitá-los

  • IP errado: equipamento com várias interfaces ou roteamento assimétrico; sempre valide o IP visto nos logs do Duo;
  • NAT em silêncio: o administrador cadastra o IP “real”, mas o pacote chega SNATado; cadastre o IP pós‑NAT;
  • Porta trocada: cliente fala 1645/1646, Proxy escuta 1812/1813; alinhe portas nos dois lados;
  • Segredo divergente: erro de digitação ou cópia parcial; recadastre o segredo de forma coordenada;
  • ACL bloqueando UDP: libere tráfego bidirecional entre cliente e Proxy nas portas corretas.

Comandos úteis e observabilidade

Linux

# Reiniciar o serviço
sudo /opt/duoauthproxy/bin/authproxyctl restart

Ver status

sudo /opt/duoauthproxy/bin/authproxyctl status

Seguir o log

sudo tail -f /opt/duoauthproxy/log/authproxy.log 

Windows

# Reiniciar serviço (PowerShell elevado)
Restart-Service -Name "Duo Security Authentication Proxy" -Force

Ver estado

Get-Service -Name "Duo Security Authentication Proxy" 

FAQ — perguntas frequentes

Posso cadastrar uma faixa (CIDR) de IPs?
Não. Cadastre IPs individuais com radiusip1, radiusip2, etc. Liste somente os endereços realmente necessários.

O segredo pode ter caracteres especiais?
Sim, mas evite espaços à direita e cuidado ao copiar/colar. Garanta que o valor seja idêntico nos dois lados.

Preciso abrir TCP 1812/1813?
O RADIUS usa UDP por padrão. Algumas ferramentas de teste verificam apenas TCP; para UDP, prefira captura de pacotes e testes RADIUS reais.

O Duo suporta IPv6 neste contexto?
Na maioria dos cenários práticos usa-se IPv4. Se adotar IPv6, padronize o design e valide cuidadosamente origem/rotas/ACL.

Boas práticas para produção

  • Documente cada radiusipX com o sistema correspondente (VPN, Wi‑Fi, etc.);
  • Padronize o segredo por cliente e rotacione periodicamente; evite reaproveitar o mesmo em todos os dispositivos;
  • Implemente monitoramento dos logs do Duo (ingestão centralizada) para alertar sobre “unknown client” e queda de respostas;
  • Planeje redundância do Proxy (ativos em pares) e persistência no LB, quando aplicável;
  • Mantenha o Proxy atualizado, com authproxy.cfg versionado/backup.

Exemplo de playbook de mudança

  1. Backup do authproxy.cfg e dos segredos (cofre);
  2. Janela de manutenção aprovada;
  3. Log em nível debug=true temporariamente;
  4. Aplicar cadastros radiusipX/radiussecretX conforme IPs observados;
  5. Reiniciar o serviço e executar baterias de teste (radtest e autenticações reais);
  6. Reverter debug=false após estabilizar;
  7. Atualizar documentação e diagrama de fluxo RADIUS/NAT/LB.

Resultado esperado

Depois de cadastrar o IP correto do cliente (levando em conta NAT/LB), alinhar o segredo compartilhado e liberar as portas UDP adequadas, o Duo Authentication Proxy passará a aceitar as mensagens RADIUS e as autenticações ocorrerão normalmente. Os logs deixarão de exibir “unknown client” e apresentarão registros de Access-Request seguidos de respostas esperadas (Access-Accept / desafios Duo conforme a configuração).

Resumo executivo

A raiz do problema está quase sempre no IP de origem incorreto listado no authproxy.cfg — típico de ambientes com NAT/balanceadores ou dispositivos com múltiplas interfaces. O caminho seguro é: olhe o logdescubra o IP que realmente chegoucadastre esse IP com o segredo certo → valide portasreinicie e teste. Seguindo este roteiro, a mensagem “invalid RADIUS client IP” desaparece e o ambiente volta a autenticar sem fricção.


Índice