<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hello!<br><br>I am struggling with a mac-auth-bypass problem with my Cisco 6509s and my FreeRADIUS<br>server. The 6509 sends the radius server the request, FreeRADIUS authenticates it as<br>OK, but yet my port remains in the "authfail" state on the switch. Does anyone have<br>any ideas? Here is my debug output from the radius box:<br><br>The first part is the debug output / freeradius startup, the 2nd part is a request I get<br>from my switch to authenticate some "azbycx" user, so I just added it to users for now,<br>and then the 3rd part is the request/response for my MAC address to be authenticated.<br><br>Thanks for your help!<br><br>(root@nms) % ./radiusd -X<br>FreeRADIUS Version 2.1.6, for host i386-unknown-freebsd7.2, built on Aug 6 2009 at 16:34:56<br>Copyright (C) 1999-2009 The FreeRADIUS server project and contributors.<br>There
is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A<br>PARTICULAR PURPOSE.<br>You may redistribute copies of FreeRADIUS under the terms of the<br>GNU General Public License v2.<br>Starting - reading configuration files ...<br>including configuration file /usr/local/freeradius/etc/raddb/radiusd.conf<br>including configuration file /usr/local/freeradius/etc/raddb/proxy.conf<br>including configuration file /usr/local/freeradius/etc/raddb/clients.conf<br>including files in directory /usr/local/freeradius/etc/raddb/modules/<br>including configuration file /usr/local/freeradius/etc/raddb/modules/acct_unique<br>including configuration file /usr/local/freeradius/etc/raddb/modules/always<br>including configuration file /usr/local/freeradius/etc/raddb/modules/attr_filter<br>including configuration file /usr/local/freeradius/etc/raddb/modules/attr_rewrite<br>including configuration file /usr/local/freeradius/etc/raddb/modules/chap<br>including
configuration file /usr/local/freeradius/etc/raddb/modules/checkval<br>including configuration file /usr/local/freeradius/etc/raddb/modules/counter<br>including configuration file /usr/local/freeradius/etc/raddb/modules/detail<br>including configuration file /usr/local/freeradius/etc/raddb/modules/detail.example.com<br>including configuration file /usr/local/freeradius/etc/raddb/modules/detail.log<br>including configuration file /usr/local/freeradius/etc/raddb/modules/digest<br>including configuration file /usr/local/freeradius/etc/raddb/modules/echo<br>including configuration file /usr/local/freeradius/etc/raddb/modules/etc_group<br>including configuration file /usr/local/freeradius/etc/raddb/modules/exec<br>including configuration file /usr/local/freeradius/etc/raddb/modules/expiration<br>including configuration file /usr/local/freeradius/etc/raddb/modules/expr<br>including configuration file /usr/local/freeradius/etc/raddb/modules/files<br>including
configuration file /usr/local/freeradius/etc/raddb/modules/inner-eap<br>including configuration file /usr/local/freeradius/etc/raddb/modules/ippool<br>including configuration file /usr/local/freeradius/etc/raddb/modules/krb5<br>including configuration file /usr/local/freeradius/etc/raddb/modules/ldap<br>including configuration file /usr/local/freeradius/etc/raddb/modules/linelog<br>including configuration file /usr/local/freeradius/etc/raddb/modules/logintime<br>including configuration file /usr/local/freeradius/etc/raddb/modules/mac2ip<br>including configuration file /usr/local/freeradius/etc/raddb/modules/mac2vlan<br>including configuration file /usr/local/freeradius/etc/raddb/modules/mschap<br>including configuration file /usr/local/freeradius/etc/raddb/modules/otp<br>including configuration file /usr/local/freeradius/etc/raddb/modules/pam<br>including configuration file /usr/local/freeradius/etc/raddb/modules/pap<br>including configuration file
/usr/local/freeradius/etc/raddb/modules/passwd<br>including configuration file /usr/local/freeradius/etc/raddb/modules/perl<br>including configuration file /usr/local/freeradius/etc/raddb/modules/policy<br>including configuration file /usr/local/freeradius/etc/raddb/modules/preprocess<br>including configuration file /usr/local/freeradius/etc/raddb/modules/radutmp<br>including configuration file /usr/local/freeradius/etc/raddb/modules/realm<br>including configuration file /usr/local/freeradius/etc/raddb/modules/smbpasswd<br>including configuration file /usr/local/freeradius/etc/raddb/modules/smsotp<br>including configuration file /usr/local/freeradius/etc/raddb/modules/sql_log<br>including configuration file /usr/local/freeradius/etc/raddb/modules/sqlcounter_expire_on_login<br>including configuration file /usr/local/freeradius/etc/raddb/modules/sradutmp<br>including configuration file /usr/local/freeradius/etc/raddb/modules/unix<br>including
configuration file /usr/local/freeradius/etc/raddb/modules/wimax<br>including configuration file /usr/local/freeradius/etc/raddb/eap.conf<br>including configuration file /usr/local/freeradius/etc/raddb/policy.conf<br>including files in directory /usr/local/freeradius/etc/raddb/sites-enabled/<br>including configuration file /usr/local/freeradius/etc/raddb/sites-enabled/default<br>including configuration file /usr/local/freeradius/etc/raddb/sites-enabled/inner-tunnel<br>including configuration file /usr/local/freeradius/etc/raddb/sites-enabled/control-socket<br>group = radius<br>user = radius<br>including dictionary file /usr/local/freeradius/etc/raddb/dictionary<br>main {<br> prefix = "/usr/local/freeradius"<br> localstatedir = "/usr/local/freeradius/var"<br> logdir = "/var/log/radius"<br>
libdir = "/usr/local/freeradius/lib"<br> radacctdir = "/var/log/radius/radacct"<br> hostname_lookups = yes<br> max_request_time = 20<br> cleanup_delay = 5<br> max_requests = 2048<br> allow_core_dumps = no<br> pidfile = "/var/run/radiusd.pid"<br> checkrad = "/usr/local/freeradius/sbin/checkrad"<br> debug_level = 0<br> proxy_requests = yes<br> log {<br> stripped_names = no<br> auth = yes<br> auth_badpass =
yes<br> auth_goodpass = yes<br> }<br> security {<br> max_attributes = 50<br> reject_delay = 1<br> status_server = yes<br> }<br>}<br>radiusd: #### Loading Realms and Home Servers ####<br> proxy server {<br> retry_delay = 5<br> retry_count = 3<br> default_fallback = no<br> dead_time = 120<br> wake_all_if_all_dead = no<br> }<br> home_server localhost {<br> ipaddr = 127.0.0.1<br> port = 1812<br> type =
"auth"<br> secret = "testing123"<br> response_window = 20<br> max_outstanding = 65536<br> require_message_authenticator = no<br> zombie_period = 40<br> status_check = "status-server"<br> ping_interval = 30<br> check_interval = 30<br> num_answers_to_alive = 3<br> num_pings_to_alive = 3<br> revive_interval = 120<br> status_check_timeout = 4<br> irt = 2<br> mrt =
16<br> mrc = 5<br> mrd = 30<br> }<br> home_server_pool my_auth_failover {<br> type = fail-over<br> home_server = localhost<br> }<br> realm example.com {<br> auth_pool = my_auth_failover<br> }<br> realm LOCAL {<br> }<br>radiusd: #### Loading Clients ####<br> client localhost {<br> ipaddr = 127.0.0.1<br> netmask = 32<br> require_message_authenticator = no<br> secret = "test1111"<br> shortname = "localhost"<br> nastype = "other"<br> }<br> client nhed-nms
{<br> ipaddr = 172.16.0.2<br> netmask = 32<br> require_message_authenticator = no<br> secret = "test1111"<br> shortname = "nhed-nms"<br> nastype = "other"<br> }<br> client Hib_C6K {<br> ipaddr = 172.16.0.1<br> netmask = 32<br> require_message_authenticator = no<br> secret = "test1111"<br> shortname = "Hib_C6K"<br> }<br>radiusd: #### Instantiating modules ####<br> instantiate {<br> Module: Linked to module rlm_exec<br> Module: Instantiating exec<br> exec
{<br> wait = no<br> input_pairs = "request"<br> shell_escape = yes<br> }<br> Module: Linked to module rlm_expr<br> Module: Instantiating expr<br> Module: Linked to module rlm_expiration<br> Module: Instantiating expiration<br> expiration {<br> reply-message = "Password Has Expired "<br> }<br> Module: Linked to module rlm_logintime<br> Module: Instantiating logintime<br> logintime {<br> reply-message = "You are calling outside your allowed timespan "<br> minimum-timeout = 60<br> }<br> }<br>radiusd: #### Loading Virtual Servers ####<br>server inner-tunnel {<br> modules {<br> Module: Checking authenticate {...} for more
modules to load<br> Module: Linked to module rlm_pap<br> Module: Instantiating pap<br> pap {<br> encryption_scheme = "auto"<br> auto_header = no<br> }<br> Module: Linked to module rlm_chap<br> Module: Instantiating chap<br> Module: Linked to module rlm_mschap<br> Module: Instantiating mschap<br> mschap {<br> use_mppe = yes<br> require_encryption = no<br> require_strong = no<br> with_ntdomain_hack = no<br> }<br> Module: Linked to module rlm_unix<br> Module: Instantiating unix<br> unix {<br> radwtmp = "/var/log/radius/radwtmp"<br> }<br> Module: Linked to module rlm_eap<br> Module:
Instantiating eap<br> eap {<br> default_eap_type = "md5"<br> timer_expire = 60<br> ignore_unknown_eap_types = no<br> cisco_accounting_username_bug = no<br> max_sessions = 2048<br> }<br> Module: Linked to sub-module rlm_eap_md5<br> Module: Instantiating eap-md5<br> Module: Linked to sub-module rlm_eap_leap<br> Module: Instantiating eap-leap<br> Module: Linked to sub-module rlm_eap_gtc<br> Module: Instantiating eap-gtc<br> gtc {<br> challenge = "Password: "<br> auth_type = "PAP"<br> }<br> Module: Linked to sub-module rlm_eap_tls<br> Module: Instantiating eap-tls<br> tls
{<br> rsa_key_exchange = no<br> dh_key_exchange = yes<br> rsa_key_length = 512<br> dh_key_length = 512<br> verify_depth = 0<br> pem_file_type = yes<br> private_key_file = "/usr/local/freeradius/etc/raddb/certs/server.pem"<br> certificate_file = "/usr/local/freeradius/etc/raddb/certs/server.pem"<br> CA_file = "/usr/local/freeradius/etc/raddb/certs/ca.pem"<br> private_key_password = "whatever"<br> dh_file = "/usr/local/freeradius/etc/raddb/certs/dh"<br>
random_file = "/usr/local/freeradius/etc/raddb/certs/random"<br> fragment_size = 1024<br> include_length = yes<br> check_crl = no<br> cipher_list = "DEFAULT"<br> make_cert_command = "/usr/local/freeradius/etc/raddb/certs/bootstrap"<br> cache {<br> enable = no<br> lifetime = 24<br> max_entries = 255<br> }<br> }<br> Module: Linked to sub-module rlm_eap_ttls<br> Module: Instantiating eap-ttls<br> ttls {<br> default_eap_type = "md5"<br> copy_request_to_tunnel =
no<br> use_tunneled_reply = no<br> virtual_server = "inner-tunnel"<br> include_length = yes<br> }<br> Module: Linked to sub-module rlm_eap_peap<br> Module: Instantiating eap-peap<br> peap {<br> default_eap_type = "mschapv2"<br> copy_request_to_tunnel = no<br> use_tunneled_reply = no<br> proxy_tunneled_request_as_eap = yes<br> virtual_server = "inner-tunnel"<br> }<br> Module: Linked to sub-module rlm_eap_mschapv2<br> Module: Instantiating eap-mschapv2<br> mschapv2 {<br> with_ntdomain_hack = no<br>
}<br> Module: Checking authorize {...} for more modules to load<br> Module: Linked to module rlm_realm<br> Module: Instantiating suffix<br> realm suffix {<br> format = "suffix"<br> delimiter = "@"<br> ignore_default = no<br> ignore_null = no<br> }<br> Module: Linked to module rlm_files<br> Module: Instantiating files<br> files {<br> usersfile = "/usr/local/freeradius/etc/raddb/users"<br> acctusersfile = "/usr/local/freeradius/etc/raddb/acct_users"<br> preproxy_usersfile = "/usr/local/freeradius/etc/raddb/preproxy_users"<br> compat = "no"<br> }<br> Module: Checking
session {...} for more modules to load<br> Module: Linked to module rlm_radutmp<br> Module: Instantiating radutmp<br> radutmp {<br> filename = "/var/log/radius/radutmp"<br> username = "%{User-Name}"<br> case_sensitive = yes<br> check_with_nas = yes<br> perm = 384<br> callerid = yes<br> }<br> Module: Checking post-proxy {...} for more modules to load<br> Module: Checking post-auth {...} for more modules to load<br> Module: Linked to module rlm_attr_filter<br> Module: Instantiating attr_filter.access_reject<br> attr_filter attr_filter.access_reject {<br> attrsfile =
"/usr/local/freeradius/etc/raddb/attrs.access_reject"<br> key = "%{User-Name}"<br> }<br> } # modules<br>} # server<br>server {<br> modules {<br> Module: Checking authenticate {...} for more modules to load<br> Module: Linked to module rlm_always<br> Module: Instantiating ok<br> always ok {<br> rcode = "ok"<br> simulcount = 0<br> mpp = no<br> }<br> Module: Checking authorize {...} for more modules to load<br> Module: Linked to module rlm_preprocess<br> Module: Instantiating preprocess<br> preprocess {<br> huntgroups = "/usr/local/freeradius/etc/raddb/huntgroups"<br> hints =
"/usr/local/freeradius/etc/raddb/hints"<br> with_ascend_hack = no<br> ascend_channels_per_line = 23<br> with_ntdomain_hack = no<br> with_specialix_jetstream_hack = no<br> with_cisco_vsa_hack = no<br> with_alvarion_vsa_hack = no<br> }<br> Module: Checking preacct {...} for more modules to load<br> Module: Linked to module rlm_acct_unique<br> Module: Instantiating acct_unique<br> acct_unique {<br> key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"<br> }<br> Module: Checking accounting {...} for more modules to load<br> Module: Linked to module rlm_detail<br> Module: Instantiating
detail<br> detail {<br> detailfile = "/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d"<br> header = "%t"<br> detailperm = 384<br> dirperm = 493<br> locking = no<br> log_packet_header = no<br> }<br> Module: Instantiating attr_filter.accounting_response<br> attr_filter attr_filter.accounting_response {<br> attrsfile = "/usr/local/freeradius/etc/raddb/attrs.accounting_response"<br> key = "%{User-Name}"<br> }<br> Module: Checking session {...} for more modules to load<br> Module: Checking post-proxy {...} for more modules to load<br> Module: Checking post-auth {...} for
more modules to load<br> } # modules<br>} # server<br>radiusd: #### Opening IP addresses and Ports ####<br>listen {<br> type = "auth"<br> ipaddr = 172.16.0.2<br> port = 0<br>}<br>listen {<br> type = "acct"<br> ipaddr = 172.16.0.2<br> port = 0<br>}<br>listen {<br> type = "control"<br> listen {<br> socket = "/var/tmp/radiusd.sock"<br> }<br>}<br>Listening on authentication address 172.16.0.2 port 1812<br>Listening on accounting address 172.16.0.2 port 1813<br>Listening on command file /var/tmp/radiusd.sock<br>Listening on proxy address 172.16.0.2 port 1814<br>Ready to process
requests.<br><br>==============================================================================================================<br><br>rad_recv: Access-Request packet from host 172.16.0.1 port 1024, id=85, length=65<br> User-Name = "azbycx"<br> NAS-IP-Address = 172.16.0.1<br> EAP-Message = 0x0255000b01617a62796378<br> Message-Authenticator = 0x37608640b025ad4025d8c51350583edd<br>+- entering group authorize {...}<br>++? if ((Service-Type == 'Call-Check') || (User-Name =~ /^%{Calling-Station-ID}$/i))<br> (Attribute Service-Type was not found)<br>++[preprocess] returns ok<br>++[chap] returns noop<br>++[mschap] returns noop<br>[suffix] No '@' in User-Name = "azbycx", looking up realm NULL<br>[suffix] No such realm "NULL"<br>++[suffix] returns noop<br>[eap] EAP packet type
response id 85 length 11<br>[eap] No EAP Start, assuming it's an on-going EAP conversation<br>++[eap] returns updated<br>++[unix] returns notfound<br>[files] users: Matched entry azbycx at line 1<br>++[files] returns ok<br>++[expiration] returns noop<br>++[logintime] returns noop<br>[pap] Found existing Auth-Type, not changing it.<br>++[pap] returns noop<br>Found Auth-Type = EAP<br>+- entering group authenticate {...}<br>[eap] EAP Identity<br>[eap] processing type md5<br>rlm_eap_md5: Issuing Challenge<br>++[eap] returns handled<br>Sending Access-Challenge of id 85 to 172.16.0.1 port 1024<br> EAP-Message = 0x0156001604106fa6792845d7180ceea44d483cb7e3d7<br> Message-Authenticator = 0x00000000000000000000000000000000<br> State = 0x087297780824931641b6155be504b595<br>Finished request 0.<br>Going to the next request<br>Waking up in 4.9
seconds.<br>Cleaning up request 0 ID 85 with timestamp +4<br>Ready to process requests.<br><br>==============================================================================================================<br><br>rad_recv: Access-Request packet from host 172.16.0.1 port 1024, id=85, length=100<br> NAS-IP-Address = 172.16.0.1<br> NAS-Port = 515<br> Service-Type = Call-Check<br> Called-Station-Id = "00-50-3e-97-53-ff"<br> Calling-Station-Id = "00-1c-23-12-3a-73"<br> NAS-Port-Type = Ethernet<br> Message-Authenticator = 0xcbf19506604c664a4b885a8c5a47a9a6<br>+- entering group authorize {...}<br>++? if ((Service-Type == 'Call-Check') || (User-Name =~
/^%{Calling-Station-ID}$/i))<br>?? Evaluating (Service-Type == 'Call-Check') -> TRUE<br>?? Skipping (User-Name =~ /^%{Calling-Station-ID}$/i)<br>++? if ((Service-Type == 'Call-Check') || (User-Name =~ /^%{Calling-Station-ID}$/i)) -> TRUE<br>++- entering if ((Service-Type == 'Call-Check') || (User-Name =~ /^%{Calling-Station-ID}$/i)) {...}<br> expand: %{Calling-Station-ID} -> 00-1c-23-12-3a-73<br> expand: %{Calling-Station-ID} -> 00-1c-23-12-3a-73<br> expand: %{Calling-Station-ID} -> 00-1c-23-12-3a-73<br>+++[request] returns notfound<br>++- if ((Service-Type == 'Call-Check') || (User-Name =~ /^%{Calling-Station-ID}$/i)) returns notfound<br>++[preprocess] returns ok<br>++[chap] returns noop<br>++[mschap] returns noop<br>[suffix] No '@' in User-Name = "00-1c-23-12-3a-73", looking up realm NULL<br>[suffix] No such
realm "NULL"<br>++[suffix] returns noop<br>[eap] No EAP-Message, not doing EAP<br>++[eap] returns noop<br>++[unix] returns notfound<br>[files] users: Matched entry 00-1c-23-12-3a-73 at line 3<br>++[files] returns ok<br>++[expiration] returns noop<br>++[logintime] returns noop<br>++[pap] returns updated<br>Found Auth-Type = PAP<br>+- entering group PAP {...}<br>[pap] login attempt with password "00-1c-23-12-3a-73"<br>[pap] Using clear text password "00-1c-23-12-3a-73"<br>[pap] User authenticated successfully<br>++[pap] returns ok<br>Login OK: [00-1c-23-12-3a-73/00-1c-23-12-3a-73] (from client Hib_C6K port 515 cli 00-1c-23-12-3a-73)<br>+- entering group post-auth {...}<br>++[exec] returns noop<br>Sending Access-Accept of id 85 to 172.16.0.1 port 1024<br> Tunnel-Type:0 = VLAN<br> Tunnel-Medium-Type:0 = IEEE-802<br>
Tunnel-Private-Group-Id:0 = "237"<br>Finished request 1.<br>Going to the next request<br>Waking up in 4.9 seconds.<br>Cleaning up request 1 ID 85 with timestamp +16<br>Ready to process requests.<br><br><br></td></tr></table><br>