EAP-TLS Certificate problems.

Brian vb nova5radius at gmail.com
Sun Oct 8 03:10:35 CEST 2006


Hi, I'm trying to get Freeradius up and running on a WinXP box (win haters.
be nice ;) ) I have downloaded, installed, and configured the Freeradius
version from www.freeradius.net. The server starts seemingly without errors.
However when I try to connect with my XP laptop I get a certificate error on
the radius systems log. I have created 3 certificates, Root, Client, Server.
The Root and Client certificates were installed via the MMC snapin and
Import wizard in XP.  Any idea on what could be causing the errors? If I
need to post file contents, let me know which ones. Using EAP-TLS(cert
based) not EAP-TTLS(user-pass based). Xp laptop is stuck at "Attempting to
Authenticate." 

Checked options on laptop are..
Authenticate as Computer when info is available (checked)
Authenticate as guest when comp/user info unavailable (UNCHECKED)
Use a Certificate on this computer.(checked)
	Use Simple Cert selection (sub option, also checked)
Validate Server Cert (checked)
	Trusted root I created/installed is checked

Thanks,
Brian.

--- System configuration ---
XP Desktop, SP2, FreeRadius, Wired to Network. Firewall off.
XP Laptop, SP2, Wireless to network, firewall off.
Netgear WG302 Prosafe AP. Wired to network.
----------------

3 Logs to post.. Debug and two errors.

---Logs---
-Debug-
C:\PROGRA~1\FreeRADIUS.net-1.1.1-r0.0.1\bin>radiusd.exe -d
C:\progra~1\freeradiu
s.net-1.1.1-r0.0.1\etc\raddb -AX
Starting - reading configuration files ...
reread_config:  reading radiusd.conf
Config:   including file:
C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/proxy.conf
Config:   including file:
C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/clients.conf
Config:   including file:
C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/snmp.conf
Config:   including file:
C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/eap.conf
Config:   including file:
C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/sql.conf
 main: prefix = ".."
 main: localstatedir = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/var"
 main: logdir = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/log/"
 main: libdir = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/lib"
 main: radacctdir = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/log//radacct"
 main: hostname_lookups = no
 main: max_request_time = 30
 main: cleanup_delay = 5
 main: max_requests = 1024
 main: delete_blocked_requests = 0
 main: port = 1812
 main: allow_core_dumps = no
 main: log_stripped_names = yes
 main: log_file = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/log//radius.log"
 main: log_auth = yes
 main: log_auth_badpass = yes
 main: log_auth_goodpass = yes
 main: pidfile =
"C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/var/run/radiusd/radiusd.pid"
 main: user = "(null)"
 main: group = "(null)"
 main: usercollide = no
 main: lower_user = "no"
 main: lower_pass = "no"
 main: nospace_user = "no"
 main: nospace_pass = "no"
 main: checkrad = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/bin/checkrad"
 main: proxy_requests = yes
 proxy: retry_delay = 5
 proxy: retry_count = 3
 proxy: synchronous = no
 proxy: default_fallback = yes
 proxy: dead_time = 120
 proxy: post_proxy_authorize = yes
 proxy: wake_all_if_all_dead = no
 security: max_attributes = 200
 security: reject_delay = 1
 security: status_server = no
 main: debug_level = 0
read_config_files:  reading dictionary
read_config_files:  reading naslist
Using deprecated naslist file.  Support for this will go away soon.
read_config_files:  reading clients
read_config_files:  reading realms
radiusd:  entering modules setup
Module: Library search path is C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/lib
Module: Loaded exec
 exec: wait = yes
 exec: program = "(null)"
 exec: input_pairs = "request"
 exec: output_pairs = "(null)"
 exec: packet_type = "(null)"
rlm_exec: Wait=yes but no output defined. Did you mean output=none?
Module: Instantiated exec (exec)
Module: Loaded expr
Module: Instantiated expr (expr)
Module: Loaded PAP
 pap: encryption_scheme = "crypt"
