Você está na página 1de 10

AAA

Segurança em Redes

Hoje venho postar mais um artigo originalmente publicado no site CiscoTraininBR.com. No


primeiro artigo a ser republicado, aprendemos sobre os elementos principais na configuração
básica de roteadores Cisco. Desta vez, teremos Authentication, Authorization and
Accounting (AAA)sendo abordado em detalhes. Aproveitem!

Authentication, Authorization and Accounting (AAA)

que é o “Authentication, Authorization and Accounting”?

O AAA oferece uma forma para a autenticação de usuários em servidores ou dispositivos de


conectividade (router, switch, etc), além de controlar o nível de acesso destes usuários para
os recursos desejados. Este componente permite, também, o registro de cada comando
inserido em um terminal, onde tudo o que for executado pelo usuário será armazenado em
arquivos para referência futura por parte dos administradores da rede. Para que isto seja
possível, o AAA participa em três etapas durante todo este processo:

1. Autenticação de usuários: Por exemplo, um usuário que necessita configurar uma


rota em um roteador Cisco poderá informar o seu username e password para o
acesso ao equipamento. Com o AAA, é possível centralizarmos o gerenciamento de
todas as contas de usuários e respectivas senhas, facilitando bastante o trabalho do
administrador da rede. O administrador da rede poderá especificar diversos
mecanismos para a autenticação de usuários, entre eles RADIUS, TACACS+ ou
Kerberos e, para que isto ocorra, a ordem de execução destes componentes deverá
ser informada e devidamente associada para uma interface ou mais interfaces do
equipamento de rede. A única exceção fica por conta do parâmetro “default”, que é
aplicado para todas as interfaces quando não informamos um método de
autenticação específico. A utilização de contas de usuários e senhas locais ao
roteador é considerada fora do escopo “AAA”, embora seja muitas vezes um método
simples e bastante funcional.
2. Autorização para a execução de comandos: Após a autenticação do usuário, o
AAA precisa informar ao roteador sobre os comandos que o referido usuário poderá
executar no terminal. É possível limitarmos a quantidade de comandos disponíveis
para a execução das seguintes formas: por usuário, perfil ou grupo de usuários.
3. Auditar os acessos ao roteador: O AAA enviará dados sobre cada comando
executado pelo usuário durante uma sessão com o roteador. Com este recurso,
poderemos identificar e controlar todas as atividades de configuração e
monitoramento efetuadas no roteador.

Benefícios
O AAA oferece diversos benefícios, entre eles citaremos:

 Padronização das formas de autenticação. Todos os seus usuários poderão ser


autenticados através de um método único e centralizado, diminuindo a complexidade
e facilitando o gerenciamento da rede.
 Gerenciamento aprimorado. O AAA reduz os eforços para a configuração dos
métodos de autenticação e controle de acessos aos equipamentos de rede. Toda a
configuração poderá ser executada de forma centralizada.
 Backup. É possível disponibilizar mecanismos redundantes para garantir a
continuidade do serviço AAA.

Considerações e implementação do AAA

Lista de Métodos

Conforme descrito anteriormente, o AAA pode ser configurado por usuário, perfil ou grupo de
usuários, mas também é possível configurá-lo por “serviço”, o que significa que é possível
configurar um método de autenticação AAA para um serviço específico, como, por exemplo,
os serviços IP, VPDN, e até mesmo o IPX. Após termos definido o método de autenticação
para o AAA, devemos aplicar este método, ou associá-lo, para as interfaces desejadas. Com
isto, poderemos informar o método primário para a autenticação de um usuário para um
servidor ou roteador. Caso o primeiro método fique indisponível ou falhe por qualquer
motivo, o segundo método será consultado pelo servidor ou roteador em questão, e este
processo prosseguirá até que a autenticação seja bem sucedida, ou falhe completamente.
Mostraremos o nosso primeiro exemplo:

