addition to policy.conf
Phil Mayers
p.mayers at imperial.ac.uk
Mon Jun 4 11:30:31 CEST 2012
On 06/02/2012 10:34 PM, alan buxey wrote:
> cheers - some peoples styles differ. I will test/verify the other operation.
> I'm also keen on those who can supply combined REGEX foo - such as making a single
We use the following:
if (User-Name =~ /^([^@]*)@([-A-Z0-9]+(\\.[-A-Z0-9]+)+)$/) {
update request {
Stripped-User-Name := "%{1}"
Realm := "%{toupper:%{2}}"
}
}
else {
update control {
Reply-Message := "username is not RFC2486 compliant"
}
reject
}
A few things to note about this regexp:
1. It doesn't check any syntactic validity of the username part; just
the realm. I'm not confident enough that an inclusive list e.g.
a-zA-Z0-9 is "safe" for usernames; especially since in theory they're UTF-8
2. It will allow realms of the form -a.-b.-c because I just use a
single range for all characters in the realm.
3. It doesn't blacklist any common typos e.g. ax.uk, uk.ac, etc. I'm
not certain this is a sensible thing for end sites to do; bogon lists
have a nasty habit of getting stale unless they're fed from a central
source in a totally automated fashion. I know AlexC was keen on
rlm_is_realm_in_dns (or something) but equally that prevents people
having legit realms that aren't resovable (either publicly or at all)
> check for e.g. begins with . or ends with . (or would people prefer each rule
> to be seperate so that locally they could easily just comment out a rule that wouldnt
> apply to them?)
Ideally, it should be so simple that no-one ever has cause to do
anything other than enable the policy.
Separate entries allow for more granular reply-message values I guess.
More information about the Freeradius-Devel
mailing list