Module: Instantiated pap (pap)
Module: Loaded CHAP
Module: Instantiated chap (chap)
Module: Loaded MS-CHAP
 mschap: use_mppe = yes
 mschap: require_encryption = no
 mschap: require_strong = no
 mschap: with_ntdomain_hack = no
 mschap: passwd = "(null)"
 mschap: authtype = "MS-CHAP"
 mschap: ntlm_auth = "(null)"
Module: Instantiated mschap (mschap)
Module: Loaded System
 unix: cache = no
 unix: passwd = "(null)"
 unix: shadow = "(null)"
 unix: group = "(null)"
 unix: radwtmp = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/log//radwtmp"
 unix: usegroup = no
 unix: cache_reload = 600
Module: Instantiated unix (unix)
Module: Loaded eap
 eap: default_eap_type = "tls"
 eap: timer_expire = 60
 eap: ignore_unknown_eap_types = no
 eap: cisco_accounting_username_bug = no
rlm_eap: Loaded and initialized type md5
rlm_eap: Loaded and initialized type leap
 gtc: challenge = "Password: "
 gtc: auth_type = "PAP"
rlm_eap: Loaded and initialized type gtc
 tls: rsa_key_exchange = no
 tls: dh_key_exchange = yes
 tls: rsa_key_length = 512
 tls: dh_key_length = 512
 tls: verify_depth = 0
 tls: CA_path = "(null)"
 tls: pem_file_type = yes
 tls: private_key_file = "C:/Docume~1/radius/rcerts/cert-srv.pem"
 tls: certificate_file = "C:/Docume~1/radius/rcerts/cert-srv.pem"
 tls: CA_file = "C:/Docume~1/radius/rcerts/root.pem"
 tls: private_key_password = "SuperSecretCode"
 tls: dh_file = "C:/Docume~1/radius/rcerts/dh"
 tls: random_file = "C:/Docume~1/radius/rcerts/random"
 tls: fragment_size = 1024
 tls: include_length = yes
 tls: check_crl = no
 tls: check_cert_cn = "%{User-Name}"
rlm_eap_tls: Loading the certificate file as a chain
rlm_eap: Loaded and initialized type tls
 ttls: default_eap_type = "md5"
 ttls: copy_request_to_tunnel = no
 ttls: use_tunneled_reply = yes
rlm_eap: Loaded and initialized type ttls
 peap: default_eap_type = "mschapv2"
 peap: copy_request_to_tunnel = no
 peap: use_tunneled_reply = no
 peap: proxy_tunneled_request_as_eap = yes
rlm_eap: Loaded and initialized type peap
 mschapv2: with_ntdomain_hack = no
rlm_eap: Loaded and initialized type mschapv2
Module: Instantiated eap (eap)
Module: Loaded preprocess
 preprocess: huntgroups =
"C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/hun
tgroups"
 preprocess: hints =
"C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/hints"
 preprocess: with_ascend_hack = no
 preprocess: ascend_channels_per_line = 23
 preprocess: with_ntdomain_hack = no
 preprocess: with_specialix_jetstream_hack = no
 preprocess: with_cisco_vsa_hack = no
Module: Instantiated preprocess (preprocess)
Module: Loaded realm
 realm: format = "suffix"
 realm: delimiter = "@"
 realm: ignore_default = no
 realm: ignore_null = no
Module: Instantiated realm (suffix)
Module: Loaded files
 files: usersfile =
"C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/users"
 files: acctusersfile =
"C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/acct_users"
 files: preproxy_usersfile =
"C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/etc/raddb/preproxy_users"
 files: compat = "no"
Module: Instantiated files (files)
Module: Loaded Acct-Unique-Session-Id
 acct_unique: key = "User-Name, Acct-Session-Id, NAS-IP-Address,
Client-IP-Address, NAS-Port"
Module: Instantiated acct_unique (acct_unique)
Module: Loaded detail
 detail: detailfile =
"C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/log//radacct/%{Client-IP-Address}/d
etail-%Y%m%d"
 detail: detailperm = 384
 detail: dirperm = 493
 detail: locking = no
