Este documento descreve como configurar um roteador Cisco para autenticação com o TACACS+ que executa em UNIX. O TACACS+ não oferece tantas características como o, comercialmente disponível, Cisco Secure ACS for Windows ou o Cisco Secure ACS UNIX.
O software TACACS+ fornecido anteriormente pela Cisco Systems foi descontinuado e não é mais suportado pela Cisco Systems.
Hoje, você pode encontrar muitas versões de freeware TACACS+ disponíveis quando você procura "TACACS+ freeware" em seu motor de busca favorito da Internet. A Cisco não recomenda especificamente nenhuma implementação de freeware TACACS+ em particular.
O Cisco Secure Access Control Server (ACS) está disponível para compra através dos canais normais de vendas e distribuição da Cisco em todo o mundo. O Cisco Secure ACS para Windows inclui todos os componentes necessários para uma instalação independente em uma estação de trabalho Microsoft Windows. O Cisco Secure ACS Solution Engine é fornecido com uma licença de software Cisco Secure ACS pré-instalada. Visite a página inicial de pedidos da Cisco (somente clientes registrados) para fazer um pedido.
Observação: você precisa de uma conta CCO com um contrato de serviço associado para obter a versão de avaliação de 90 dias do Cisco Secure ACS para Windows.
A configuração do roteador neste documento foi desenvolvida em um roteador que executa o Cisco IOS® Software Release 11.3.3. O Cisco IOS Software Release 12.0.5.T e posterior usa o grupo tacacs+ em vez de tacacs+, de modo que instruções como aaa authentication login default tacacs+ enable aparecem como aaa authentication login default group tacacs+ enable.
Consulte a documentação do Cisco IOS Software para obter informações mais completas sobre os comandos do roteador.
Não existem requisitos específicos para este documento.
As informações neste documento são baseadas no Cisco IOS Software Release 11.3.3 e no Cisco IOS Software Release 12.0.5.T e posteriores.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
Conclua estes passos:
Certifique-se de ter compilado o código TACACS+ (TAC+) no servidor UNIX.
As configurações do servidor aqui pressupõem que você use o código do servidor Cisco TAC+. As configurações do roteador devem funcionar independentemente de o código do servidor ser ou não o código do servidor Cisco. O TAC+ deve ser executado como raiz; su para raiz, se necessário.
Copie o test_file no final deste documento, coloque-o no servidor TAC+ e nomeie-o como test_file.
Certifique-se de que o daemon tac_plus_executable comece com test_file. Neste comando, a opção -P verifica se há erros de compilação, mas não inicia o daemon:
tac_plus_executable -P -C test_file
Você pode ver o conteúdo de test_file rolar para baixo na janela, mas você não deve ver mensagens como não é possível encontrar o arquivo, cleartext esperado — foi encontrado cleartext ou inesperado }. Se houver erros, verifique os caminhos para test_file, verifique novamente sua digitação e teste novamente antes de continuar.
Comece a configurar o TAC+ no roteador.
Entre no modo enable e digite configure terminal antes do conjunto de comandos. Essa sintaxe de comando garante que você não esteja bloqueado inicialmente no roteador, desde que o tac_plus_executable não esteja em execução:
!--- Turn on TAC+. aaa new-model enable password whatever !--- These are lists of authentication methods. !--- "linmethod", "vtymethod", "conmethod", and !--- so on are names of lists, and the methods !--- listed on the same lines are the methods !--- in the order to be tried. As used here, if !--- authentication fails due to the !--- tac_plus_executable not being started, the !--- enable password is accepted because !--- it is in each list. ! aaa authentication login linmethod tacacs+ enable aaa authentication login vtymethod tacacs+ enable aaa authentication login conmethod tacacs+ enable ! !--- Point the router to the server, where #.#.#.# !--- is the server IP address. ! tacacs-server host #.#.#.# line con 0 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication conmethod line 1 8 login authentication linmethod modem InOut transport input all rxspeed 38400 txspeed 38400 flowcontrol hardware line vty 0 4 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication vtymethod
Antes de continuar, teste para ter certeza de que você ainda pode acessar o roteador com Telnet e através da porta de console. Como o tac_plus_executable não está em execução, a senha enable deve ser aceita.
Observação: mantenha a sessão da porta de console ativa e permaneça no modo habilitado. Esta sessão não deve expirar. O acesso ao roteador é limitado neste ponto e você precisa ser capaz de fazer alterações de configuração sem se bloquear.
Emita estes comandos para ver a interação servidor-roteador no roteador:
terminal monitor debug aaa authentication
Como raiz, inicie o TAC+ no servidor:
tac_plus_executable -C test_file -d 16
Verifique se o TAC+ foi iniciado:
ps -aux | grep tac_plus_executable
or
ps -ef | grep tac_plus_executable
Se o TAC+ não iniciar, geralmente é um problema com a sintaxe no test_file. Retorne à etapa 1 para corrigir isso.
Digite tail -f /var/tmp/tac_plus.log para ver a interação roteador-servidor no servidor.
Observação: a opção -d 16 na etapa 5 envia a saída de todas as transações para o /var/tmp/tac_plus.log.
Os usuários de Telnet (VTY) agora devem fazer a autenticação por meio do TAC+.
Com o debug indo para o roteador e para o servidor (etapas 4 e 7), execute telnet para o roteador a partir de outra parte da rede.
O roteador produz um prompt de nome de usuário e senha, ao qual você responde:
'authenuser' (username from test_file) 'admin' (password from test_file)
O usuário authenuser está no grupo admin, que tem a senha admin.
Observe o servidor e o roteador onde você pode ver a interação do TAC+ - o que é enviado para onde, respostas, solicitações e assim por diante. Corrija todos os problemas antes de continuar.
Se você também quiser que seus usuários se autentiquem através do TAC+ para entrar no modo enable, certifique-se de que sua sessão de porta de console ainda esteja ativa e adicione este comando ao roteador:
!--- For enable mode, list 'default' looks to TAC+ !--- then enable password if TAC+ does not run. aaa authentication enable default tacacs+ enable
Agora, os usuários precisam ativar o por meio do TAC+.
Com o debug indo para o roteador e para o servidor (etapas 4 e 7), execute telnet para o roteador a partir de outra parte da rede. O roteador produz um prompt de nome de usuário e senha, ao qual você responde:
'authenuser' (username from test_file) 'admin' (password from test_file)
Quando você entra no modo de ativação (enable mode), o roteador solicita uma senha, à qual você responde:
'cisco' ($enable$ password from test_file)
Observe o servidor e o roteador onde você deve ver a interação do TAC+ - o que é enviado para onde, respostas, solicitações, etc. Corrija todos os problemas antes de continuar.
Desative o processo do TAC+ no servidor enquanto ainda estiver conectado à porta de console para ter certeza de que seus usuários ainda possam acessar o roteador se o TAC+ estiver inoperante:
ps -aux | grep tac_plus_executable
or
ps -ef | grep tac_plus_executable) kill -9 pid_of_tac_plus_executable
Repita o Telnet e enable da etapa anterior. O roteador percebe que o processo do TAC+ não está respondendo e permite que os usuários façam login e habilitem com as senhas padrão.
Verifique a autenticação dos usuários da porta de console através do TAC+. Para fazer isso, ative novamente o servidor TAC+ (etapas 5 e 6) e estabeleça uma sessão Telnet para o roteador (que deve ser autenticada por meio do TAC+).
Permaneça conectado através do Telnet no roteador no modo de ativação até ter certeza de que pode efetuar login no roteador através da porta de console.
Faça logoff da conexão original com o roteador através da porta de console e, em seguida, reconecte-se à porta de console. A autenticação da porta de console para fazer login e ativar o uso de IDs de usuário e senhas (mostrados na etapa 10) deve agora ser feita através do TAC+.
Enquanto você permanece conectado através de uma sessão Telnet ou da porta de console e com o comando debug indo no roteador e no servidor (etapas 4 e 7), estabeleça uma conexão de modem para a linha 1.
Agora, os usuários de linha precisam fazer login e ativá-lo por meio do TAC+.
O roteador produz um prompt de nome de usuário e senha, ao qual você responde:
'authenuser' (username from test_file) 'admin' (password from test_file)
Quando você entra no modo de ativação (enable mode), o roteador solicita uma senha.
Reply:
'cisco' ($enable$ password from test_file)
Observe o servidor e o roteador onde você vê a interação do TAC+ - o que é enviado para onde, respostas, solicitações e assim por diante. Corrija todos os problemas antes de continuar.
Agora, os usuários precisam ativar o por meio do TAC+.
A adição de autorização é opcional.
Por padrão, há três níveis de comando no roteador:
nível de privilégio 0 que inclui desabilitar, habilitar, sair, ajuda e logoff
nível de privilégio 1 - nível normal em um Telnet - o prompt diz roteador>
nível de privilégio 15 - habilitar nível - o prompt diz router#
Como os comandos disponíveis dependem do conjunto de recursos do IOS, da versão do Cisco IOS, do modelo do roteador e assim por diante, não há uma lista abrangente de todos os comandos nos níveis 1 e 15. Por exemplo, show ipx route não está presente em um conjunto de recursos somente IP, show ip nat trans não está no Cisco IOS Software Release 10.2.x porque o NAT não foi introduzido no momento e show environment não está presente em modelos de roteador sem monitoramento de temperatura e fonte de alimentação. Os comandos disponíveis em um roteador específico em um nível específico podem ser encontrados quando você digita um ? no prompt no roteador quando nesse nível de privilégio.
A autorização da porta de console não foi adicionada como um recurso até que o bug da Cisco ID CSCdi82030 (somente clientes registrados) fosse implementado. A autorização da porta de console está desativada por padrão para reduzir a probabilidade de você ficar bloqueado acidentalmente fora do roteador. Se um usuário tiver acesso físico ao roteador através do console, a autorização da porta de console não será extremamente eficaz. No entanto, a autorização da porta de console pode ser ativada sob a linha con 0 em uma imagem na qual a ID de bug Cisco CSCdi82030 (somente clientes registrados) foi implementada com o comando:
authorization exec default|WORD
O roteador pode ser configurado para autorizar comandos através do TAC+ em todos ou alguns níveis.
Essa configuração do roteador permite que todos os usuários tenham uma autorização por comando configurada no servidor. Aqui, autorizamos todos os comandos através do TAC+, mas se o servidor estiver inoperante, nenhuma autorização será necessária.
aaa authorization commands 1 default tacacs+ none aaa authorization commands 15 default tacacs+ none
Enquanto o servidor TAC+ é executado, faça Telnet no roteador com userid authenuser.
Como authenuser tem serviço padrão = permit em test_file, esse usuário deve ser capaz de executar todas as funções.
Enquanto estiver no roteador, entre no modo enable e ative a depuração de autorização:
terminal monitor debug aaa authorization
Faça Telnet no roteador com userid authoruser e password operator.
Este usuário não pode executar os dois comandos show traceroute e logout (consulte o arquivo_de_teste).
Observe o servidor e o roteador onde você deve ver a interação do TAC+ (o que é enviado para onde, respostas, solicitações e assim por diante). Corrija todos os problemas antes de continuar.
Se você quiser configurar um usuário para um comando automático, elimine o usuário comentado transitório no test_file e coloque um endereço IP de destino válido no lugar de #.#.#.#.
Pare e inicie o servidor TAC+.
No roteador:
aaa authorization exec default tacacs+
Faça Telnet para o roteador com userid transient e password transient. O telnet #.#.#.# é executado e o usuário transitório é enviado para o outro local.
A adição de contabilidade é opcional.
A referência ao arquivo de contabilidade está em test_file - arquivo de contabilidade = /var/log/tac.log. Mas a contabilidade não ocorre a menos que seja configurada no roteador (desde que o roteador execute uma versão do software Cisco IOS posterior à 11.0).
Ativar a contabilidade no roteador:
aaa accounting exec default start-stop tacacs+ aaa accounting connection default start-stop tacacs+ aaa accounting network default start-stop tacacs+ aaa accounting system default start-stop tacacs+
Observação: a contabilização de AAA não faz a contabilização por comando em algumas versões. Uma solução alternativa é usar a autorização por comando e registrar a ocorrência no arquivo de contabilidade. (Consulte o bug da Cisco ID CSCdi44140.) Se você usar uma imagem na qual esse corrigido é usado [Cisco IOS Software Releases 11.2(1.3)F, 11.2(1.2), 11.1(6.3), 11.1(6.3)AA01, 11.1(6.3)CA a partir de 24 de setembro de 1997], você também poderá habilitar a contabilidade de comando.
Enquanto o TAC+ é executado no servidor, digite este comando no servidor para ver as entradas que vão para o arquivo de contabilidade:
tail -f /var/log/tac.log
Em seguida, faça login e logout no roteador, faça telnet para fora do roteador e assim por diante. Se necessário, insira no roteador:
terminal monitor debug aaa accounting
- - - - - - - (cut here) - - - - - - - # Set up accounting file if enabling accounting on NAS accounting file = /var/log/tac.log # Enable password setup for everyone: user = $enable$ { login = cleartext "cisco" } # Group listings must be first: group = admin { # Users in group 'admin' have cleartext password login = cleartext "admin" expires = "Dec 31 1999" } group = operators { # Users in group 'operators' have cleartext password login = cleartext "operator" expires = "Dec 31 1999" } group = transients { # Users in group 'transient' have cleartext password login = cleartext "transient" expires = "Dec 31 1999" } # This user is a member of group 'admin' & uses that group's password to log in. # The $enable$ password is used to enter enable mode. The user can perform all commands. user = authenuser { default service = permit member = admin } # This user is limitted in allowed commands when aaa authorization is enabled: user = telnet { login = cleartext "telnet" cmd = telnet { permit .* } cmd = logout { permit .* } } # user = transient { # member = transients # service = exec { # When transient logs on to the NAS, he's immediately # zipped to another site # autocmd = "telnet #.#.#.#" # } # } # This user is a member of group 'operators' # & uses that group's password to log in user = authenuser { member = operators # Since this user does not have 'default service = permit' when command # authorization through TACACS+ is on at the router, this user's commands # are limited to: cmd = show { permit ver permit ip } cmd = traceroute { permit .* } cmd = logout { permit .* } } - - - - (end cut here) - - - -
Observação: esta mensagem de erro será gerada se o servidor TACACS não estiver acessível: %AAAA-3-DROPACCTSNDFAIL: registro de contabilização removido, falha ao enviar para servidor: início do sistema. Verifique se o servidor TACACS+ está operacional.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
10-Dec-2001 |
Versão inicial |