Neste cenário, a “Estação Remota” deseja se comunicar diretamente com a “Estação local”,
que poderia ser, por exemplo, uma estação de monitoramento da rede. Para que a estação
remota possa estabelecer a comunicação com a estação local, uma autenticação deverá
ocorrer, e isto será realizado através do primeiro método de autenticação: RADIUS server 1.
Caso a autenticação do usuário seja bem sucedida no RADIUS server 1, o usuário será
permitido para acessar a rede, ou seja, a “estação local”. Se por a autenticação do usuário
for rejeitada pelo RADIUS server 1, o processo será terminado sem que haja pesquisas ou
ocorrências adicionais. Mas se por algum motivo o NAS não receber nenhuma resposta do
servidor RADIUS, o próximo método de autenticação será consultado: o RADIUS server 2.
Assim como ocorre no RADIUS server 1, o NAS só consultará o próximo método de
autenticação (TACACS+ Server 1) caso não receba nenhuma mensagem ou resposta por
parte do RADIUS Server 2. Esta é a diferença entre “FAIL” e “ERROR”: se o usuário falhar
durante a autenticação, o processo será terminado, porque este usuário não terá cumprido
as exigências para uma autenticação bem sucedida. Já quando há o “ERROR”, o NAS será
incapaz de receber uma resposta por parte do RADIUS server 1, portanto considerando a
possibilidade de indisponibilidade do equipamento RADIUS server 1.

Configurando o AAA
O primeiro passo para a implementação do AAA seria a especificação dos serviços de
autenticação, autorização e registro de atividades almejados. Tenha em mente o seguinte:
jamais configure um componente ou serviço de rede simplesmente por “configurar”. Tudo
deverá ser perfeitamente justificado, planejado, testado e devidamente documentado. A
seguinte lista de tarefas é exigida para habilitarmos o AAA em um equipamento Cisco
(rodando Cisco IOS):

Habilitando o AAA

Cisco-2611-NYC(config)#aaa new-model

Este comando ativa o AAA. Note que os protocolos TACACS e extended TACACS não são
compatíveis com o AAA. Caso você pretenda configurar estes serviços, não habilite o AAA.
Entretanto, o TACACS+ é compatível com o AAA.

Configurando o “Authentication”

Infelizmente fica muito difícil incluir todas as possibilidades em um mero artigo –


precisaríamos escrever um LIVROsomente para descrever as formas de autenticação. É por
este motivo que o CiscoTrainingBR.com procura sempre ilustrar alguns cenários de
configuração, tornando o artigo sempre útil e prático. A melhor forma para que você possa
entender o AAA, assim como qualquer tópico mostrado em nossos artigos, é através da
abordagem prática de algumas situações. Acostume-se com esta idéia: não publicaremos
LIVROS “on-line”, somente meros artigos.

Voltando ao assunto “Authentication”, ilustraremos algumas situações:

O Authentication é a parte mais importante do processo de configuração do AAA. A Cisco


geralmente recomenda a utilização do AAA para qualquer serviço de autenticação em
hardware Cisco. Uma forma bem comum de configuração do AAA é através do agrupamento
de servidores para a autenticação, onde você poderá ter dois ou mais servidores oferecendo
a autenticação para o login do usuário, enquanto um outro grupo estará responsável pela
autenticação PPP. Considerando o diagrama mostrado logo acima, poderíamos configurar os
servidores RADIUS para autenticarem o login dos usuários pelas vias normais, enquanto os
servidores TACACS+ seríam responsáveis pela autenticação PPP de alguns serviços da rede.
Uma outra vantagem de termos grupos de servidores para a autenticação é a possibilidade
de termos o serviço redundante portanto, mais confiável. A “lista de Métodos”, ou “Method
List“, para a autenticação é representada durante esta tarefa de configuração do AAA. Se o
método “default” for mencionado (aaa authentication ppp default group radius group
tacacs+ local), este método será vinculado para todas as interfaces do roteador. Caso você
queira vincular um método para uma interface apenas, utilize um nome diferente de
“default”, o que chamamos de “named method list”. Exemplo: aaa authentication ppp
teste group radius group tacacs+ local none. Os seguintes comandos permitem a
criação do method list e listas de autenticação:
 Cisco-2611-NYC(config)#aaa authentication login {default | list-name}
method1 [method2...]: Cria uma lista de autenticação local.
 Cisco-2611-NYC(config)#line [aux | console | tty | vty] line-number [ending-line-
number]: Entra no modo de configuração dos LINES para os quais você deseja
vincular a lista de autenticação.
 Cisco-2611-NYC(config-line)#login authentication{default | list-name}:
Vincula a lista de autenticação para os LINES informados no comando anterior.

