EAP-PEAP (mschapv2) & ssid restriction

Phil Mayers p.mayers at imperial.ac.uk
Tue Dec 20 14:54:01 CET 2005


Sergey Velikanov wrote:
> Hi
> 
> I've implemented wi-fi access (EAP-PEAP with ms-chap v2), it works fine, 
> now I want that users from one ssid
> could not connect to another ssid, my AP can include this infrmation in 
> Access-Request packet
> 
> rad_recv: Access-Request packet from host 192.168.232.3:1645, id=215, 
> length=274
>         User-Name = "user1"
>         Framed-MTU = 1400
>         Called-Station-Id = "0013.1a4b.ae50"
>         Calling-Station-Id = "0002.2d37.249f"
>         Cisco-AVPair = "ssid=is_client"
> 
> in my raddb/users I've changed
> 
> user1              User-Password == "123456"
> to
> user1           Cisco-AVPair =~ "ssid=is_client",       User-Password == 
> "123456"

This should be:

user1 Cisco-AVPair =~ "ssid=is_client", User-Password := "123456"

Note := instead of ==, though I think FreeRadius fixes that for you. 
Anyway, you then say:

> 
> it works fine with EAP-TLS, but it fails with EAP-PEAP (it uses mschap),
> 
> 
>   rad_check_password:  Found Auth-Type EAP
> auth: type "EAP"
>   Processing the authenticate section of radiusd.conf
> modcall: entering group authenticate for request 18
>   rlm_eap: Request found, released from the list
>   rlm_eap: EAP/mschapv2
>   rlm_eap: processing type mschapv2
>   Processing the authenticate section of radiusd.conf
> modcall: entering group Auth-Type for request 18
>   rlm_mschap: No User-Password configured.  Cannot create LM-Password.
>   rlm_mschap: No User-Password configured.  Cannot create NT-Password.
>   rlm_mschap: Told to do MS-CHAPv2 for user1 with NT-Password
>   rlm_mschap: FAILED: No NT/LM-Password.  Cannot perform authentication.
>   rlm_mschap: FAILED: MS-CHAP2-Response is incorrect
> 
> It seems that rlm_mschap do not include Cisco-AVPair = "ssid=is_client" 
> in its auth request
> 
> How can I solve this situation?
> 

You haven't put enough of the debug log to be certain, but that sounds 
like a reasonable supposition:

try:

eap {
  peap {
    copy_request_to_tunnel = yes
    # other things here
  }
}


PEAP (and in fact TTLS) make a "fake" Radius request from the inner auth 
(e.g. MSCHAP) proxied to 127.0.0.1. That request by default only has a 
small number of AVPs. The copy_request_to_tunnel tells FreeRadius to 
copy the AVPs from the original to the new request.



More information about the Freeradius-Users mailing list