Rejeição do RADIUS versus sem resposta: quando o login local funciona
O AAA trata uma rejeição e um servidor inacessível como resultados diferentes. O fallback cobre apenas o segundo caso, por isso leia primeiro a lista de métodos e o código de resposta.
Manter uma conta local de emergência não a torna uma segunda oportunidade para cada login rejeitado. No modelo AAA do Cisco IOS e IOS XE, essa base só é consultada quando o método anterior falha de uma forma específica, e um servidor RADIUS que responde com rejeição não falhou dessa forma. A conta local cobre um método inacessível, não um rejeitado. Acreditar no contrário transforma uma decisão de política numa caça a uma falha de servidor que não existe.
Porque é que a lista de métodos parece uma escada
Uma linha como aaa authentication login default group radius local é lida da esquerda para a direita, e a maioria das pessoas lê-a como tente RADIUS e depois tente a base de dados local. A sintaxe convida a essa leitura porque uma lista é uma sequência. A semântica é mais estreita: a lista nomeia métodos de autenticação, e a regra para avançar de um para o seguinte depende do resultado do método anterior, não de dar ao utilizador outra tentativa.
Um método que devolve um erro e um método que devolve uma falha levam aqui a resultados diferentes. A rejeição é uma resposta, porque o servidor processou as credenciais e disse não, e a lista para aí. Um servidor inacessível, um pedido expirado ou uma resposta que não pode ser validada é o caso que deixa o método seguinte correr, e apenas onde o tratamento de falhas da plataforma está configurado assim. Por isso o conselho clássico de acrescentar local funciona em quedas e não faz nada com palavras-passe erradas. Leia a lista, em vez disso, como duas perguntas: qual método responde e o que a plataforma considera uma resposta.
Separe a lista de métodos do grupo de servidores
A lista de métodos é uma camada e o grupo de servidores é outra. A palavra-chave group radius nomeia um grupo cuja ordem interna, repetições, tempos limite e deteção de servidor morto pertencem ao grupo, enquanto um método local é uma camada acima dele. Ajustar qualquer coisa dentro do grupo não pode, portanto, transformar uma rejeição em fallback. Confirme a que lista o serviço realmente se refere antes de mudar qualquer uma das camadas.
Imprima a configuração AAA e leia a lista para a qual o serviço aponta, não o valor predefinido que se lembra de ter escrito. Faça isso a partir do dispositivo onde o serviço realmente termina.
show running-config | section aaa
show radius server-group RAD-GRP
show aaa serversA tabela de servidores informa o estado e os contadores de cada entrada, o que lhe diz se a gateway alcançou o servidor durante a tentativa. Um servidor marcado como ativo com um contador de pedidos crescente tem respondido, por isso o login falhado é uma decisão e não um problema de conetividade.
Leia a resposta antes do registo
O código de resposta nomeia o resultado e implica o seu próprio passo seguinte. Access-Reject significa que o backend tomou uma decisão, por isso a evidência útil é a política que correspondeu e o estado da conta por trás dela. Access-Challenge significa que a troca quer outro passo suportado, como um segundo fator, e o fallback local saltaria em silêncio algo que a política exige.
Reproduza uma tentativa com uma conta de teste designada para que a resposta e o registo do backend possam ser comparados no mesmo instante. Use uma credencial cuja falha lhe seja permitida.
test aaa group RAD-GRP svc-ops 'LabPass!24' legacy
debug radius authenticationUma entrada de cliente RADIUS ausente ou não reconhecida é uma causa comum de tempo limite silencioso, porque o servidor recebe o pedido, não encontra nenhuma definição de cliente correspondente e descarta-o sem responder. Uma incompatibilidade do segredo partilhado também costuma parecer um tempo limite, porque a resposta falha a validação e é descartada. Nada disso se parece com Access-Reject, e nada disso se repara acrescentando uma conta local. Verifique a definição do cliente e o segredo nos dois lados antes de tocar na lista de métodos.
Porque é que a conta local nunca provou nada
Uma conta que fica depois de um grupo na lista prova apenas que alguém planeou uma queda. Não diz nada sobre se o plano funciona, porque o caso que o exercita é o caso que ninguém ensaia: o servidor deixou de responder. Um login local a que nunca se chega em funcionamento normal pode carregar uma palavra-passe expirada ou um estado bloqueado durante meses sem que ninguém repare.
O acesso de emergência é uma decisão de design, não um efeito secundário da configuração. Dê-lhe a sua própria conta restrita, o seu próprio responsável e um procedimento de recuperação escrito, e inclua a rotação do segredo partilhado nesse procedimento. Manter uma palavra-passe local com o mesmo nome para cada utilizador central é o padrão que reintroduz em silêncio o acesso que julgava ter removido.
O teste que importa é deliberado, e vai interromper logins enquanto decorre. É exatamente por isso que pertence a uma janela agendada com o passo de reversão escrito primeiro.
Verifique o caminho de fallback durante uma janela de manutenção
Ordene o teste de modo a nunca remover o último caminho de entrada. Confirme primeiro um caminho de gestão independente, depois o acesso normal permitido, depois uma rejeição deliberada, depois o comportamento de queda aprovado. Esses quatro casos têm resultados esperados diferentes, e juntá-los num só teste é como as pessoas se trancam fora de um dispositivo de que ainda precisam.
Execute cada verificação a partir de uma sessão de consola ou de um caminho fora de banda, para que um erro não possa fechar a sessão em que está a trabalhar. A consola é o único caminho que não depende do componente em teste.
show aaa servers
show running-config | include aaa authentication
test aaa group RAD-GRP svc-ops 'LabPass!24' legacyDepois, restaure a configuração anterior e confirme que os contadores voltam a mexer no próximo login real. Se a rejeição deliberada produzir um login local em vez de uma rejeição, então a lista ou o tratamento de falhas não é o que acreditava, e essa descoberta vale mais do que a queda com que começou. Escreva o resultado no registo de alterações ao lado dos nomes das contas e da data do teste.