Pages

Tuesday, April 07, 2009

Instalando e configurando servidor tacacs (tac_plus) no Opensuse 11.1

O servidot tacacs tac_plus é distribuido pela cisto através do link: ftp://ftp-eng.cisco.com/ftp/pub/tacacs/
Porém o Devrim Seral (http://www.gazi.edu.tr/tacacs/) fez o favor de criar pacotes RPM a partir do fonte da Cisco. E este pacote RPM funciona no opensuse 11.1. Baixe o arquivo RPM e faça a instalação do mesmo.



wget http://www.gazi.edu.tr/tacacs/get.php?src=tac_plus-F4.0.3.alpha-5.i386.rpm
rpm -ivh tac_plus-F4.0.3.alpha-5.i386.rpm



Após a instalação é preciso fazer algumas alterações na configuração, edite o arquivo /etc/rc.d/init.d/tac_plus e deixe conforme abaixo. Você precisa achar estas linhas no arquivo e deixar como está abaixo.



#. /etc/rc.d/init.d/functions
#. /etc/sysconfig/network
#[ ${NETWORKING} = "no" ] && exit 0
#daemon tac_plus -C $tacacs_config -d $debug
tac_plus -C $tacacs_config -d $debug
#daemon tac_plus -C $tacacs_config
tac_plus -C $tacacs_config



Mova o arquivo tac_plus que inicia o serviço para o diretório correto.

mv /etc/rc.d/init.d/tac_plus /etc/init.d/



Coloque para iniciar automaticamente.

chkconfig tac_plus on


obs.: Vai dar algums erros aqui mas não se preocupe, irá funcionar.

Feito isso pode-se iniciar o servidor tacacs

/etc/init.d/tac_plus start


Verifique se o daemon subiu.


ps aux | grep tac_plus
root 26373 0.0 0.0 2060 376 pts/0 S 07:30 0:00 tac_plus -C /etc/tacacs/tac_plus.cfg


É preciso alterar o arquivo de configurações para que atenda as necessidades.

Edite o arquivo /etc/tacacs/tac_plus.cfg e deixe semelhante ao que está abaixo.



###
default authentication = file /etc/shadow
accounting file = /var/log/tac.account_log

# Chave de configuração dos equipamentos
key = cisco

# Definicao geral de usuarios
user = DEFAULT {
default service = permit
}

### Definicao de grupos para usar com os usuarios
group = administrador {
default service = permit
service = exec {
priv-lvl = 15
idletime=10
}
}

# Limita os comandos para o grupo usuarios
group = usuarios {
default service = deny
cmd = exit {
permit .*
}
cmd = login {
permit .*
}
cmd = logout {
permit .*
}
#Permite somente os commandos show version, flas e interface, ping e traceroute
cmd = show {
permit version
permit flash:
permit interface
deny .*
}
cmd = ping {
permit .*
}
cmd = traceroute {
permit .*
}
service = exec {
priv-lvl = 7
idletime=3
}
}

#### Usuarios
user = operador {
member = usuarios
login = cleartext operador123
}
user = joao {
member = usuarios
login = cleartext joao123
#14 dias antes da senha expirar o usuario eh alertado apos o login.
expires = "Apr 20 2009"
}
user = jose {
member = usuarios
#Fazer login sem password
login = nopassword
}
user = admin {
member = administrador
login = cleartext admin123
}
user = fabio {
member = administrador
login = cleartext fabio123
}

#### Senha de enable geral
user = $enab15$ {
login = cleartext supersenhacisco
}

#### senha de enable para cada equipamento caso nao caia na condicao anterior
host = 192.168.0.40 {
enable = cleartext cisco
}




Feito isso, reinicie o servidor tacacs. E configure os equipamentos de rede para usar o mesmo.

Segue exemplo de configuração de um router cisco.

aaa new-model
aaa authentication login LOGAR local group tacacs+
aaa authentication enable default group tacacs+ enable
aaa authorization exec default group tacacs+ local
aaa accounting exec default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
tacacs-server host 192.168.0.20
tacacs-server key cisco

line vty 0 4
login authentication LOGAR



Após isso, logue num equipamento cisco e veja os logs de accounting do servidor tacacs...

tail -f /var/log/tac.account_log
Tue Apr 7 23:14:57 2009 192.168.0.40 fabio tty98 192.168.0.41 stop task_id=6 timezone=UTC service=shell priv-lvl=15 cmd=show running-config
Tue Apr 7 23:15:25 2009 192.168.0.40 fabio tty98 192.168.0.41 stop task_id=7 timezone=UTC service=shell priv-lvl=15 cmd=clear counters Serial 0/0


Só.... cuidado.. isso gera muito log... caso não queira as estatísticas de cada comando que os usuários digitam, remova a linha abaixo da configuração dos equipamentos. Esta linha é interessante quando tem mais de uma pessoa que administra os equipamentos.. assim pode-se realizar uma certa auditoria quando der algum problema.


aaa accounting commands 15 default start-stop group tacacs+



Lembrando que o tacacs pode ser integrado ao PAM do linux, e autenticar usuários do AD através do samba winbind, ou até mesmo alguma base LDAP.

É Isso ae..

Referências:
http://www.cisco.com/en/US/tech/tk59/technologies_tech_note09186a00800946a3.shtml


http://www.pro-bono-publico.de/projects/tac_plus.html

http://wiki.centosbr.org/index.php/Instalando_e_configurando_TACACS%2B_no_CentOS

3 comments:

  1. Fala guilherme, não sei o q pode estar acontecendo... veja que quando vc inicializa o tacacs ele da um erro no arquivo /etc/init.d/tac_plus na linha 20.... será que está inicializando?
    de um ps -aux | grep tac e veja se está rodando....
    Caso contrário veja a linha 20 do arquivo citado acima para ver o que ele chama nesta linha.
    Qualquer coisa manda ai..
    Abraços

    ReplyDelete
  2. Fala Fabio,

    Acabei não tendo muito tempo para mexer no meu lab tacacs.

    Mas agora resolvi, eu não sei o que era o erro comentado, acredito que foi algo na instalação mesmo.
    Reinstalei e não deu o erro, configurei o router e server tacacs, mas não estava comunicando, desabilitei o firewall tanto do windows (onde emulo o router) e do linux (vmware opensuse). Ai funcionou.

    Acho bom deixar esse comentário, para verificarem o firewall que pode bloquear a porta de comunicação do tacacs.


    Valeu pelo post, bem legal me ajudou bastante, agora vou estudar mais essas linha do tacacs para entendê-las melhor.



    Abraços.

    ReplyDelete
  3. Fico muito orgulhoso de ter um artigo do CentOSBR mencionado aqui. Aliás, foi eu que o escrevi!

    Seria interessante se o rpm tivesse suporte ao LDAP, mas para isso devemos pegar um módulo e adicionar ao rpm de source e compilar, como o Devrim disse em um emai que troquei com ele. Bom, eu fazendo isso funcionar tá bom, haha

    Abraços!

    ReplyDelete