Note que o parâmetro “list-name” refere-se ao nome da lista de autenticação que você
estiver configurando. Juntamente com esta lista, deve-se informar os métodos para a
autenticação. Caso você informe dois ou mais métodos de autenticação, o segundo método e
métodos subsequentes só serão utilizados pelo AAA caso o método primário não esteja
acessível ou respondendo adequadamente. Lembre-se: se um usuário informar um
“username” ou “password” incorretos, o AAA não utilizará os métodos secundário e
posteriores, já que isto não trata-se de uma condição de “ERRO”, e sim uma condição de
“FALHA”. Caso você queira, é possível configurar o parâmetro “none” como último método
de autenticação. Caso todos os seus servidores RADIUS o TACACS+ fiquem inacessíveis, o
usuário poderia autenticar-se pelo último método (none), que significa “nenhum” ou
“autentique-o de qualquer forma”.

Autenticação de login com o group TACACS+

O comando “aaa authentication login” com a opção “tacacs+ method” para configurar este
método de autenticação. Isto seria configurado da seguinte forma:

aaa authentication login default group tacacs+

Autenticação de login com group customizado

Neste exemplo, temos a configuração de um grupo onde três servidores RADIUS se fazem
presentes.

aaa group server radius autenticacao


server 192.168.168.1
server 192.168.168.2
server 192.168.200.200

Configuração de autenticação PPP usando o AAA

Esta modelo de configuração do AAA permite que você configure serviços que requerem a
autenticação PPP, juntamente com o AAA. Os comandos são:

aaa new-model: Ativa o AAA.


aaa authentication ppp {default | list-name} method1 [method2...]: Cria uma lista de
autenticação local,
interface interface-type interface-number: Configura a interface para o qual a lista de
autenticação será aplicada.
ppp authentication {protocol1 [protocol2...]} [if-needed] {default | list-name} [callin]
[one-time]: Vincula a lista para um line ou diversos lines, além de especificar o protocolo de
autenticação PPP (CHAP, MS-CHAP, PAP). A autenticação PPP ocorre utilizando-se o primeiro
protocolo configurado (protocol1), caso falhe (erro), o segundo protocolo (protocol2) será
utilizado, e assim por diante.

Os seguintes métodos para autenticação PPP com o AAA estão disponíveis:

 if-needed: Não efetua a autenticação caso o usuário já estiver autenticado em um


line TTY.
 krb5: Utiliza o Kerberos 5 para a autenticação. Funciona somente para a
autenticação PAP.

Exemplo: aaa authentication ppp default krb5

 local: Utiliza o banco de dados local.

Exemplo: aaa authentication ppp default local

 local-case: Autenticação de usuários locais com caixas sensitivas.


 none: Como o próprio nome sugere, sem autenticação.
 group radius:Utiliza a lista de todos os servidores RADIUS para a autenticação.

Exemplo: aaa authentication ppp default group radius

 group tacacs+: Utiliza a lista de todos os servidores TACACS+ para a autenticação.

Exemplo: aaa authentication ppp default group tacacs+

 group group-name: Utiliza um conjunto de servidores RADIUS ou TACACS+ para a


autenticação, conforme definido pelos comandos “aaa group server radius” ou “aaa
group server tacacs+”

Exemplo: aaa group server radius ppprad


server 192.168.168.1
server 192.168.168.2
server 192.168.200.200

Note que o comando “aaa processes number” poderá ser utilizado para criar processos
adicionais para a autenticação PPP no AAA, portanto aumentando o potencial de
autenticações para múltiplos usuários, simultaneamente.

Configurando “double authentication”


Com o double authentication, o processo de autenticação ocorre em duas etapas. Na
primeira etapa, o usuário efetua a autenticação PPP (PAP ou CHAP). Esta autenticação ocorre
para o host. Já na segunda etapa, o usuário efetua a autenticação informando o seu
username e password. Não é recomendado a utilização de double authentication onde uma
conexão PPP é compartilhada por diversos hosts, pois isto poderá trazer problemas para os
serviços de autenticação para estes hosts e usuários. Para configurar basicamente o double
authentication, os seguintes comandos poderão ser utilizados (além dos comandos primários
para o AAA, ex: aaa new-model, etc):

 access-profile [merge | replace] [ignore-sanity-checks]: Determina os direitos do


usuário após a double-authentication. Este comando é inserido do EXEC mode.
 ip trigger-authentication [timeout seconds] [port number]: Configurado no global
configuration mode, permitirá o double-authentication.
 ip trigger-authentication: Configurado no interface configuration mode, aplicará o
double-authentication para uma interface.

