Instalación y Configuración de TACACS+ en Linux
Saludos estimados lectores, como el titulo de el articulo define esta guia tiene como objetivo principal mostrarles como instalar un servidor TACACS+ en Linux, como tambien mostrarles como configurar equipos cisco para que trabajen con TACACS+.
1) TACACS+ utiliza TCP mientras RADIUS utiliza UDP.
Instalación de Tacacs+ en Centos:
Lo primero que tenemos que hacer es buscar el paquete de instalación de TACACS+ para nuestra respectiva distribución, al momento de crear esta guia todos los enlaces que verifique para descargar el paquete de TACACS+ y asi mostrarles como instalarlo de una forma generica estaban abajo, por lo tanto mientras consigo el paquete veran como lo instale en Centos.
Pueden descargar el paquete RPM desde AQUI.
Luego ejecutamos el comando siguiente para su instalación:
El Daemon se instalara con el nombre tacacs, por lo tanto para iniciar, parar o reiniciar el servicio bastaria con:
Iniciar: /etc/init.d/tacacs start
Parar: /etc/init.d/tacacs stop
Reiniciar: /etc/init.d/tacacs restart
Teniendo esto en cuenta, procedamos con la configuración: el archivo donde vamos a configurar todo es /etc/tacacs/tac_plus.cfg, procedemos a editarlo con nuestro editor preferido:
Para nuestro ejemplo de configuración vamos a crear dos grupos, uno administrativo que tendra acceso a todos los equipos, y estara compuesto por 2 integrantes, y el grupo limitado, el cual estara compuesto por 2 integrantes más.
El archivo por defecto se veria de la siguiente manera:
# Created by Devrim SERAL([email protected])
# It’s very simple configuration file
# Please read user_guide and tacacs+ FAQ to more information to do more
# complex tacacs+ configuration files.
#
# Put your NAS key below
key = CLAVE
#
# Use /etc/passwd.loc file to do authentication
# it’s must be in passwd file format. So you must mix shadow-passwd files to do it
#
default authentication = file /etc/passwd.loc
#
# Where is the accounting records to go
#
accounting file = /var/log/tacacs.log
#
# Permit all authorization request
default authorization = permit
Para nuestro ejemplo solo bastaria con modificar la llave, la cual se le pondra tambien a los routers mas adelante.
Luego que vamos a definir es el grupo administrativo, y lo haremos de la siguiente manera:
group = administrators {
default service = permit
}
# It’s very simple configuration file
# Please read user_guide and tacacs+ FAQ to more information to do more
# complex tacacs+ configuration files.
#
# Put your NAS key below
key = CLAVE
#
# Use /etc/passwd.loc file to do authentication
# it’s must be in passwd file format. So you must mix shadow-passwd files to do it
#
default authentication = file /etc/passwd.loc
#
# Where is the accounting records to go
#
accounting file = /var/log/tacacs.log
#
# Permit all authorization request
default authorization = permit
group = administrators {
default service = permit
}
Guardamos nuestro fichero y reiniciamos el servicio tacacs:
[root@puntolibre] # /etc/init.d/tacacs restartRouter(config)# tacacs-server key CLAVE
Creamos el usuario local que podra acceder al equipo cuando el TACACS+ no este disponible, y de la misma forma la contraseña de enable, la cual tambien solo funcionara cuando el TACACS no este disponible:
Router(config)# username puntolibre password contrasena1
Router(config)# enable secret contrasena2
Creamos un metodo de autenticación llamado access1 (Puede ser cualquier otro nombre) el cual especifique que primero autentique contra el TACACS+ Server y en caso de que este no este disponible que autentique de manera local.
Luego especificamos que para la contraseña enable tambien autentique contra el TACACS+ Server, y en caso de este no estar disponible que utilice la configurada para el modo privilegiado a nivel local.
Router(config)# aaa authentification enable default group tacacs+ enable
Luego habilitamos la autorización para los comandos de configuración y para el modo consola, y especificamos que para los privileges level 1 y 15 funcionara la autorización bajo el control de TACACS+ y que en caso de que este no este disponible que permita cualquier comando:
Router(config)# aaa authorization console
Router(config)# aaa authorization config-commands
Router(config)# aaa authorization commands 1 default group tacacs+ none
Router(config)# aaa authorization commands 15 default group tacacs+ none
Para completar el proceso vamos a configurar las lineas de consola y virtuales de manera tal que utilicen el TACACS+ Server:
Router(config)# line con 0
Router(config-line)# login authentication access1
Finalmente guardamos nuestra configuración y ya tendremos el equipo listo para autenticar contra TACACS+, cualquier duda o inconveniente pueden comunicarse conmigo y les ayudare tan pronto pueda!
Probando…
Cualquier inconveniente, me lo dejas saber 😉
Completo articulo.
hola que tal soy Raul. podrias ayudarme con las configuraciones de TACACS+, gracias
nuevamente he provado el codigo y no me funciona:
CODIGO ARCHIVO TAC_PLUS.CFG
# Created by Devrim SERAL([email protected])
# It's very simple configuration file
# Please read user_guide and tacacs+ FAQ to more information to do more
# complex tacacs+ configuration files.
#
# Put your NAS key below
key = CISCO
# Use /etc/passwd.loc file to do authentication
# it's must be in passwd file format. So you must mix shadow-passwd files to do it
default authentication = file /etc/passwd.loc
# Where is the accounting records to go
accounting file = /var/log/tacacs.log
# Permit all authorization request
default authorization = permit
# End config file
#——————
#grupos de SCCPERU
#——————-
group = administradores {
default service = permit
}
group = soporte {
default service = deny
cmd = show {
permit ip
permit interface
deny .*
}
cmd = enable {
permit .*
}
cmd = exit {
permit .*
}
}
user = adm1 {
login = cleartext consorcio1
#member = sysadmin
member = administradores
}
user = soporte1 {
login = cleartext consorcio2
#member = sysadmin
member = soporte
}
user = $enable$ {
login = cleartext consorcio
#member = sysadmin
}
CODIGO ROUTER:
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname ROUTER
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$5RZ2$fWYABQG61wdX05FU0Wf06.
!
aaa new-model
!
!
aaa authentication login access1 group tacacs+ local
aaa authentication enable default group tacacs+ enable
aaa authorization console
aaa authorization config-commands
aaa authorization commands 1 default group tacacs+ none
aaa authorization commands 15 default group tacacs+ none
!
!
aaa session-id common
memory-size iomem 5
ip cef
!
no ip domain lookup
ip domain name lab.local
ip auth-proxy max-nodata-conns 3
ip admission max-nodata-conns 3
!
multilink bundle-name authenticated
!
username soportelocal password 0 consorcio
archive
log config
hidekeys
!
interface FastEthernet0/0
ip address 10.77.253.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
tacacs-server host 10.77.253.2
tacacs-server key CISCO
!
control-plane
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
login authentication access1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
line vty 0 4
login authentication access1
!
!
end
hola, me llamo raul, acabo te montar un servidor tacacs, pero me estoy complicando en la creacion de un usuario con permisos limitados. ¡me podrias ayudar?
lo que deseo hacer es un usuario que solo pueda usar estos comandos:
enable
config ter
interface fastethernet NUM/NUM
switchport trunk encapsulation dot1q
switchport trunk native vlan NUMERO-VLAN
switchport mode trunk
switchport voice vlan NUMERO-VLAN
srr-queue bandwidth share 10 10 60 20
srr-queue bandwidth shape 10 0 0 0
mls qos trust cos
auto qos voip trust
spanning-tree portfast
shutdown
no shutdown
Gracias por tu ayuda.
Raul
correo [email protected]
Seria bueno que tambien publicaras un video tutorial, con los pasos, saludos hermano
Hola la configuración que menciona mas arriba falta crear los grupos de autenticación, les dejo un ejemplo
group = sysadmin { service = exec { priv-lvl = 15 }}