how to organize groups of users getting access to groups of servers
Alan DeKok
aland at deployingradius.com
Tue Mar 25 20:44:37 CET 2014
Jan-Frode Myklebust wrote:
> I want to use freeradius to authenticate different groups of users (from
> LDAP) to sets of network devices, potentially with different access
> levels, but have a bit hard time understanding how this is supposed to
> be configured. Would be nice with some advice..
Write out the rules in plain english. Then, translate them into
"unlang". The translation is fairly direct.
> What I have so far is:
>
> # Give ldap group "firewall" super-user privilege on juniper firewalls:
> DEFAULT Ldap-Group == "cn=firewall,cn=groups,cn=accounts,dc=example,dc=com"
> Auth-Type := LDAP
> Juniper-Local-User-Name := "super-users",
>
> # Give ldap group "netadmin" "enable" access on cisco routers:
> DEFAULT Ldap-Group == "cn=netadmin,cn=groups,cn=accounts,dc=example,dc=com"
> Auth-Type := LDAP
> cisco-avpair = "shell:priv-lvl=15"
>
> But this doesn't work for users that are member of both groups, so
> I need to say that the first rule is limited to a set of juniper
> devices, and the second is limited to a set of cisco devices.
Yes, the two rules don't check which client device is being used.
They also don't check if the user is *asking* for administrator privilege.
> What's the strategy we should use for expressing this? Is it possible
> without having to specify one rule for each NAS-IP-Address? I.e. being
> able to do some kind og grouping of clients to match on would be very
> helpful..
Add a 'type' for each client:
client foo {
ipaddr = x
secret = type
...
type = juniper
}
Then use "unlang":
if ("%{client:type}" == "juniper") {
// check if the user is ASKING for admin access
if (LDAP-Group != cn=firewall,cn=groups,cn=accounts,dc=example,dc=com) {
reject
}
update control {
Auth-Type := LDAP
}
update reply {
Juniper-Local-User-Name := "super-users"
}
}
And you probably don't want to force "Auth-Type := LDAP". Just list
"ldap" in the "authorize" section.
Alan DeKok.
More information about the Freeradius-Users
mailing list