Configuration trouble (2.1.8 for use with WiMAX)

Sumedh Sathaye sathaye at us.ibm.com
Wed May 12 20:49:52 CEST 2010



Dear all,

I am trying to use FreeRadius 2.1.8 for AAA in a wimax network. The problem
I am facing is that the WiMAX-MSK keys are not generated by FreeRadius. Can
someone help me figure out what I am not doing OR doing incorrectly?

I have configured the "raddb/sites-available/default" and
"raddb/modules/wimax" files per instructions included in the files
themselves. For reference, here are the configuration stanzas in the
post-auth section of "default":

update request {
        WiMAX-MN-NAI = "%{User-Name}"
}
update reply {
	 WiMAX-FA-RK-Key = 0x00
	 WiMAX-MSK = "%{EAP-MSK}"
}
wimax

Run-log from "radiusd -X" is also included at the end of this message. Here
is the message that indicates that EAP is not computing MSK and EMSK:
[wimax] No EAP-MSK or EAP-EMSK.  Cannot create WiMAX keys.

Thank you in advance, and I apologize if this question has been answered
before -- I did not find answers/pointers in the FAQ or the Wiki.

Best Regards,
Sumedh

----------------------------------------------
FreeRADIUS Version 2.1.8, for host x86_64-unknown-linux-gnu, built on May
11 2010 at 23:50:30
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/acct_unique
including configuration file /usr/local/etc/raddb/modules/always
including configuration file /usr/local/etc/raddb/modules/attr_filter
including configuration file /usr/local/etc/raddb/modules/attr_rewrite
including configuration file /usr/local/etc/raddb/modules/chap
including configuration file /usr/local/etc/raddb/modules/checkval
including configuration file /usr/local/etc/raddb/modules/counter
including configuration file /usr/local/etc/raddb/modules/cui
including configuration file /usr/local/etc/raddb/modules/detail
including configuration
file /usr/local/etc/raddb/modules/detail.example.com
including configuration file /usr/local/etc/raddb/modules/detail.log
including configuration file /usr/local/etc/raddb/modules/digest
including configuration file /usr/local/etc/raddb/modules/echo
including configuration file /usr/local/etc/raddb/modules/etc_group
including configuration file /usr/local/etc/raddb/modules/exec
including configuration file /usr/local/etc/raddb/modules/expiration
including configuration file /usr/local/etc/raddb/modules/expr
including configuration file /usr/local/etc/raddb/modules/files
including configuration file /usr/local/etc/raddb/modules/inner-eap
including configuration file /usr/local/etc/raddb/modules/ippool
including configuration file /usr/local/etc/raddb/modules/krb5
including configuration file /usr/local/etc/raddb/modules/ldap
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/mac2ip
including configuration file /usr/local/etc/raddb/modules/mac2vlan
including configuration file /usr/local/etc/raddb/modules/mschap
including configuration file /usr/local/etc/raddb/modules/ntlm_auth
including configuration file /usr/local/etc/raddb/modules/otp
including configuration file /usr/local/etc/raddb/modules/pam
including configuration file /usr/local/etc/raddb/modules/pap
including configuration file /usr/local/etc/raddb/modules/passwd
including configuration file /usr/local/etc/raddb/modules/perl
including configuration file /usr/local/etc/raddb/modules/policy
including configuration file /usr/local/etc/raddb/modules/preprocess
including configuration file /usr/local/etc/raddb/modules/radutmp
including configuration file /usr/local/etc/raddb/modules/realm
including configuration file /usr/local/etc/raddb/modules/smbpasswd
including configuration file /usr/local/etc/raddb/modules/smsotp
including configuration file /usr/local/etc/raddb/modules/sql_log
including configuration
file /usr/local/etc/raddb/modules/sqlcounter_expire_on_login
including configuration file /usr/local/etc/raddb/modules/sradutmp
including configuration file /usr/local/etc/raddb/modules/unix
including configuration file /usr/local/etc/raddb/modules/wimax
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/inner-tunnel
including configuration
file /usr/local/etc/raddb/sites-enabled/control-socket
main {
		 allow_core_dumps = no
}
including dictionary file /usr/local/etc/raddb/dictionary
main {
		 prefix = "/usr/local"
		 localstatedir = "/var"
		 logdir = "/var/log/radius"
		 libdir = "/usr/local/lib"
		 radacctdir = "/var/log/radius/radacct"
		 hostname_lookups = no
		 max_request_time = 30
		 cleanup_delay = 5
		 max_requests = 1024
		 pidfile = "/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 = no
		 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 exec
  exec {
		 wait = no
		 input_pairs = "request"
		 shell_escape = yes
  }
 Module: Linked to module rlm_expr
 Module: Instantiating expr
 Module: Linked to module rlm_expiration
 Module: Instantiating expiration
  expiration {
		 reply-message = "Password Has Expired  "
  }
 Module: Linked to module rlm_logintime
 Module: Instantiating logintime
  logintime {
		 reply-message = "You are calling outside your allowed timespan
"
		 minimum-timeout = 60
  }
 }