Module: Instantiated detail (detail)
Module: Loaded radutmp
 radutmp: filename = "C:/Progra~1/FreeRADIUS.net-1.1.1-r0.0.1/log//radutmp"
 radutmp: username = "%{User-Name}"
 radutmp: case_sensitive = yes
 radutmp: check_with_nas = yes
 radutmp: perm = 384
 radutmp: callerid = yes
Module: Instantiated radutmp (radutmp)
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.

rad_recv: Access-Request packet from host 10.1.1.189:1039, id=48, length=143
        User-Name = "shadowwolf"
        NAS-IP-Address = 10.1.1.189
        Connect-Info = "CONNECT 802.11"
        Called-Station-Id = "000fb5905a09"
        Calling-Station-Id = "0014a5104864"
        NAS-Identifier = "ap"
        NAS-Port-Type = Wireless-802.11
        NAS-Port = 14
        NAS-Port-Id = "14"
        Framed-MTU = 1400
        EAP-Message = 0x0201000f01736861646f77776f6c66
        Message-Authenticator = 0x0cfc3dbdb33f6d9f62cbd59c4e849d14
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
  modcall[authorize]: module "preprocess" returns ok for request 0
  modcall[authorize]: module "chap" returns noop for request 0
  modcall[authorize]: module "mschap" returns noop for request 0
    rlm_realm: No '@' in User-Name = "shadowwolf", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[authorize]: module "suffix" returns noop for request 0
  rlm_eap: EAP packet type response id 1 length 15
  rlm_eap: No EAP Start, assuming it's an on-going EAP conversation
  modcall[authorize]: module "eap" returns updated for request 0
    users: Matched entry DEFAULT at line 178
  modcall[authorize]: module "files" returns ok for request 0
modcall: leaving group authorize (returns updated) for request 0
  rad_check_password:  Found Auth-Type EAP
auth: type "EAP"
  Processing the authenticate section of radiusd.conf
modcall: entering group authenticate for request 0
  rlm_eap: EAP Identity
  rlm_eap: processing type tls
 rlm_eap_tls: Requiring client certificate
  rlm_eap_tls: Initiate
  rlm_eap_tls: Start returned 1
  modcall[authenticate]: module "eap" returns handled for request 0
modcall: leaving group authenticate (returns handled) for request 0
Sending Access-Challenge of id 48 to 10.1.1.189 port 1039
        EAP-Message = 0x010200060d20
        Message-Authenticator = 0x00000000000000000000000000000000
        State = 0x6c44d3605cb5a79d23198397347d2bba
Finished request 0
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
rad_recv: Access-Request packet from host 10.1.1.189:1039, id=49, length=226
        User-Name = "shadowwolf"
        NAS-IP-Address = 10.1.1.189
        Connect-Info = "CONNECT 802.11"
        Called-Station-Id = "000fb5905a09"
        Calling-Station-Id = "0014a5104864"
        NAS-Identifier = "ap"
        NAS-Port-Type = Wireless-802.11
        NAS-Port = 14
        NAS-Port-Id = "14"
        Framed-MTU = 1400
        State = 0x6c44d3605cb5a79d23198397347d2bba
        EAP-Message =
0x020200500d800000004616030100410100003d030145283c25a8eae2
7a9fa8512761940517cc1e13455dbded74ed69dfba9118ba3a00001600040005000a00090064
0062
000300060013001200630100
        Message-Authenticator = 0xc1a89b0fc9d91251ff1efed32a5d4ab2
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 1
  modcall[authorize]: module "preprocess" returns ok for request 1
  modcall[authorize]: module "chap" returns noop for request 1
  modcall[authorize]: module "mschap" returns noop for request 1
    rlm_realm: No '@' in User-Name = "shadowwolf", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[authorize]: module "suffix" returns noop for request 1
  rlm_eap: EAP packet type response id 2 length 80
  rlm_eap: No EAP Start, assuming it's an on-going EAP conversation
  modcall[authorize]: module "eap" returns updated for request 1
    users: Matched entry DEFAULT at line 178
  modcall[authorize]: module "files" returns ok for request 1
