FR virtual server question and EAP configuration

Alexander Clouter alex at
Fri Jul 16 10:12:11 CEST 2010

Michal Bruncko <michal.bruncko at> wrote:
> I am using FR with WPA2-Enterprise autentification in Wifi environment 
> with this scheme:
> SSID 1 \
> SSID 2 --- AP <-- Trunk --> Ruter <-----> FreeRadius
> SSID 3 /
> My goal is to configure different security for different SSID through 
> one freeradius with virtual server feature.
> My first question is, if it's possible to have different FR server 
> configuration per SSID on single Access Point? AP have its IP address 
> from specific managemenet VLAN (different from any SSID X VLAN). I know, 
> that on freeradius side can be configuration separated by client IP 
> address, but in my scenario, the IP of radius client is same for every 
> VLAN/SSID, but the only distinguished part in communication is 
> "Called-Station-Id" in Access-Request with form: <radio-mac>:<ssid>.
That's down to your NAS configuration, if your AP (or wireless 
controller) will let you use a different set of RADIUS servers for each 
SSID then you are in luck.

The solutions I prefer. if I was doing this, either,
 * one SSID, and depending on the type of authentication used, use that 
	to pick VLAN the user is dropped into
 * with our infernal Cisco WLC, it does include attributes in all the 
	Access-Request packets telling you which SSID the user is 
	connecting to, you could use this with FreeRADIUS's unlang to 
	call a different EAP instance depending on what you want

I personally would opt for the first method (as then your FreeRADIUS and 
802.1X logic is identical for *wired* connectivity), however you might 
have Layer-8 reasons for wanting to go with the multiple SSID approach 

> Ok, next question which is related a bit to previously one. I have 
> presumted that freeradius cannot distinguishes between requests from 
> different SSID, so I have configured different IP address of Radius 
> server per SSID configuration on AP and all IP addresses are pointed  to 
> single radius server and I want to use one virtual server per listen IP 
> address. But how I should to tell FR server, which EAP configuration 
> must apply to which virtual server?
If you have convinced yourself you need to go with the multiple SSID 
approach, add the following (*untested*) to 'policy.conf':
extract_ssid {
	if ("%{request:Called-Station-Id}" =~ /^[0-9a-f]{2}(?:-[0-9a-f]{2}){5}:(.+)$/i)
		if ("%{1}") {
			update request {
				My-Local-Custom-SSID := "%{1}"
		else {
	else {

Now edit /etc/freeradius/dictionary for a custom string attribute for 
My-Local-Custom-SSID (or something you prefer).  Now when you call 
'extract_ssid' from your authorize section, you get a plain attribute 
called My-Local-Custom-SSID created that has the SSID being used.

> Example:
> SSID 1: Security WPA2-Ent. with EAP-PEAP, for authorized mobile clients
> SSID 2: Security WPA2-Ent. with EAP-TLS, for persistent wifi computers 
> 				with installed certificates
As a suggestion from experience, unless you actually plan on having real 
world different firewalling ACL's for each SSID (or backed VLAN) then 
doing this is not going to give your organisation any benefits.

> How can I configure this situation with FR Virtual server feature? Can I 
> simply copy, rename and modify "eap" part from eap.conf to "eap_2" and 
> applying it in athorize/authenticate sections in second virtual server? 
> It is enough? I have looking for any example for this scenario but 
> whithout any success.
Create multiple 'eap {}' instances (one for TLS and one for PEAP; get 
these working in isolation *first*) and call then depending on when you 
need them.


Alexander Clouter
.sigmonster says: Conscience is what hurts when everything else feels so good.

More information about the Freeradius-Users mailing list