radiusd: #### Loading Virtual Servers ####
server inner-tunnel {
 modules {
 Module: Checking authenticate {...} for more modules to load
 Module: Linked to module rlm_pap
 Module: Instantiating pap
  pap {
		 encryption_scheme = "auto"
		 auto_header = no
  }
 Module: Linked to module rlm_chap
 Module: Instantiating chap
 Module: Linked to module rlm_mschap
 Module: Instantiating mschap
  mschap {
		 use_mppe = yes
		 require_encryption = no
		 require_strong = no
		 with_ntdomain_hack = no
  }
 Module: Linked to module rlm_unix
 Module: Instantiating unix
  unix {
		 radwtmp = "/var/log/radius/radwtmp"
  }
 Module: Linked to module rlm_eap
 Module: Instantiating eap
  eap {
		 default_eap_type = "md5"
		 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_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
		 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
    }
   }
 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 suffix
  realm suffix {
		 format = "suffix"
		 delimiter = "@"
		 ignore_default = no
		 ignore_null = no
  }
 Module: Linked to module rlm_files
 Module: Instantiating 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"
  }
 Module: Checking session {...} for more modules to load
 Module: Linked to module rlm_radutmp
 Module: Instantiating radutmp
  radutmp {
		 filename = "/var/log/radius/radutmp"
		 username = "%{User-Name}"
		 case_sensitive = yes
		 check_with_nas = yes
		 perm = 384
		 callerid = yes
  }
 Module: Checking post-proxy {...} for more modules to load
 Module: Checking post-auth {...} for more modules to load
 Module: Linked to module rlm_attr_filter
 Module: Instantiating attr_filter.access_reject
  attr_filter attr_filter.access_reject {
		 attrsfile = "/usr/local/etc/raddb/attrs.access_reject"
		 key = "%{User-Name}"
  }
 } # modules
} # server
server {
 modules {
 Module: Checking authenticate {...} for more modules to load
 Module: Checking authorize {...} for more modules to load
 Module: Linked to module rlm_preprocess
 Module: Instantiating preprocess
  preprocess {
		 huntgroups = "/usr/local/etc/raddb/huntgroups"
		 hints = "/usr/local/etc/raddb/hints"
		 with_ascend_hack = no
		 ascend_channels_per_line = 23
		 with_ntdomain_hack = no
		 with_specialix_jetstream_hack = no
		 with_cisco_vsa_hack = no
		 with_alvarion_vsa_hack = no
  }
 Module: Checking preacct {...} for more modules to load
 Module: Linked to module rlm_acct_unique
 Module: Instantiating acct_unique
  acct_unique {
		 key = "User-Name, Acct-Session-Id, NAS-IP-Address,
Client-IP-Address, NAS-Port"
  }
 Module: Checking accounting {...} for more modules to load
 Module: Linked to module rlm_detail
 Module: Instantiating detail
  detail {
		 detailfile =
"/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d"
		 header = "%t"
		 detailperm = 384
		 dirperm = 493
		 locking = no
		 log_packet_header = no
  }
 Module: Instantiating attr_filter.accounting_response
  attr_filter attr_filter.accounting_response {
		 attrsfile = "/usr/local/etc/raddb/attrs.accounting_response"
		 key = "%{User-Name}"
  }
 Module: Checking session {...} for more modules to load
 Module: Checking post-proxy {...} for more modules to load
 Module: Checking post-auth {...} for more modules to load
 Module: Linked to module rlm_wimax
 Module: Instantiating wimax
  wimax {
		 delete_mppe_keys = no
  }
 } # modules
} # server
radiusd: #### Opening IP addresses and Ports ####
listen {
		 type = "auth"
		 ipaddr = *
		 port = 0
}
listen {
		 type = "acct"
		 ipaddr = *
		 port = 0
}
listen {
		 type = "control"
 listen {
		 socket = "/var/run/radiusd/radiusd.sock"
 }
}
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1 port 33946, id=0,
length=99
		 NAS-IP-Address = 127.0.0.1
		 NAS-Port = 0
		 Service-Type = Authenticate-Only
		 User-Name = "00:11:22:33:44:55"
		 EAP-Message = 0x020100160130303a31313a32323a33333a34343a3535
		 Message-Authenticator = 0xfd69faa6c99f7a3370053df2352bf710
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
[suffix] No '@' in User-Name = "00:11:22:33:44:55", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] EAP packet type response id 1 length 22
[eap] No EAP Start, assuming it's an on-going EAP conversation
++[eap] returns updated
++[unix] returns notfound
[files] users: Matched entry 00:11:22:33:44:55 at line 50
++[files] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Found existing Auth-Type, not changing it.
++[pap] returns noop
Found Auth-Type = EAP
+- entering group authenticate {...}
[eap] EAP Identity
[eap] processing type md5
rlm_eap_md5: Issuing Challenge
++[eap] returns handled
Sending Access-Challenge of id 0 to 127.0.0.1 port 33946
		 EAP-Message = 0x0102001604106bbf07a4c14f3a8827abfc156663de53
		 Message-Authenticator = 0x00000000000000000000000000000000
		 State = 0x6657d5226655d142401be8626f19b077
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Access-Request packet from host 127.0.0.1 port 33946, id=1,
length=117
		 NAS-IP-Address = 127.0.0.1
		 NAS-Port = 0
		 Service-Type = Authenticate-Only
		 User-Name = "00:11:22:33:44:55"
		 State = 0x6657d5226655d142401be8626f19b077
		 EAP-Message = 0x020200160410c5ef19bc837126c1f52cff9375b3dfbd
		 Message-Authenticator = 0x4bd0892e19ab27690245b2a54eb0039a
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
[suffix] No '@' in User-Name = "00:11:22:33:44:55", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] EAP packet type response id 2 length 22
[eap] No EAP Start, assuming it's an on-going EAP conversation
++[eap] returns updated
++[unix] returns notfound
[files] users: Matched entry 00:11:22:33:44:55 at line 50
++[files] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Found existing Auth-Type, not changing it.
++[pap] returns noop
Found Auth-Type = EAP
+- entering group authenticate {...}
[eap] Request found, released from the list
[eap] EAP/md5
[eap] processing type md5
[eap] Freeing handler
++[eap] returns ok
+- entering group post-auth {...}
++[exec] returns noop
		 expand: %{User-Name} -> 00:11:22:33:44:55
++[request] returns noop
		 expand: %{EAP-MSK} ->
++[reply] returns noop
[wimax] No EAP-MSK or EAP-EMSK.  Cannot create WiMAX keys.
++[wimax] returns noop
Sending Access-Accept of id 1 to 127.0.0.1 port 33946
		 EAP-Message = 0x03020004
		 Message-Authenticator = 0x00000000000000000000000000000000
		 User-Name = "00:11:22:33:44:55"
		 WiMAX-FA-RK-Key = 0x00
		 WiMAX-MSK = 0x
Finished request 1.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 0 with timestamp +119
Cleaning up request 1 ID 1 with timestamp +119
Ready to process requests.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20100512/7acc8974/attachment.html>


More information about the Freeradius-Users mailing list