. .

Proxying a PEAP/MSCHAPv2 request

Let make it simple, sometimes, your RADIUS server may need to proxy a PEAP/MSCHAPv2 request to another RADIUS (Home Server) to authenticate a user.

The idea behind the setup is your RADIUS server receive the PEAP/MSCHAPv2 request, then sent to the request to inner-tunnel, afterwards, the inner-tunnel proxy the request in MSCHAPv2 form to Home Server. The Home Server will reply the authenticate request and send back to your radius server.

Suppose your Radius should proxy ‘@qwifi’ request to Home Server.

  • in users, add
    DEFAULT User-Name =~ "@qwifi$", FreeRADIUS-Proxied-To == 127.0.0.1, Proxy-To-Realm := inner-qwifi
    
  • In eap.conf, setup all necessary cert & key in tls session, and the most important, set proxy_tunneled_request_as_eap = no in peap session
  • in proxy.conf
    home_server qwifi {
      type = auth+acct
      ipaddr = xx.xx.xx.xx
      port = 1812
      secret = testing123
      require_message_authenticator = yes
    }
          
    home_server_pool qwifi_pool {
      home_server = qwifi
    }     
    
    realm "inner-qwifi" {
    #      auth_pool = my_auth_failover
          nostrip
          pool = qwifi_pool
    }
          
    realm "qwifi" {
    #      auth_pool = my_auth_failover
          nostrip
          authhost        = LOCAL
          accthost        = LOCAL
    }
    
  • in modules/detail, you may define,
    detailfile = ${radacctdir}/%{Realm}/detail-combined
    

Reference: Proxy PEAP-EAP-MSCHAPv2 as MSCHAPv2