Mac Auth against LDAP
Nikolaos Milas
nmilas at noa.gr
Mon Aug 26 10:07:00 CEST 2013
On 24/8/2013 12:00 μμ, Nikolaos Milas wrote:
> ...and then I could simply use my *exact current configuration* by
> simply changing the ldap filter to:
>
> filter =
> "(&(macAddress=%{Calling-Station-Id})(radiusNASIpAddress=%{NAS-IP-Address})(radiusHint=%{NAS-Port}))"
I tested this and it works. (Yet, please respond to the questions on my
earlier mails.)
Now, I am thinking of an extended (MAC-Auth) "policy" (rule set) like:
Rule 1: If in the LDAP host entry we have included a radiusNASIpAddress
value AND a radiusHint value, then authorize based on all, otherwise
reject. (No mobility allowed)
Rule 2: If in the LDAP host entry we have included only a
radiusNASIpAddress value, then authorize based only on it, otherwise
reject. (NAS-mobility)
Rule 3: If in the LDAP host entry we have included NEITHER a
radiusNASIpAddress value NOR a radiusHint value, then authorize based
only on the MAC Address. (Full Mobility)
QUESTION 1: Is it legitimate to set up the above policy as follows?
server macauth {
authorize {
preprocess
rewrite_calling_station_id
if
(%{ldap_macauth:ldap:///ou=Nodes,dc=example,dc=com?radiusHint?sub?radiusHint=*}
and
%{ldap_macauth:ldap:///ou=Nodes,dc=example,dc=com?radiusNASIpAddress?sub?radiusNASIpAddress=*})
{
ldap_macauth
if (ok) {
update control {
Auth-Type := Accept
}
}
}
else if
(%{ldap_macauth_NAS_only:ldap:///ou=Nodes,dc=example,dc=com?radiusNASIpAddress?sub?radiusNASIpAddress=*})
{
ldap_macauth_NAS_only
if (ok) {
update control {
Auth-Type := Accept
}
}
}
else {
ldap_macauth_mobility
if (ok) {
update control {
Auth-Type := Accept
}
}
else {
reject
}
}
}
authenticate {
Auth-Type LDAP_MACAUTH {
ldap_macauth
}
}
preacct {
preprocess
acct_unique
}
accounting {
detail
exec
attr_filter.accounting_response
}
}
...where the three ldap instances above are identical except the filter
which is:
ldap_macauth:
filter =
"(&(macAddress=%{Calling-Station-Id})(radiusNASIpAddress=%{NAS-IP-Address})(radiusHint=%{NAS-Port}))"
ldap_macauth_NAS_only:
filter =
"(&(macAddress=%{Calling-Station-Id})(radiusNASIpAddress=%{NAS-IP-Address}))"
ldap_macauth_mobility:
filter = "(macAddress=%{Calling-Station-Id})"
If the above configuration is legitimate, what should we place in the
authenticate {} section ? All ldap_machauth* instances used in authorize
{} section should be included? I am confused.
Thanks and regards,
Nick
More information about the Freeradius-Users
mailing list