Application Notes: DmSwitch AAA Uso do TACACS
Application Notes: DmSwitch AAA Uso do TACACS. Data 11/06/2010, Revisão 1.0 1. Introdução 2. Instalação do tacplus 2.1. Instalação do tacplus 2.1.1. Atualizar a lista de pacotes dos repositórios 2.1.2. Instalar o servidor tacacs 2.2. Descrição da configuração do servidor tac-plus 2.2.1. Criptografia 2.2.2. Criando Usuários 2.2.3. Configuração do Authorization 2.3. Configurando o servidor TACACS 2.4. Logs do tacplus 3. Configuração do ACS 3.1. Configurando Elemento de Rede 3.2. Grupos de AAA Client 3.3. Adicionar Perfil de Acesso 3.4. Adicionando um Usuário 3.5. Configurando o grupo 4. Configuração do DmSwitch 5. Topologia com múltiplos servidores tacacs 1. Introdução O Terminal Access Controller Access-Control System (TACACS) é um protocolo de autenticação remota usado para centralizar usuários. O TACACS permite que o DmSwitch se comunique com o servidor tac-plus para saber se o usuário tem permissão de acesso ou não. Neste servidor também é possível definir diferentes perfis de acesso como, por exemplo, administradores (uso irrestrito) e usuários (uso restrito). As facilidades que permitem esse tipo de serviço são conhecidas como Authentication, Accounting e Authorization. Coletivamente, também são referidas como AAA. Descrição do AAA: Authentication: Determina quem é o usuário e onde ele está autorizado a acessar. Isto permite barrar intrusos de acessarem os DmSwitches. Authorization: Determina ao usuário o que lhe é permitido fazer. Isto permite gerenciar os serviços que serão disponibilizados a cada usuário. Accounting: Registra LOGs do que o usuário fez e quando ele fez. DATACOM 1
2. Instalação do tacplus 2.1. Instalação do tacplus Segue um exemplo de instalação do tac-plus para derivados do Debian. 2.1.1. Atualizar a lista de pacotes dos repositórios # apt-get updade 2.1.2. Instalar o servidor tacacs # apt-get install tac-plus 2.2. Descrição da configuração do servidor tac-plus Neste item será descrito como configurar o servidor tac-plus. É válido salientar que o caractere sustenido (#) serve para inserir comentários no script de configuração. Na configuração deve-se definir se a autenticação será do tipo pap ou ascii, certifique-se de que o servidor e o DmSwitch estejam utilizando o mesmo modo de autenticação. O DmSwitch utiliza por padrão a autenticação pap. A senha dos usuários pode estar em texto puro ou encriptada, isto é definido na configuração do servidor tac-plus. Para editar o arquivo de configuração utilize um editor de texto, como por exemplo: #editor /etc/tac-plus/tacacs.conf #vim /etc/tac-plus/tacacs.conf 2.2.1. Criptografia Visando tornar este serviço mais seguro, o usuário pode optar por utilizar uma chave para encriptar os dados de comunicação entre o servidor e o DmSwitch. Se decidir pela utilização da mesma, certifique-se que tanto o servidor quanto o DmSwitch possuam a mesma chave configurada. Caso estejam divergentes, na autenticação o DmSwitch irá acusar o usuário como inválido. Configuração da chave key = secret DATACOM 2
2.2.2. Criando Usuários Cadastro de usuário utilizando senha em texto puro e autenticação pap. user = admin{ pap = cleartext "admin" name = "Nome do usurário" Cadastro de usuário utilizando senha em texto puro e autenticação ascii. user = admin{ login = cleartext "admin" name = "Nome do usurário" Também é possível deixar as duas opções habilitadas no servidor. Para tornar as informações mais seguras, pode-se utilizar senhas encriptadas. Para isto deve-se utilizar um encriptador como por exemplo o tac_pwd. Para gerar a senha encriptada, vá ao diretório onde o tac_pwd encontra-se e siga o modelo : #./tac_pwd Password to be encrypted: admin he.ulplqf.rwk Caso necessite do tac_pwd, solicitar o mesmo ao suporte da Datacom. Cadastro de usuário utilizando senha encriptada. Neste exemplo, as 2 opções pap e ascii foram mantidas. user = admin{ login = des he.ulplqf.rwk pap = des he.ulplqf.rwk name = "Nome do usurário" Lembre-se que no momento de autenticar-se no DmSwitch, a senha que deverá ser digitada é "admin". 2.2.3. Configuração do Authorization A determinação dos comandos que cada usuário poderá executar, pode ser feita individualmente ou por grupos. Criando um usuário com permissões de administrador. user = admin { default service = permit pap = des he.ulplqf.rwk login = des he.ulplqf.rwk name = "usurário administrador" DATACOM 3
Criando um usuário com permissões restritas. user = user1 { default service = deny pap = cleartext "senha" login = cleartext "senha" name = "usurário" cmd = show { permit run.* deny.* cmd = exit { permit.* cmd = configure { permit.* cmd = interface { permit eth.* deny port.* cmd = ping { permit.* Criando usuários com permissões definidas por grupos. user = user1 { pap = cleartext "senha" login = cleartext "senha" name = "usurário" member = admin user = user2 { pap = cleartext "password" login = cleartext "password" name = "usurário" member = grupo1 Criando Grupos. group = admin { default service = permit group = grupo1 { default service = deny cmd = show { permit run.* cmd = exit { permit.* DATACOM 4
cmd = configure { permit.* Após qualquer alteração na configuração do servidor, o mesmo deve ser reiniciado com o comando /etc/init.d/tac-plus restart. 2.3. Configurando o servidor TACACS Segue uma demonstração da configuração completa do servidor. editor /etc/tac-plus/tacacs.conf # set the key key = secret accounting file = /var/log/tac_plus.acct # users accounts user = admin { default service = permit pap = des he.ulplqf.rwk login = des he.ulplqf.rwk name = "usurário administrador" user = user { pap = cleartext "senha" login = cleartext "senha" name = "usurário" member = admin user = user2 { pap = cleartext "senha2" login = cleartext "senha2" name = "usurário" member = grupo1 # Grupos group = admin { default service = permit group = grupo1 { default service = deny cmd = show { permit run.* cmd = exit { permit.* cmd = configure { permit.* DATACOM 5
/etc/init.d/tac-plus restart 2.4. Logs do tacplus Para acompanhar os logs dos comandos utilizados pelos usuários (válido somente se estiver utilizando o accounting), utilize o comando: tail -f /var/log/tac_plus.acct Segue um exemplo dos logs registrados pelo tac-plus. Thu Sep 11 13:07:48 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10848 timezone=utc-3 service=shell stop_time=64172 priv-lvl=1 cmd=configure <cr> Thu Sep 11 13:07:52 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10849 timezone=utc-3 service=shell stop_time=64176 priv-lvl=0 cmd=interface ethernet 14 <cr> Thu Sep 11 13:08:05 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10851 timezone=utc-3 service=shell stop_time=64189 priv-lvl=0 cmd=interface vlan 1 <cr> Thu Sep 11 13:08:13 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10852 timezone=utc-3 service=shell stop_time=64197 priv-lvl=1 cmd=no set-member ethernet all <cr> Thu Sep 11 13:08:17 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10853 timezone=utc-3 service=shell stop_time=64202 priv-lvl=1 cmd=show running-config <cr> Thu Sep 11 13:17:24 2008 10.0.0.3 user1 ttyp0 10.0.0.204 stop task_id=53874 timezone=utc-3 service=shell stop_time=1221139044 priv-lvl=0 cmd=show interfaces link <cr> Thu Sep 11 13:17:51 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10855 timezone=utc-3 service=shell stop_time=64775 priv-lvl=0 cmd=interface ethernet 14 <cr> Thu Sep 11 13:17:51 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10856 timezone=utc-3 service=shell stop_time=64775 priv-lvl=1 cmd=no shutdown <cr> Thu Sep 11 13:18:20 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10857 timezone=utc-3 service=shell stop_time=64804 priv-lvl=0 cmd=ping 176.16.10.197 <cr> Thu Sep 11 13:18:36 2008 10.0.0.2 user ttyp0 10.0.0.204 stop task_id=10858 timezone=utc-3 service=shell stop_time=64820 priv-lvl=1 cmd=copy running-config startup-config <cr> Thu Sep 11 13:34:17 2008 10.0.0.1 user ttyp0 10.0.0.204 stop task_id=32893 timezone=utc service=shell stop_time=1221140057 priv-lvl=1 cmd=configure <cr> Thu Sep 11 13:34:26 2008 10.0.0.1 user ttyp0 10.0.0.204 stop task_id=32894 timezone=utc service=shell stop_time=1221140066 priv-lvl=0 cmd=vlan-group 8 <cr> Thu Sep 11 13:34:30 2008 10.0.0.1 user ttyp0 10.0.0.204 stop task_id=32895 timezone=utc service=shell stop_time=1221140070 priv-lvl=0 cmd=vlan-group 8 vlan 100 <cr> DATACOM 6
Thu Sep 11 13:38:45 2008 10.0.0.4 user ttyp0 10.0.0.204 stop task_id=56581 timezone=utc-3 service=shell stop_time=1221140325 priv-lvl=0 cmd=spanning-tree 1 <cr> Thu Sep 11 14:19:11 2008 10.0.0.3 admin ttys0 10.0.0.204 stop task_id=55726 timezone=utc-3 service=shell stop_time=813 priv-lvl=0 cmd=meter new rate-limit 256 burst 128 <cr> Thu Sep 11 14:19:15 2008 10.0.0.3 admin ttys0 10.0.0.204 stop task_id=55727 timezone=utc-3 service=shell stop_time=817 priv-lvl=0 cmd=meter new rate-limit 512 burst 128 <cr> Thu Sep 11 14:19:32 2008 10.0.0.3 admin ttys0 10.0.0.204 stop task_id=55732 timezone=utc-3 service=shell stop_time=1221142769 priv-lvl=0 cmd=mac-address-table aging-time 15000 <cr> Thu Sep 11 14:19:36 2008 10.0.0.3 admin ttys0 10.0.0.204 stop task_id=55733 timezone=utc-3 service=shell stop_time=1221142772 priv-lvl=1 cmd=ip igmp snooping <cr> Thu Sep 11 14:19:57 2008 10.0.0.3 admin ttys0 10.0.0.204 stop task_id=55739 timezone=utc-3 service=shell stop_time=1221142794 priv-lvl=0 cmd=switchport native vlan 100 <cr> Thu Sep 11 14:19:59 2008 10.0.0.3 admin ttys0 10.0.0.204 stop task_id=55740 timezone=utc-3 service=shell stop_time=1221142797 priv-lvl=0 cmd=interface ethernet 28 <cr> Thu Sep 11 14:20:06 2008 10.0.0.3 admin ttys0 10.0.0.204 stop task_id=55741 timezone=utc-3 service=shell stop_time=1221142803 priv-lvl=0 cmd=switchport native vlan 100 <cr> 3. Configuração do ACS Partindo do princípio que o servidor Tacacs+ (ACS) já está instalado, este documento irá mostrar como criar usuários, grupos e elementos de rede para autenticar-se no DmSwitch. 3.1. Configurando Elemento de Rede No menu à esquerda, escolha a opção Network Configuration. Irá abrir uma nova tela, onde deve-se criar um nome para o Network Device Group. DATACOM 7
Entre no Network Device Group criado, e adicione o(s) AAA Client. Neste momento serão configurados os IPs dos DmSwitches que irão autenticar-se no servidor ACS. As figuras abaixo ilustram esta configuração: DATACOM 8
DATACOM 9
3.2. Grupos de AAA Client Nesta etapa iremos criar grupos para dividir os AAA Clients. No menu a esquerda, escolha a opção Shared Profile Components e depois Network Acces Restrictions. A figura abaixo mostra a seqüência a ser seguida. DATACOM 10
3.3. Adicionar Perfil de Acesso No menu à esquerda, escolha a opção Shared Profile Components e depois Shell Command Authorization Sets. Logo abaixo você adiciona com o botão ADD, agora você pode adicionar comandos de acesso para cada usuário. Certifique-se de selecionar a opção Permit Unmatched Args para cada comando. O exemplo mostra a criação de um usuário com perfil de administrador e outro com comandos restritos. DATACOM 11
3.4. Adicionando um Usuário No menu à esquerda, escolha a opção User Setup. Crie um usuário e escolha um grupo ao qual este usuário irá fazer parte. As figuras abaixo mostram as etapas desta configuração. Escolha um nome para o usuário, e pressione Add/Edit. Digite a senha do usuário e escolha um grupo para este usuário fazer parte. DATACOM 12
3.5. Configurando o grupo No menu à esquerda, escolha a opção Group Setup. Então edite o grupo que desejar. Se estiver utilizando o authorization, é necessário selecionar a opção Shell(exec). Você também deve selecionar o perfil de acesso (já criado no item 9.3) que irá associar a este grupo. DATACOM 13
4. Configuração do DmSwitch Neste exemplo de configuração do DmSwitch, está sendo utilizada a autenticação e o accounting no modo ascii. Caso deseje utilizar o modo pap a configuração não irá aparecer quando digitar o comando show running, isto ocorre porque é o modo padrão do DmSwitch. configure authentication login tacacs local tacacs-server authe-type ascii tacacs-server acct-type ascii tacacs-server host 1 address 10.0.0.204 tacacs-server host 1 key ******** tacacs-server host 1 authentication tacacs-server host 1 authorization tacacs-server host 1 accounting 5. Topologia com múltiplos servidores tacacs Esta topologia demonstra a utilização de múltiplos servidores de autenticação TACACS. Isto é válido em caso de falha de algum servidor. Nesta topologia, existem dois servidores fora do anel L2 e um que se encontra dentro do anel. Todos os servidores possuem a mesma configuração de usuários e grupos. O default gateway dos servidores dois e três é o 10.20.0.4 DATACOM 14
Configuração dos DmSwitches: Configuração do Datacom_1: config hostname datacom_1 authentication login local tacacs tacacs-server host 1 address 10.20.0.204 tacacs-server host 1 key kqqsjjiwqjsqklakql tacacs-server host 1 authentication tacacs-server host 1 authorization tacacs-server host 1 accounting tacacs-server host 2 address 10.20.0.205 tacacs-server host 2 key servidor1 tacacs-server host 2 authentication tacacs-server host 2 authorization DATACOM 15
tacacs-server host 2 accounting tacacs-server host 3 address 10.0.24.203 tacacs-server host 3 key tac3cs tacacs-server host 3 authentication tacacs-server host 3 authorization tacacs-server host 3 accounting int vlan 24 ip add 10.0.24.1/24 set tagged eth range 1/25 1/26 set untagged eth 1/28 int eth range 1/25 1/26 switchport native vlan 24 int eth 1/28 switchport native vlan 24 int vlan 1 no ip add no set eth all ip default-gateway 10.0.24.4 end Configuração do Datacom_2: config hostname datacom_2 authentication login local tacacs tacacs-server authe-type ascii tacacs-server host 1 address 10.20.0.205 tacacs-server host 1 key kqqsjjiwqjsqklakql tacacs-server host 1 authentication tacacs-server host 1 authorization tacacs-server host 1 accounting tacacs-server host 2 address 10.20.0.204 tacacs-server host 2 key 2server tacacs-server host 2 authentication tacacs-server host 2 authorization tacacs-server host 2 accounting tacacs-server host 3 address 10.0.24.203 tacacs-server host 3 key tac3cs tacacs-server host 3 authentication tacacs-server host 3 authorization tacacs-server host 3 accounting int vlan 24 ip add 10.0.24.2/24 set tagged eth range 1/25 1/26 int eth range 1/25 1/26 switchport native vlan 24 int vlan 1 no set eth all DATACOM 16
no ip add ip default-gateway 10.0.24.4 end Configuração do Datacom_3: config hostname datacom_3 authentication login local tacacs tacacs-server host 1 address 10.0.24.203 tacacs-server host 1 key tac3cs tacacs-server host 1 authentication tacacs-server host 1 authorization tacacs-server host 1 accounting tacacs-server host 2 address 10.20.0.204 tacacs-server host 2 key 2server tacacs-server host 2 authentication tacacs-server host 2 authorization tacacs-server host 2 accounting tacacs-server host 3 address 10.20.0.205 tacacs-server host 3 key kqqsjjiwqjsqklakql tacacs-server host 3 authentication tacacs-server host 3 authorization tacacs-server host 3 accounting int vlan 24 ip add 10.0.24.3/24 set tagged eth range 1/25 1/26 set untagged eth 1/20 int eth range 1/25 1/26 switchport native vlan 24 int eth 1/20 switchport native vlan 24 ip default-gateway 10.0.24.4 int vlan 1 no set eth all no ip add end Configuração do Datacom_4: config hostname datacom_4 ip routing authentication login local tacacs tacacs-server host 1 address 10.20.0.204 DATACOM 17
tacacs-server host 1 key 2server tacacs-server host 1 authentication tacacs-server host 1 authorization tacacs-server host 1 accounting tacacs-server host 2 address 10.20.0.205 tacacs-server host 2 key kqqsjjiwqjsqklakql tacacs-server host 2 authentication tacacs-server host 2 authorization tacacs-server host 2 accounting tacacs-server host 3 address 10.0.24.203 tacacs-server host 3 key tac3cs tacacs-server host 3 authentication tacacs-server host 3 authorization tacacs-server host 3 accounting int vlan 24 ip add 10.0.24.4/24 set untagged eth 1/28 int vlan 2000 ip add 10.20.0.4/24 set untagged eth 1/12 set untagged eth 1/18 int eth 1/28 switchport native vlan 24 int eth 1/12 switchport native vlan 2000 int eth 1/18 switchport native vlan 2000 end DATACOM 18