Os seguintes comandos poderão ser utilizados para checar a configuração do double


authentication:

 show ip trigger-authentication, clear ip trigger-authentication, debug ip


trigger-authentication

Parâmetros Adicionais

Os seguintes comandos permitem uma configuração específica para o funcionamento do


AAA:

 timeout login response seconds: Configura o timeout da sessão, no que diz


respeito ao tempo de resposta por parte do usuário, quando informando o username
e password.
 aaa authentication enable default method1 [method2...]: Permite informar ao
AAA se o usuário que estiver acessando a console poderá acionar o Privileged EXEC
mode do roteador Cisco, via método local, tacacs+…. Os seguintes métodos estão
disponíveis: enable, line, none, group radius, group tacacs+, group group-name.
 aaa authentication password-prompt text-string: Permite alterar a caixa de
diálogo (ou melhor, o “texto”) referente ao prompt do Cisco para a digitação de
username e password.
 aaa authentication banner delimiter string delimiter: Altera o banner relacionado
a autenticação AAA. O “delimiter” poderá ser o “#”, por exemplo.
 aaa authentication fail-message delimiter string delimiter: Configura uma
mensagem que será mostrada caso a autenticação de um usuário não for bem
sucedida.
 aaa accounting network default start-stop radius: Ativa o “Accounting”, e
também server para iniciarmos a configuração do POD (Packet of Disconnect), em
conjunto com os comandos “aaa accounting delay-start”, “aaa pod server server-key
string”, “radius-server host IP address non-standard”.

Configurando a autenticação PPP

O PAP e o CHAP são os métodos de autenticação PPP mais utilizados, e trabalharemos com
estes para demonstrarmos a configuração PPP em roteadores Cisco. Antes de mais nada,
para que o PAP ou CHAP possa ser utilizado, a interface deverá estar configurada para PPP:

encapsulation ppp

Ainda no modo de configuração da interface, você escolherá qual deles servirá a


autenticação PPP:

ppp authentication {protocol1 [protocol2...]} [if-needed] {default | list-name} [callin]


[one-time]

Note que é possível possuir métodos adicionais para a autenticação. Por exemplo, você
poderá escolher o CHAP para a autenticação primária e, caso o CHAP não esteja disponível
para o cliente, o PAP poderia ser utilizado. Os seguintes protocolos são suportados: CHAP,
MS-CHAP e PAP. Exemplos:

ppp authentication pap, ou

ppp authentication chap, ou

ppp authentication chap pap

Outro parâmetro que podemos informar para este cenário, é a forma de autenticação. As
opções são: inbound e outbound. Com o inbound, um roteador que está se autenticando
com o servidor recebe uma resposta do access server para provar que ele (o roteador) está
autorizado a iniciar a sessão com o servidor desejado. Para o outbound, o roteador também
poderá questionar o servidor para saber se este servidor está autorizado para fornecer este
serviço de autenticação. A forma “inbound” está habilitada por padrão e para habilitarmos o
“outbound”, o seguinte comando deverá ser informado:

ppp pap sent-username username password password

Caso você não queira o PAP em operação para o serviço de autenticação, o comando ppp
pap refusepoderá ser utilizado para desabilitá-lo. O mesmo ocorre para com relação ao
CHAP: utilize o comando ppp chap refuse [callin] para desabilitá-lo, ou melhor, recusar o
CHAP.

Para configurarmos o “challenge” do CHAP, o comando ppp chap password secretdeverá


ser utilizado. Além disto, o comando ppp chap wait secretprocura fazer com que o CHAP
não autentique enquanto o usuário não estiver autenticado no roteador. Uma espécie de
“delay”, devendo o usuário autenticar-se com o roteador antes que o CHAP efetue a
autenticação em seu próprio mecanismo.

Configurando o “Authorization”

O Authorization é o componente do AAA responsável por limitar os serviços disponíveis para


os usuários. A sua configuração é relativamente simples, uma vez que a parte mais
complexa está relaciondo aos métodos de autenticação do usuário. O “authorization” vem
depois do “authentication”. Para que possamos demonstrar algo sobre o authorization, torna-
se necessário mostrar-lhes as listas de métodos para autorização disponíveis no AAA do
Cisco IOS:

 Auth-proxy: O authorization é configurado na forma “per-user basis”.


 Commands: Este método permite associar comandos ou níveis de privilégio do
