[RADIATOR] tacacs on cisco with command authorization results in AAA/AUTHOR/CMD Cannot replace commands

Patrik Forsberg patrik.forsberg at ip-only.se
Mon Aug 14 08:04:08 UTC 2017


Hello,

Sorry for late response on this but I think you have a minor fault in your configuration.

Try the following

AuthorizeGroup admin permit service=shell cmd\* {priv-lvl=15}
AuthorizeGroup admin permit service=shell cmd= {priv-lvl=15}

This made a major difference on our setup because when cisco tries to authenticate/authorize it sends "cmd=<command>" and that is not catched by "cmd\*"(for whatever reason). Other devices sends "cmd cmd-arg=<command>" and that is catched by "cmd\*" ..

Regards,
Patrik Forsberg

> -----Original Message-----
> From: radiator [mailto:radiator-bounces at lists.open.com.au] On Behalf Of
> Christian Kratzer
> Sent: den 28 juli 2017 16:09
> To: radiator at lists.open.com.au
> Subject: [RADIATOR] tacacs on cisco with command authorization results in
> AAA/AUTHOR/CMD Cannot replace commands
> 
> Hi,
> 
> I have a customer setup that uses tacacs and command authorization for
> shell users that is failing for the command authrization stage.
> 
> This is a new setup.  I have simplified and isolated the issue in my lab.
> 
> 
> The cisco is setup as follows:
> 
>  	aaa authentication login default group tacacs+ local
>  	aaa authorization console
>  	aaa authorization exec default group tacacs+ if-authenticated
>  	aaa authorization commands 1 default group tacacs+ none
>  	aaa authorization commands 15 default group tacacs+ none
> 
> The radiator is configured as follows:
> 
>  	<ServerTACACSPLUS>
>  		Key mysecret
>  		Port 49
>  		GroupMemberAttr tacacsgroup
> 
>  		AuthorizeGroup admin permit service=shell
> cmd\* {priv-lvl=15}
>  		AuthorizeGroup admin permit .*
> 
>  		AuthorizeGroup DEFAULT deny .*
>  	</ServerTACACSPLUS>
> 
>  	<AuthBy FILE>
>  		Identifier      Auth-File
>  		Filename        %D/users-tacacs
>  	</AuthBy>
> 
>  	<Handler>
>  		AuthBy          Auth-File
>  	</Handler>
> 
> 
> and users-tacacs has two users one with and one without a cisco-avpair
> 
>  	test1   User-Password = "test17"
>  		tacacsgroup=admin
> 
>  	test2   User-Password = "test17"
>  		tacacsgroup=admin,
>  		cisco-avpair=priv-lvl=15
> 
> User test1 is working ok. and the cisco logs following debug output:
> 
>  	Jul 28 2017 13:57:35 UTC: AAA/AUTHOR/TAC+: (1842491926):
> user=test1
>  	Jul 28 2017 13:57:35 UTC: AAA/AUTHOR/TAC+: (1842491926):
> send AV service=shell
>  	Jul 28 2017 13:57:35 UTC: AAA/AUTHOR/TAC+: (1842491926):
> send AV cmd=show
>  	Jul 28 2017 13:57:35 UTC: AAA/AUTHOR/TAC+: (1842491926):
> send AV cmd-arg=version
>  	Jul 28 2017 13:57:35 UTC: AAA/AUTHOR/TAC+: (1842491926):
> send AV cmd-arg=<cr>
>  	Jul 28 2017 13:57:35 UTC: AAA/AUTHOR (1842491926): Post
> authorization status = PASS_ADD
> 
> User test2 can login to the cisco but gets authorization failures for every
> command:
> 
>  	cons1#show ver
>  	Command authorization failed.
> 
> For this the cisco logs following debug output:
> 
>  	Jul 28 2017 13:56:58 UTC: AAA/AUTHOR/TAC+: (2535147160):
> user=test2
>  	Jul 28 2017 13:56:58 UTC: AAA/AUTHOR/TAC+: (2535147160):
> send AV service=shell
>  	Jul 28 2017 13:56:58 UTC: AAA/AUTHOR/TAC+: (2535147160):
> send AV cmd=show
>  	Jul 28 2017 13:56:58 UTC: AAA/AUTHOR/TAC+: (2535147160):
> send AV cmd-arg=version
>  	Jul 28 2017 13:56:58 UTC: AAA/AUTHOR/TAC+: (2535147160):
> send AV cmd-arg=<cr>
>  	Jul 28 2017 13:56:58 UTC: AAA/AUTHOR (2535147160): Post
> authorization status = PASS_ADD
>  	Jul 28 2017 13:56:58 UTC: AAA/AUTHOR/CMD Cannot replace
> commands
> 
> 
> The difference in radiator logging is as follows:
> 
> 
>  	Fri Jul 28 15:57:35 2017: DEBUG: AuthorizeGroup rule match
> found: permit .* {  }
>  	Fri Jul 28 15:57:35 2017: INFO: Authorization permitted for test1
> at 192.168.64.40, group admin, args service=shell cmd=show cmd-
> arg=version cmd-arg=<cr>
>  	Fri Jul 28 15:57:35 2017: DEBUG: TacacsplusConnection
> Authorization RESPONSE 1, , ,
> 
> 
>  	Fri Jul 28 15:56:58 2017: DEBUG: AuthorizeGroup rule match
> found: permit .* {  }
>  	Fri Jul 28 15:56:58 2017: INFO: Authorization permitted for test2
> at 192.168.64.40, group admin, args service=shell cmd=show cmd-
> arg=version cmd-arg=<cr>
>  	Fri Jul 28 15:56:58 2017: DEBUG: TacacsplusConnection
> Authorization RESPONSE 1, , , priv-lvl=15
> 
> 
> The issue seems to be that radiator pases the cisco-avpair from
> authentication to each command authorization which the cisco does not like.
> 
> I know this seems to be working as documented in goodies/tacplus.txt
> 
>  	# Any cisco-avpair reply items that result from the Radius
> authentication will be used for
>  	# TACACS+ authorization..
> 
> I have temporarily patched ServerTACACSPLUS.pm to disable passing of reply
> values for later command authorization but am keeping it for the initial login.
> 
> How is command authorization supposed to work when the reply items
> include cisco-avpairs.
> 
> Greetings
> Christian
> 
> 
> --
> Christian Kratzer                   CK Software GmbH
> Email:   ck at cksoft.de               Wildberger Weg 24/2
> Phone:   +49 7032 893 997 - 0       D-71126 Gaeufelden
> Fax:     +49 7032 893 997 - 9       HRB 245288, Amtsgericht Stuttgart
> Mobile:  +49 171 1947 843           Geschaeftsfuehrer: Christian Kratzer
> Web:     http://www.cksoft.de/
> _______________________________________________
> radiator mailing list
> radiator at lists.open.com.au
> http://lists.open.com.au/mailman/listinfo/radiator


More information about the radiator mailing list