Pesquisa de site

Instalação e configuração de TACACS+ com roteador Cisco no Debian 8 Jessie


A tecnologia hoje depende muito de equipamentos de rede e da configuração adequada desses equipamentos de rede. Os administradores têm a tarefa de garantir que as alterações na configuração não sejam apenas testadas minuciosamente antes da implementação, mas também que quaisquer alterações na configuração sejam feitas por indivíduos autorizados a fazer alterações, bem como garantir que as alterações sejam registradas.

Este princípio de segurança é conhecido como AAA (Triple-A) ou Autenticação, Autorização e Contabilidade. Existem dois sistemas muito importantes que oferecem funcionalidade AAA para administradores protegerem o acesso aos dispositivos e às redes que esses dispositivos atendem.

RADIUS (Serviço de usuário dial-in de acesso remoto) e TACACS+ (Terminal Access Controller Access-Control System Plus).

Radius é tradicionalmente usado para autenticar usuários para acessar a rede, o que contrasta com TACACS, pois o TACACS é tradicionalmente usado para administração de dispositivos. Uma das grandes diferenças entre esses dois protocolos é a capacidade do TACACS de separar as funções AAA em funções independentes.

O benefício da separação TACACS das funções AAA é que a capacidade do usuário de executar determinados comandos pode ser controlada. Isto é muito vantajoso para organizações que desejam fornecer à equipe de rede ou a outros administradores de TI diferentes privilégios de comando em um nível muito granular.

Este artigo orientará a configuração de um sistema Debian para atuar como um sistema TACACS+.

Configuração do ambiente

  1. Debian 8 instalado e configurado com conectividade de rede. Por favor, leia este artigo sobre como instalar o Debian 8
  2. Switch de rede Cisco 2940 (a maioria dos outros dispositivos Cisco também funcionam, mas os comandos no switch/roteador podem variar).

Instalação do software TACACS+ no Debian 8

O primeiro passo para configurar este novo servidor TACACS será adquirir o software dos repositórios. Isto é facilmente conseguido com o uso do comando ‘apt’.


apt-get install tacacs+

O comando acima irá instalar e iniciar o serviço do servidor na porta 49. Isto pode ser confirmado com vários utilitários.


lsof -i :49
netstat -ltp | grep tac

Esses dois comandos devem retornar uma linha que indica que TACACS está escutando na porta 49 deste sistema.

Neste ponto o TACACS está escutando conexões nesta máquina. Agora é hora de configurar o serviço TACACS e os usuários.

Configurando serviços e usuários TACACS

Geralmente, é uma boa ideia vincular serviços a endereços IP específicos se o servidor tiver vários endereços. Para realizar esta tarefa, as opções padrão do daemon podem ser modificadas para especificar um endereço IP.


nano /etc/default/tacacs+

Este arquivo especifica todas as configurações do daemon que o sistema TACACS deve iniciar. A instalação padrão especificará apenas o arquivo de configuração. Ao adicionar um argumento '-B' a este arquivo, um endereço IP específico pode ser usado para o TACACS escutar.


DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf " - Original Line
DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf -B X.X.X.X " - New line, where X.X.X.X is the IP address to listen on

Nota especial no Debian: Por algum motivo, a tentativa de reiniciar o serviço TACACS+ para ler as novas opções do daemon não teve êxito (via service tacacs_plus reiniciar).

O problema aqui parece ser quando TACACS é iniciado através do script init, o PID é estaticamente definido como “PIDFILE=/var /run/tac_plus.pid ” entretanto, quando “-B X.X.X.X ” é especificado como uma opção daemon, o nome do arquivo pid é alterado para “/var/run /tac_plus.pid.X.X.X.X ”.

Não tenho certeza se isso é um bug ou não, mas para combater a situação temporariamente, pode-se definir manualmente o PIDFILE no script init alterando a linha para “PIDFILE=/var/run/tac_plus.pid.X.X.X.X ” onde X.X.X.X é o endereço IP que o TACACS deve escutar e então iniciar o serviço com:


service tacacs_plus start

Ao reiniciar o serviço, o comando lsof pode ser usado novamente para confirmar se o serviço TACACS está escutando o endereço IP correto.


lsof -i :49

Como visto acima, TACACS está escutando um endereço IP em um endereço IP específico conforme definido no arquivo de padrões TACACS acima. Neste ponto, usuários e conjuntos de comandos específicos precisam ser criados.

Esta informação é gerenciada por outro arquivo: ‘/etc/tacacs+/tac_plus.conf‘. Abra este arquivo com um editor de texto para fazer as modificações apropriadas.


nano /etc/tacacs+/tac_plus.conf

Este arquivo é onde todas as especificações do TACACS devem residir (permissões de usuário, listas de controle de acesso, chaves de host, etc). A primeira coisa que precisa ser criada é uma chave para os dispositivos de rede.

Há muita flexibilidade nesta etapa. Uma única chave pode ser configurada para todos os dispositivos de rede ou várias chaves podem ser configuradas por dispositivo. A opção fica a critério do usuário, mas este guia usará uma única chave para simplificar.


key = "super_secret_TACACS+_key"

Depois que uma chave for configurada, grupos deverão ser construídos para determinar as permissões que os usuários receberão posteriormente. A criação de grupos facilita muito a delegação de permissões. Abaixo está um exemplo de atribuição de direitos totais de administrador.


group = admins {
        default service = permit
        service = exec {
                priv-lvl = 15
        }
}

  1. O nome do grupo é determinado pela linha “group=admins ” sendo admins o nome do grupo.
  2. A linha “default service=permit” indica que se um comando não for explicitamente negado, então permita-o implicitamente.
  3. O “service=exec { priv-lvl=15 } ” permite o nível de privilégio 15 no modo exec em um dispositivo Cisco (o nível de privilégio 15 é o mais alto em Equipamento Cisco).

Agora um usuário precisa ser atribuído ao grupo de administradores.


user = rob {
       member = admins
       login = des mjth124WPZapY
}

  1. A sub-rotina “user=rob ” permite que um nome de usuário rob acesse algum recurso.
  2. O “member=admins” diz ao TACACS+ para se referir ao grupo anterior chamado admins para obter uma lista do que este usuário está autorizado a fazer.
  3. A linha final, “login=des mjth124WPZapY ” é uma senha criptografada para esse usuário se autenticar (sinta-se à vontade para usar um cracker para descobrir esse exemplo de senha super “complexa”)!

Importante: geralmente é uma prática recomendada colocar senhas criptografadas neste arquivo em vez de texto simples, pois isso adiciona um pouco de segurança no caso de alguém ler isto arquivo e não deve necessariamente ter acesso.

Uma boa medida preventiva para isso é pelo menos remover também o acesso de leitura mundial no arquivo de configuração. Isso pode ser feito através do seguinte comando:


chmod o-r /etc/tacacs+/tac_plus.conf
service tacacs_plus reload

Neste ponto, o lado do servidor está pronto para conexões de dispositivos de rede. Vamos agora para o switch Cisco e configurá-lo para se comunicar com este servidor Debian TACACS+.