modcall: leaving group authorize (returns updated) for request 1
  rad_check_password:  Found Auth-Type EAP
auth: type "EAP"
  Processing the authenticate section of radiusd.conf
modcall: entering group authenticate for request 1
  rlm_eap: Request found, released from the list
  rlm_eap: EAP/tls
  rlm_eap: processing type tls
  rlm_eap_tls: Authenticate
  rlm_eap_tls: processing TLS
rlm_eap_tls:  Length Included
  eaptls_verify returned 11
    (other): before/accept initialization
    TLS_accept: before/accept initialization
  rlm_eap_tls: <<< TLS 1.0 Handshake [length 0041], ClientHello
    TLS_accept: SSLv3 read client hello A
  rlm_eap_tls: >>> TLS 1.0 Handshake [length 004a], ServerHello
    TLS_accept: SSLv3 write server hello A
  rlm_eap_tls: >>> TLS 1.0 Handshake [length 025e], Certificate
    TLS_accept: SSLv3 write certificate A
  rlm_eap_tls: >>> TLS 1.0 Handshake [length 00c1], CertificateRequest
    TLS_accept: SSLv3 write certificate request A
    TLS_accept: SSLv3 flush data
    TLS_accept:error in SSLv3 read client certificate A
In SSL Handshake Phase
In SSL Accept mode
  eaptls_process returned 13
  modcall[authenticate]: module "eap" returns handled for request 1
modcall: leaving group authenticate (returns handled) for request 1
Sending Access-Challenge of id 49 to 10.1.1.189 port 1039
        EAP-Message =
0x010303820d8000000378160301004a02000046030145283c2743a408
aa5de69864552c046af9b0bb6e4ec5d083dd730d94289377da2094a65c39b362e5bb81d263c0
afbd
efb6dc85ecb9bc0564708226cab3ea4d2200000400160301025e0b00025a0002570002543082
0250
308201faa00302010202020122300d06092a864886f70d01010505003060310b300906035504
0613
024155310c300a06035504081303514c4431193017060355040a13104d696e636f6d20507479
2e20
4c74642e310b3009060355040b13024353311b30190603550403131253534c6561792064656d
6f20
736572766572301e170d3036313030373032313732355a170d
        EAP-Message =
0x3037313030373032313732355a3081a2310b30090603550406130255
53311730150603550408130e536f757468204361726f6c696e61310e300c0603550407130541
696b
656e31173015060355040a130e4c6f636b65722053797374656d73311a3018060355040b1311
4d65
74616c204661627269636174696f6e31123010060355040313096c6967687477617665312130
1f06
092a864886f70d01090116127a65746f406c6f636b65727379732e766f6430819f300d06092a
8648
86f70d010101050003818d0030818902818100e2056bc302f8b1466a56602016699368280121
58d0
226d3fd02431e962f0acb8540f635f1a9a06e0a9d0843c7615
        EAP-Message =
0x014fe79bfc4bb4d6b15db505d60fe699343794a09eb0b613cb3c4fc9
b090b88c2ad417fbc5104cf428dffeed87b20f683f332970ca36d4961efb5f9e32019d5fe3dd
811a
b715cefbc39dc78a3890701e30190203010001a317301530130603551d25040c300a06082b06
0105
05070301300d06092a864886f70d01010505000341008afb125e6d5e10a665c6d482763ea4af
c56e
59bb72a8fc6e3788a700259d5a72c5450c33d9968a88a3ec349376c4023a591425a20654dbfe
d97a
f2617f4ca44516030100c10d0000b90301020500b300b13081ae310b30090603550406130255
5331
1730150603550408130e536f757468204361726f6c696e6131
        EAP-Message =
0x0e300c0603550407130541696b656e31173015060355040a130e4c6f
636b65722053797374656d73311a3018060355040b13114d6574616c20466162726963617469
6f6e
311e301c060355040313154c6f636b657220536563757269747920526f6f742e3121301f0609
2a86
4886f70d01090116127a65746f406c6f636b65727379732e766f640e000000
        Message-Authenticator = 0x00000000000000000000000000000000
        State = 0x57f6a443bf2f47b815e42769229d1aeb
