PEAP with Machine auth

Phil Mayers p.mayers at imperial.ac.uk
Wed Oct 26 17:14:29 CEST 2011


On 26/10/11 14:58, Phil Mayers wrote:
> On 26/10/11 14:47, Sergio NNX wrote:
>> This kind of Q&A thing helps no one here! Many people are reporting the
>> same issue on different platforms! I don't think the problem is either
>> with the client or the certificates since I conducted some testing using
>> the same client and the same certificates but an old FR version (1.1.7)
>> and the tests pass. It's easier to blame something else but we could
>> spend that time contributing to the solution and so helping others!
>
> In earnest: What exactly would you like us to do? Be specific. Bear in
> mind that no-one is paid to offer help here.
>
> If you can reproduce the problem reliably, then do so. Carefully
> document the configs that work under 1.1.7, and fail under 2.1.12,
> including the client configuration. Give that information to the list,
> and I'm sure if people are interested, they will take a look.
>
> If no-one is interested, you should start investigating the problem
> yourself - FreeRADIUS is open source. If you lack the skills locally,
> hire a contractor.
>
> I will try to find some time today to test machine auth.
>

Sorry, this is long.

tl;dr version - under Windows 7, if you import the CA certificate into 
the "Trusted Root Certification Authorities" hierarchy in the MMC 
"Certificates" snap-in, Windows 7 user- and machine-auth work just fine 
against an out-of-the-box FreeRADIUS 2.1.12 with only two minor changes.

It works for me.

===


I have just tested machine auth on a Windows 7 client. Everything works 
as I expected. Using an out-of-the-box FreeRADIUS 2.1.12 install and 
default configs, I made two changes:

  1. Edit "modules/mschap" to enable the "ntlm_auth" helper like so:

ntlm_auth = "... --username=%{mschap:User-Name} ..."

  2. Edit "clients.conf" to add an entry for the switch

I then started FreeRADIUS, and it auto-generated the certificates. I 
then tried a sequence of things on the Windows client.

First - open the "services" MMC snap-in, and start (and set to 
auto-start) the "Wired autoconfig" service

Second - open the network adapter list, right-click on the wired 
adapter, and enable authentication using the default settings (PEAP, 
MSCHAP inner) except that I unchecked "use my windows domain login / 
password"

I then enabled 802.1x on the port facing the machine.

== 1st auth ==

Failed. Client did the TLS negotiation, and returned the following error 
to FreeRADIUS:

[peap] <<< TLS 1.0 Alert [length 0002], fatal unknown_ca
TLS Alert read:fatal:unknown CA
     TLS_accept: failed in SSLv3 read client certificate A
rlm_eap: SSL error error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 
alert unknown ca
SSL: SSL_read failed inside of TLS (-1), TLS session fails.

This is expected; we haven't yet imported the client cert into the 
certificate store.

== 2nd auth ==

Copy the "ca.cer" file onto the client, double-click on it, follow the 
prompts using the defaults. This didn't work - the client did not import 
the cert, despite appearing to, so auth again failed.

== 3rd auth ==

Open "mmc", add the "Certificates" snap-in for "My user account". In the 
snap-in, expand the "Trusted Root Certification Authorities" folder, and 
right click on the "Certificates" child - select "All Tasks", 
"Import...". Browse to the cert & import it. You will be prompted saying 
"Windows cannot verify ..." - click OK.

You should now see the example cert in the list.

Re-start the 802.1x auth (unplug/reconnect).

You will be prompted for a username/password, as before - this time, 
auth will succeed.

== 4th auth ==

Return to the network adapter settings. Right-click, select properties. 
Go to the Authentication tab, select "Additional settings", and tick the 
"Specify authentication mode" box, and select "Computer authentication" 
from the drop-down.

The machine will re-authenticate and, as expected, fail with a bad CA alert:

[peap] <<< TLS 1.0 Alert [length 0002], fatal unknown_ca
TLS Alert read:fatal:unknown CA
     TLS_accept: failed in SSLv3 read client certificate A
rlm_eap: SSL error error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 
alert unknown ca

== 5th auth ==

Return to the "mmc" window; add the "Certificates" snap-in for the 
computer account. Again, expand "Trusted Root Certification Authorities" 
and right-click on "Certificates" and select "All tasks", "Import..". 
Browse to the "ca.cer" and import it.

Re-start authentication. Authentication will work.



More information about the Freeradius-Users mailing list