AW: EAP-TLS Failed in handler question

Phil Mayers p.mayers at imperial.ac.uk
Wed Nov 21 13:40:04 CET 2012


On 21/11/12 12:00, PENZ Robert wrote:

> With first packet I meant first packet the radius server saw in some time ... the switch forces a reauthentification every 2h

A re-auth is a fresh EAP session. So even on a re-auth, the first packet 
would not have a "State" attribute, absent software bugs.

>> It *could* be that the client just got stuck and is responding (very)
>> late. But I'm quite surprised the NAS didn't timeout the EAP auth before
>> that.
>
> We're running Extreme Networks Switches with following timers set:
>
> configure netlogin dot1x timers quiet-period 30
> configure netlogin dot1x timers reauth-period 7200

We run SummitX edge, and when I've tested dot1x netlogin in the past, I 
haven't seen this issue. We've never widely deployed it, however, so 
it's possible there's an XOS bug where a small percentage of re-auths 
erroneously re-use the "State". You'd need to get a packet capture to be 
sure.

> but reject means the switch sets the port to the guest vlan, and therefor the PC loses the connections ... is there a way to request a new full eap/tls handshake from the client?

You're not understanding, or I'm not making myself clear.

Suggestion: fire up wireshark, and take a careful look at a normal EAP 
authentication. You'll see that the first packet is an EAP-Identity 
without a "State" attribute, which the server responds to with an 
Access-Challenge containing the default eap type "start" payload, and a 
"State" attribute.

Are you *absolutely sure* that these packets are really the first RADIUS 
packet in the auth/re-auth?

If you're sure, your problem seems to be that the correct first packet 
isn't being sent; the switch is just jumping straight in with the EAP 
payload *and* a "State" attribute. I am curious to know where it's 
getting that "State" attribute.

The server source code assumes that a "State" attribute will be valid. 
There's no setting to "just accept it".

Interestingly, I see the RADIUS RFC does actually allow clients to send 
a previous "State" if you send an Access-Accept with:

  Termination-Action = RADIUS-request

You're not doing that, are you?

>
>>> Is this a client problem or a misconfiguration on my part?
>> It's probably a client or NAS problem, unless you've set timer_expire
>> too low.
>
>> However: I guess this could also happen right after the server is
>> restarted. Could that be it - is a cron job restarting it maybe?
>
> no the server is running for > 10 days
>
> but if I would restart the server I would reject all clients to the guest vlan on reauthentication after that ... that can't be the designed way.

No. As above, re-auths start new EAP sessions. You would only reject any 
EAP sessions that were in the *middle* of performing an auth, as the 
"state" would be lost across restarts. But this is a very narrow window.


More information about the Freeradius-Users mailing list