radiusd startup failure for EAP-AKA configuration
Hi, Relatively new to freeradius. Have had success testing an EAP-MD5 and EAP-TLS configuration. I have patched freeradius-server-2.1.10 to add EAP-AKA support but am experiencing a radiusd startup failure as follows: radiusd -X FreeRADIUS Version 2.1.10, for host x86_64-unknown-linux-gnu, built on Feb 2 2013 at 14:23:04 Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License v2. Starting - reading configuration files ... including configuration file /usr/local/etc/raddb/radiusd.conf including configuration file /usr/local/etc/raddb/proxy.conf including configuration file /usr/local/etc/raddb/clients.conf including files in directory /usr/local/etc/raddb/modules/ including configuration file /usr/local/etc/raddb/modules/dynamic_clients including configuration file /usr/local/etc/raddb/modules/attr_rewrite including configuration file /usr/local/etc/raddb/modules/perl including configuration file /usr/local/etc/raddb/modules/sql_log including configuration file /usr/local/etc/raddb/modules/sradutmp including configuration file /usr/local/etc/raddb/modules/passwd including configuration file /usr/local/etc/raddb/modules/realm including configuration file /usr/local/etc/raddb/modules/mac2vlan including configuration file /usr/local/etc/raddb/modules/counter including configuration file /usr/local/etc/raddb/modules/checkval including configuration file /usr/local/etc/raddb/modules/ldap including configuration file /usr/local/etc/raddb/modules/detail including configuration file /usr/local/etc/raddb/modules/expiration including configuration file /usr/local/etc/raddb/modules/sqlcounter_expire_on_login including configuration file /usr/local/etc/raddb/modules/exec including configuration file /usr/local/etc/raddb/modules/files including configuration file /usr/local/etc/raddb/modules/pap including configuration file /usr/local/etc/raddb/modules/detail.log including configuration file /usr/local/etc/raddb/modules/policy including configuration file /usr/local/etc/raddb/modules/echo including configuration file /usr/local/etc/raddb/modules/detail.example.com including configuration file /usr/local/etc/raddb/modules/krb5 including configuration file /usr/local/etc/raddb/modules/smsotp including configuration file /usr/local/etc/raddb/modules/linelog including configuration file /usr/local/etc/raddb/modules/logintime including configuration file /usr/local/etc/raddb/modules/unix including configuration file /usr/local/etc/raddb/modules/chap including configuration file /usr/local/etc/raddb/modules/opendirectory including configuration file /usr/local/etc/raddb/modules/wimax including configuration file /usr/local/etc/raddb/modules/digest including configuration file /usr/local/etc/raddb/modules/preprocess including configuration file /usr/local/etc/raddb/modules/ntlm_auth including configuration file /usr/local/etc/raddb/modules/attr_filter including configuration file /usr/local/etc/raddb/modules/cui including configuration file /usr/local/etc/raddb/modules/always including configuration file /usr/local/etc/raddb/modules/otp including configuration file /usr/local/etc/raddb/modules/expr including configuration file /usr/local/etc/raddb/modules/acct_unique including configuration file /usr/local/etc/raddb/modules/smbpasswd including configuration file /usr/local/etc/raddb/modules/inner-eap including configuration file /usr/local/etc/raddb/modules/radutmp including configuration file /usr/local/etc/raddb/modules/mac2ip including configuration file /usr/local/etc/raddb/modules/pam including configuration file /usr/local/etc/raddb/modules/ippool including configuration file /usr/local/etc/raddb/modules/etc_group including configuration file /usr/local/etc/raddb/modules/mschap including configuration file /usr/local/etc/raddb/eap.conf including configuration file /usr/local/etc/raddb/policy.conf including files in directory /usr/local/etc/raddb/sites-enabled/ including configuration file /usr/local/etc/raddb/sites-enabled/default including configuration file /usr/local/etc/raddb/sites-enabled/control-socket including configuration file /usr/local/etc/raddb/sites-enabled/inner-tunnel main { allow_core_dumps = no } including dictionary file /usr/local/etc/raddb/dictionary main { prefix = "/usr/local" localstatedir = "/usr/local/var" logdir = "/usr/local/var/log/radius" libdir = "/usr/local/lib" radacctdir = "/usr/local/var/log/radius/radacct" hostname_lookups = no max_request_time = 30 cleanup_delay = 5 max_requests = 1024 pidfile = "/usr/local/var/run/radiusd/radiusd.pid" checkrad = "/usr/local/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = no auth_badpass = no auth_goodpass = no } security { max_attributes = 200 reject_delay = 1 status_server = yes } } radiusd: #### Loading Realms and Home Servers #### proxy server { retry_delay = 5 retry_count = 3 default_fallback = no dead_time = 120 wake_all_if_all_dead = no } home_server localhost { ipaddr = 127.0.0.1 port = 1812 type = "auth" secret = "testing123" response_window = 20 max_outstanding = 65536 require_message_authenticator = yes zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 num_answers_to_alive = 3 num_pings_to_alive = 3 revive_interval = 120 status_check_timeout = 4 irt = 2 mrt = 16 mrc = 5 mrd = 30 } home_server_pool my_auth_failover { type = fail-over home_server = localhost } realm example.com { auth_pool = my_auth_failover } realm LOCAL { } radiusd: #### Loading Clients #### client localhost { ipaddr = 127.0.0.1 require_message_authenticator = no secret = "testing123" nastype = "other" } radiusd: #### Instantiating modules #### instantiate { Module: Linked to module rlm_exec Module: Instantiating module "exec" from file /usr/local/etc/raddb/modules/exec exec { wait = no input_pairs = "request" shell_escape = yes } Module: Linked to module rlm_expr Module: Instantiating module "expr" from file /usr/local/etc/raddb/modules/expr Module: Linked to module rlm_expiration Module: Instantiating module "expiration" from file /usr/local/etc/raddb/modules/expiration expiration { reply-message = "Password Has Expired " } Module: Linked to module rlm_logintime Module: Instantiating module "logintime" from file /usr/local/etc/raddb/modules/logintime logintime { reply-message = "You are calling outside your allowed timespan " minimum-timeout = 60 } } radiusd: #### Loading Virtual Servers #### server inner-tunnel { # from file /usr/local/etc/raddb/sites-enabled/inner-tunnel modules { Module: Checking authenticate {...} for more modules to load Module: Linked to module rlm_pap Module: Instantiating module "pap" from file /usr/local/etc/raddb/modules/pap pap { encryption_scheme = "auto" auto_header = no } Module: Linked to module rlm_chap Module: Instantiating module "chap" from file /usr/local/etc/raddb/modules/chap Module: Linked to module rlm_mschap Module: Instantiating module "mschap" from file /usr/local/etc/raddb/modules/mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = no } Module: Linked to module rlm_unix Module: Instantiating module "unix" from file /usr/local/etc/raddb/modules/unix unix { radwtmp = "/usr/local/var/log/radius/radwtmp" } Module: Linked to module rlm_eap Module: Instantiating module "eap" from file /usr/local/etc/raddb/eap.conf eap { default_eap_type = "aka" timer_expire = 60 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 4096 } Module: Linked to sub-module rlm_eap_md5 Module: Instantiating eap-md5 Module: Linked to sub-module rlm_eap_aka Module: Instantiating eap-aka Module: Linked to sub-module rlm_eap_sim Module: Instantiating eap-sim Module: Linked to sub-module rlm_eap_leap Module: Instantiating eap-leap Module: Linked to sub-module rlm_eap_gtc Module: Instantiating eap-gtc gtc { challenge = "Password: " auth_type = "PAP" } Module: Linked to sub-module rlm_eap_tls Module: Instantiating eap-tls tls { rsa_key_exchange = no dh_key_exchange = yes rsa_key_length = 512 dh_key_length = 512 verify_depth = 0 CA_path = "/usr/local/etc/raddb/certs" pem_file_type = yes private_key_file = "/usr/local/etc/raddb/certs/server.pem" certificate_file = "/usr/local/etc/raddb/certs/server.pem" CA_file = "/usr/local/etc/raddb/certs/ca.pem" private_key_password = "whatever" dh_file = "/usr/local/etc/raddb/certs/dh" random_file = "/usr/local/etc/raddb/certs/random" fragment_size = 1024 include_length = yes check_crl = no cipher_list = "DEFAULT" make_cert_command = "/usr/local/etc/raddb/certs/bootstrap" cache { enable = no lifetime = 24 max_entries = 255 } verify { } } Module: Linked to sub-module rlm_eap_ttls Module: Instantiating eap-ttls ttls { default_eap_type = "md5" copy_request_to_tunnel = no use_tunneled_reply = no virtual_server = "inner-tunnel" include_length = yes } Module: Linked to sub-module rlm_eap_peap Module: Instantiating eap-peap peap { default_eap_type = "mschapv2" copy_request_to_tunnel = no use_tunneled_reply = no proxy_tunneled_request_as_eap = yes virtual_server = "inner-tunnel" } Module: Linked to sub-module rlm_eap_mschapv2 Module: Instantiating eap-mschapv2 mschapv2 { with_ntdomain_hack = no } Module: Checking authorize {...} for more modules to load Module: Linked to module rlm_realm Module: Instantiating module "suffix" from file /usr/local/etc/raddb/modules/realm realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } Module: Linked to module rlm_files Module: Instantiating module "files" from file /usr/local/etc/raddb/modules/files files { usersfile = "/usr/local/etc/raddb/users" acctusersfile = "/usr/local/etc/raddb/acct_users" preproxy_usersfile = "/usr/local/etc/raddb/preproxy_users" compat = "no" } /usr/local/etc/raddb/users[3]: Parse error (check) for entry akauser@domain: Unknown value AKA for attribute EAP-Type Errors reading /usr/local/etc/raddb/users /usr/local/etc/raddb/modules/files[7]: Instantiation failed for module "files" /usr/local/etc/raddb/sites-enabled/inner-tunnel[124]: Failed to load module "files". /usr/local/etc/raddb/sites-enabled/inner-tunnel[47]: Errors parsing authorize section. Struggling with determining what is missing in my configuration that might be causing this issue. I see that the above error is coming from src/lib/valuepair.c but am having difficulty determining the root cause. I've read doc and man pages but so far cannot spot the problem. I've placed the raddb directory under git version control to easily track my changes. These are the changes I have made to the freeradius delivered configuration: [root@x4200 raddb]# git diff dictionary diff --git a/dictionary b/dictionary index 8de4d63..e26b7d7 100644 --- a/dictionary +++ b/dictionary @@ -30,3 +30,10 @@ $INCLUDE /usr/local/share/freeradius/dictionary #ATTRIBUTE My-Local-String 3000 string #ATTRIBUTE My-Local-IPAddr 3001 ipaddr #ATTRIBUTE My-Local-Integer 3002 integer + +ATTRIBUTE EAP-Type-AKA 3100 octets +ATTRIBUTE EAP-Sim-AUTN 3101 octets +ATTRIBUTE EAP-Aka-IK 3102 octets +ATTRIBUTE EAP-Aka-CK 3103 octets +ATTRIBUTE EAP-Sim-RES 3104 octets + [root@x4200 raddb]# [root@x4200 raddb]# git diff eap.conf diff --git a/eap.conf b/eap.conf index b34acbe..319bdbe 100644 --- a/eap.conf +++ b/eap.conf @@ -27,7 +27,8 @@ # then that EAP type takes precedence over the # default type configured here. # - default_eap_type = md5 + #default_eap_type = md5 + default_eap_type = aka # A list is maintained to correlate EAP-Response # packets with EAP-Request packets. After a @@ -74,7 +75,10 @@ # md5 { } - + aka { + } + sim { + } # Cisco LEAP # # We do not recommend using LEAP in new deployments. See: [root@x4200 raddb]# git diff users diff --git a/users b/users index 1c17b50..300ec5d 100644 --- a/users +++ b/users @@ -1,3 +1,7 @@ +testing Cleartext-Password := "password" + +akauser@domain Cleartext-Password := "ipsecsecrets", Auth-Type := EAP, EAP-Type := AKA, EAP-Sim-AUTN = 0xa0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0, EAP-Aka-IK = 0x494b494b494b494b494b494b494b494b, EAP-Aka-CK = 0x434b434b434b434b434b434b434b434b, EAP-Sim-RES = 0x52455352455352455352455352455352, EAP-Sim-RAND = 0xe0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 + # # Please read the documentation file ../doc/processing_users_file, # or 'man 5 users' (after installing the server) for more information. @@ -83,6 +87,16 @@ # Framed-MTU = 1500, # Framed-Compression = Van-Jacobsen-TCP-IP + + +#akauser@domain Auth-Type := EAP, EAP-Type := AKA +# EAP-Sim-AUTN = 0xa0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0, +# EAP-Aka-IK = 0x494b494b494b494b494b494b494b494b, +# EAP-Aka-CK = 0x434b434b434b434b434b434b434b434b, +# EAP-Sim-RES = 0x52455352455352455352455352455352, +# EAP-Sim-RAND = 0xe0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 + + # # This is an entry for a user with a space in their name. # Note the double quotes surrounding the name. Thanks, Mark
Hi,
Relatively new to freeradius. Have had success testing an EAP-MD5 and EAP-TLS configuration. I have patched freeradius-server-2.1.10 to add EAP-AKA support but am experiencing a radiusd startup failure ^^^^^^^^^^^^^^^^^^^^^^
I would assume that something is not right with your EAP AKA patch alan
Mark Sincerbox wrote:
Relatively new to freeradius. Have had success testing an EAP-MD5 and EAP-TLS configuration. I have patched freeradius-server-2.1.10 to add EAP-AKA support but am experiencing a radiusd startup failure as follows:
If you're patching the code... it helps to understand how it works. And where did you get the patch? You're asking us to support some un-named third party software? Why not go ask the authors of the patch why their software doesn't work?
/usr/local/etc/raddb/users[3]: Parse error (check) for entry akauser@domain: Unknown value AKA for attribute EAP-Type
Hmm.. see share/dictionary.freeradius.internal. It has "VALUE EAP-Type UTMS 23". That looks to be wrong. It should be AKA.
Errors reading /usr/local/etc/raddb/users /usr/local/etc/raddb/modules/files[7]: Instantiation failed for module "files" /usr/local/etc/raddb/sites-enabled/inner-tunnel[124]: Failed to load module "files". /usr/local/etc/raddb/sites-enabled/inner-tunnel[47]: Errors parsing authorize section.
Struggling with determining what is missing in my configuration that might be causing this issue. I see that the above error is coming from src/lib/valuepair.c but am having difficulty determining the root cause. I've read doc and man pages but so far cannot spot the problem.
Don't look at the source. Look at the dictionaries.
+ATTRIBUTE EAP-Type-AKA 3100 octets +ATTRIBUTE EAP-Sim-AUTN 3101 octets +ATTRIBUTE EAP-Aka-IK 3102 octets +ATTRIBUTE EAP-Aka-CK 3103 octets +ATTRIBUTE EAP-Sim-RES 3104 octets
Don't do that. It's not necessary.
+#akauser@domain Auth-Type := EAP, EAP-Type := AKA
Delete "EAP-Type := AKA". It's not necessary. Alan DeKok.
participants (3)
-
A.L.M.Buxey@lboro.ac.uk -
Alan DeKok -
Mark Sincerbox