Finished request 1
Going to the next request
Waking up in 6 seconds...
rad_recv: Access-Request packet from host 10.1.1.189:1039, id=50, length=152
        User-Name = "shadowwolf"
        NAS-IP-Address = 10.1.1.189
        Connect-Info = "CONNECT 802.11"
        Called-Station-Id = "000fb5905a09"
        Calling-Station-Id = "0014a5104864"
        NAS-Identifier = "ap"
        NAS-Port-Type = Wireless-802.11
        NAS-Port = 14
        NAS-Port-Id = "14"
        Framed-MTU = 1400
        State = 0x57f6a443bf2f47b815e42769229d1aeb
        EAP-Message = 0x020300060d00
        Message-Authenticator = 0xe39222cf4fd6f6860c85ffe560aa5428
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 2
  modcall[authorize]: module "preprocess" returns ok for request 2
  modcall[authorize]: module "chap" returns noop for request 2
  modcall[authorize]: module "mschap" returns noop for request 2
    rlm_realm: No '@' in User-Name = "shadowwolf", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[authorize]: module "suffix" returns noop for request 2
  rlm_eap: EAP packet type response id 3 length 6
  rlm_eap: No EAP Start, assuming it's an on-going EAP conversation
  modcall[authorize]: module "eap" returns updated for request 2
    users: Matched entry DEFAULT at line 178
  modcall[authorize]: module "files" returns ok for request 2
modcall: leaving group authorize (returns updated) for request 2
  rad_check_password:  Found Auth-Type EAP
auth: type "EAP"
  Processing the authenticate section of radiusd.conf
modcall: entering group authenticate for request 2
  rlm_eap: Request found, released from the list
  rlm_eap: EAP/tls
  rlm_eap: processing type tls
  rlm_eap_tls: Authenticate
  rlm_eap_tls: processing TLS
rlm_eap_tls: Received EAP-TLS ACK message
  rlm_eap_tls: ack handshake fragment handler
  eaptls_verify returned 1
  eaptls_process returned 13
  modcall[authenticate]: module "eap" returns handled for request 2
modcall: leaving group authenticate (returns handled) for request 2
Sending Access-Challenge of id 50 to 10.1.1.189 port 1039
        EAP-Message = 0x0104000a0d8000000000
        Message-Authenticator = 0x00000000000000000000000000000000
        State = 0xd2f07585b4ad88459f3f0f28a7fa6fb2
Finished request 2
Going to the next request
Waking up in 6 seconds...
--- Walking the entire request list ---
Cleaning up request 0 ID 48 with timestamp 45283c27
Cleaning up request 1 ID 49 with timestamp 45283c27
Cleaning up request 2 ID 50 with timestamp 45283c27
Nothing to do.  Sleeping until we see a request.


-----------


Error 1 is seen if I have Validate Server Certificate check on the XP
Laptop.

--Error 1--
Sat Oct  7 19:35:58 2006 : Error:     TLS_accept:error in SSLv3 read client
certificate A
------


Error 2 is seen if Validate is unchecked on the laptop

--Error 2--
Sat Oct  7 19:34:35 2006 : Error:     TLS_accept:error in SSLv3 read client
certificate A 
Sat Oct  7 19:34:35 2006 : Error: --> verify error:num=20:unable to get
local issuer certificate 
Sat Oct  7 19:34:35 2006 : Error: TLS Alert write:fatal:unknown CA 
Sat Oct  7 19:34:35 2006 : Error:     TLS_accept:error in SSLv3 read client
certificate B 
Sat Oct  7 19:34:35 2006 : Error: rlm_eap_tls: SSL_read failed in a system
call (-1), TLS session fails.
Sat Oct  7 19:34:35 2006 : Auth: Login incorrect: [shadowwolf/<no
User-Password attribute>] (from client netnas port 11 cli 0014a5104864)
-----




More information about the Freeradius-Users mailing list