How to set User-Profile for roaming (proxied) users
Alan DeKok
aland at deployingradius.com
Fri Jul 18 05:31:44 CEST 2014
Jonathan wrote:
> - I'm running Freeradius 2.2.5 with local users in SQL database
> - We have roaming users utilizing our network infrastructure, but these
> users do not exist in our own local database and need to be proxied for
> authentication/accounting
> - normal proxying and authentication/accounting is going well.
That's all good.
> Setup: Roaming user <-> OUR_INFRA+RADIUS <-> ROAMING_RADIUS
>
> Since it's an international roaming agreement, I have configured a
> catch-all REALM which do not match our owns to be send their:
>
> realm "~.+$" {
> pool = ROAMING
> nostrip
> }
Hmm... why? The DEFAULT realm exists for precisely this purpose. See
raddb/proxy.conf.
> I now want to assign a user-profile for these users so that I can
> pre-authorize them using our own policies.
OK. The User-Profile in FreeRADIUS isn't used for much. Maybe LDAP,
IIRC.
> For example:
>
> 1) roaming is only allowed on weekends and weektime during evenings
> 2) per user, only 1 roaming session is allowed
> 3) per user volume limiting based on a user-profile for this roaming
> agreement (User-Profile := "roaming")
>
> I've tried both methods below to set this in the authorize section as
> follows:
>
> authorize{
> ...
> sql
> if (notfound}
> update control {
> User-Profile := "roaming"
> }
> }
What do you expect that to do? All it does is set an attribute. It
doesn't do anything *else* with it.
> realm "~.+$" {
> pool = ROAMING
> nostrip
> update control {
> User-Profile := "roaming"
> }
> }
That won't work. No documentation says you can put an "update"
section into a "realm" configuration.
> but none are working, i've also tried proxy-request and request as
> update statements.
Why?
> How can I assign profiles to roaming users who do not exist in our local
> database for authentication, but are accounted for locally.
You don't assign "profiles", for one. You can't just set
"User-Profile = roaming" and expect tons of things to magically start
working. You have to configure each thing individually. Then, put them
all together.
i.e. if you don't use the "User-Profile" attribute for *local* users,
setting it for roaming users won't do anything.
So for your list above, you've got to check
(1), in the "authorize" section, after the "suffix" module:
if (realm == DEFAULT && time is weekend or evening) {
reject
}
See "man unlang" for syntax. See the logintime module for how to
check dates and time ranges.
(2) Set "Simultaneous-Use = 1" for all the roaming users.
(3) volume limiting isn't in standard RADIUS. See your NAS
documentation for how to configure it.
Alan DeKok.
More information about the Freeradius-Users
mailing list