[RADIATOR] Tacacsplus and OSC-Authorize-Group
Heikki Vatiainen
hvn at open.com.au
Wed Apr 28 15:47:19 UTC 2021
On 28.4.2021 10.41, Patrik Forsberg wrote:
> I’m looking at using AuthorizeGroupAttr and the attribute
> OSC-Authorize-Group to add commands a user is (not )allowed to run when
> using tacacs.. but I can’t find any documentation on how to add multiple
> rules to this attribute ?
>
> Adding the same multiple times are, of course, not working and just
> adding a comma(,) between the permit/deny clauses doesn’t work.. ?
Here's an example. First Radiator configuration:
<ServerTACACSPLUS>
Identifier default-tacacs-server
Key mysecret
AddToRequest NAS-Identifier=TACACS
AuthorizeGroupAttr OSC-Authorize-Group
GroupMemberAttr tacacsgroup
AuthorizeGroup group2 permit service=shell cmd=show cmd-arg=line
AuthorizeGroup group2 deny .*
</ServerTACACSPLUS>
The users file for AuthBy FILE is:
mikem User-Password = fred
OSC-Authorize-Group = "deny service=shell cmd=show cmd-arg=line",
OSC-Authorize-Group = "permit service=shell
cmd=someallowedcommand",
OSC-Authorize-Group = "deny service=shell
cmd=someforbiddencommand",
OSC-Authorize-Group = "permit service=shell cmd=show cmd-arg=run",
tacacsgroup = group2
Then test. Note that authorisation fails. The reason is that user
specific rules have 'show line' denied while the configuration has this
explicitly allowed. The user specific rules override the configuration
file group specific rules. The end result is that the user can run
'someallowedcommand' and 'show run'.
% perl goodies/tacacsplustest -trace 4 -key somekey -noacct -author_args
service=shell,cmd=show,cmd-arg=line
Connecting to TACACS+ server localhost:49
sending Authentication request...
authentication response: 193, 1, 2, 0, 1234, 1, 0, ,
Disconnect from localhost:49
OK
sending Authorization request...
authorization response: 192, 2, 2, 0, 1234, 16, denied, ,
Disconnect from localhost:49
FAIL
Here's Radiator's log. First shown is authentication and then authorisation:
200d64b0 Wed Apr 28 18:39:45 2021 178522: DEBUG: Reading users file ./users
200d64b0 Wed Apr 28 18:39:45 2021 188117: DEBUG: Radius::AuthFILE looks
for match with 'mikem' [mikem]
200d64b0 Wed Apr 28 18:39:45 2021 188487: DEBUG: Radius::AuthFILE
ACCEPT: : 'mikem' [mikem]
200d64b0 Wed Apr 28 18:39:45 2021 188812: DEBUG: AuthBy FILE result:
ACCEPT,
200d64b0 Wed Apr 28 18:39:45 2021 188998: DEBUG: Access accepted for mikem
200d64b0 Wed Apr 28 18:39:45 2021 189237: DEBUG: Packet dump:
200d64b0 *** Reply to TACACSPLUS request:
200d64b0 Code: Access-Accept
200d64b0 Identifier: UNDEF
200d64b0 Authentic: <19>:<165><233><192><247><181>9z<5>-<159>K<226>oY
200d64b0 Attributes:
200d64b0 OSC-Authorize-Group = "deny service=shell cmd=show
cmd-arg=line"
200d64b0 OSC-Authorize-Group = "permit service=shell
cmd=someallowedcommand"
200d64b0 OSC-Authorize-Group = "deny service=shell
cmd=someforbiddencommand"
200d64b0 OSC-Authorize-Group = "permit service=shell cmd=show
cmd-arg=run"
200d64b0 tacacsgroup = group2
200d64b0
00000000 Wed Apr 28 18:39:45 2021 189426: DEBUG: TacacsplusConnection
result Access-Accept
00000000 Wed Apr 28 18:39:45 2021 189804: DEBUG: TacacsplusConnection
Authentication REPLY 1, 0, ,
00000000 Wed Apr 28 18:39:45 2021 192004: DEBUG: TacacsplusConnection
request 192, 2, 1, 0, 1234, 62
00000000 Wed Apr 28 18:39:45 2021 192270: DEBUG: TacacsplusConnection
Authorization REQUEST 6, 0, 2, 0, mikem, 123, testclient, 3,
service=shell cmd=show cmd-arg=line
00000000 Wed Apr 28 18:39:45 2021 192565: DEBUG: AuthorizeGroup rule
match found: deny service=shell cmd=show cmd-arg=line { } { }
00000000 Wed Apr 28 18:39:45 2021 192713: INFO: Authorization denied for
mikem at 127.0.0.1, group group2, args service=shell cmd=show cmd-arg=line
00000000 Wed Apr 28 18:39:45 2021 192902: DEBUG: TacacsplusConnection
Authorization RESPONSE 16, denied, ,
Thanks,
Heikki
--
Heikki Vatiainen <hvn at open.com.au>
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, TACACS+, PAM, Active Directory,
EAP, TLS, TTLS, PEAP, WiMAX, RSA, Vasco, Yubikey, HOTP, TOTP,
DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS, etc.
More information about the radiator
mailing list