roteador Cisco para indivíduos ou grupos de usuários.
 EXEC: Aplica-se para os atributos assiciados com uma sessão de um determinado
usuário.
 Network: Referente à conexões de rede. Isto inclui o PPP, SLIP, ou ARAP.
 Reverse Access: Referente às sessões para reverse telnet.

Já os métodos de authorization propriamente ditos poderão ser conforme:

 TACACS+
 If-Authenticated
 None
 Local
 RADIUS

Configurando o AAA Authorization com as listas de métodos (Method Lists)

Em um processo similar ao que foi efetuado para o AAA Authentication, faremos agora a
descrição dos comandos para o AAA Authorization:

 aaa authorization {auth-proxy | network | exec | commands level | reverse-


access | configuration | ipmobile} {default | list-name} [method1
[method2...]]: Configura a lista e o método de authorization. O funcionamento e
interpretação são muito parecidos com aquilo que informamos para o “method list”
para o AAA Authentication.
 line [aux | console | tty | vty] line-number [ending-line-number] ou interface
interface-type interface-number: Aplica o method list para um line ou para uma
interface, podendo ser ambos.
 authorization {arap | commands level | exec | reverse-access} {default | list-
name} ou ppp authorization {default | list-name}: Aplica a lista de autorização
para um line ou uma interface, podendo ser ambos.
É possível desabilitarmos listas de métodos específicas. Por exemplo, o comando no aaa
authorization config-commands desabilita o method list “Commands”.

Uma outra forma bastante popular para o emprego do AAA Authorization é em situações
onde temos sessões “reverse telnet”. Para configurarmos os métodos em cima deste cenário,
poderemos utilizar:

aaa authorization reverse-access method1 [method2 ...]

Configurando o “Accounting”

Seguindo os mesmos preceitos para “Method Lists” e etc, concluiremos este artigo com uma
descrição do AAA Accounting. O AAA Accouting é bastante útil para sabermos quais recursos
os usuários estão acessando, comandos digitados, etc. As seguintes “Method Lists” estão
disponíveis para o Accouting:

 Network: Informa detalhes sobre todas as sessões PPP, SLIP ou ARAP, inclusive
fornecendo contadores sobre pacotes e bytes.
 EXEC: Fornece informações sobre todas as sessões de usuários no access server.
 Commands: Fornece informações sobre todos os comandos digitados no EXEC
mode, incluíndo os comandos inseridos no global configuration mode.
 Connection: Fornece informações sobre todas as conexões inbound e outbound
feitas para o access server, incluíndo telnet, local-area transport (LAT), TN3270,
packet assembler/disassembler (PAD), e rlogin.
 System: Provê informações sobre os eventos do sistema.
 Resource: Provê registros “start” e “stop” para todas as chamadas por onde a
autenticação do usuário foi bem sucedida. Além disto, informa os registros “stop”
para as chamadas cujas autenticações não foram bem sucedidas.

Métodos para Accouting

Os seguintes métodos estão disponíveis: TACACS+ e RADIUS.

Configurando o Accouting

Para configurarmos o AAA Accounting com “Method Lists” nomeadas, a seguinte relação de
comandos deverá ser utilizada:

 aaa accounting {system | network | exec | connection | commands level}


{default | list-name} {start-stop | stop-only | none} [method1 [method2...]]:
Cria uma “method list” e ativa o Accouting. O parâmetro “list-name” indica o nome
da lista que você estará criando no roteador.
 line [aux | console | tty | vty] line-number [ending-line-number]: Vincula o
method list para um line.
 interface interface-type interface-number: Vincula o method list para a interface
desejada.
 accounting {arap | commands level | connection | exec} {default | list-name}:
Vincula o method list para um conjunto de lines.
 ppp accounting {default | list-name}: Vincula o method list para um conjunto de
interfaces.

Comandos adicionais

 aaa accounting suppress null-username: Ignora o accouting para as sessões


cujos usuários passaram pelo método de authenticação “None”.
 aaa accounting update {[newinfo] [periodic] number}: Permite o envio
periódico de registro para o accouting server.
 aaa accounting send stop-record authentication failure: Permite o envio de
registros para sessões onde a autenticação não for bem sucedida.
 aaa accounting nested: Permite agrupar os registros para conexões de redes e
comandos no EXEC mode.

Os seguintes comandos poderão ser utilizados para monitorarmos o Accouting: show


accounting, debug aaa accounting.

Abraços!

Diogo

Você também pode gostar