<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="+1">Greetings,<br>
<br>
I installed a fresh copy of FreeRadius v 2.1.7 on CentOS 5</font>.  <big>Ran
radtest locally as well as  remotely and it works great.  Now I want to
point the server to my /etc/shadow file which lives on the same
machine.  I have not made any changes to the default config except to
change the group ownership of my shadow file to radiusd so the radius
daemon can access it.<br>
<br>
<big>On startup here is the output:</big><br>
<br>
[root@labprinter raddb]# radiusd -X<br>
FreeRADIUS Version 2.1.7, for host x86_64-redhat-linux-gnu, built on
Mar 31 2010 at 00:14:28<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 /etc/raddb/radiusd.conf<br>
including configuration file /etc/raddb/proxy.conf<br>
including configuration file /etc/raddb/clients.conf<br>
including files in directory /etc/raddb/modules/<br>
including configuration file /etc/raddb/modules/radutmp<br>
including configuration file /etc/raddb/modules/digest<br>
including configuration file /etc/raddb/modules/files<br>
including configuration file /etc/raddb/modules/detail.log<br>
including configuration file /etc/raddb/modules/mac2vlan<br>
including configuration file /etc/raddb/modules/unix<br>
including configuration file /etc/raddb/modules/smsotp<br>
including configuration file /etc/raddb/modules/linelog<br>
including configuration file /etc/raddb/modules/inner-eap<br>
including configuration file /etc/raddb/modules/echo<br>
including configuration file
/etc/raddb/modules/sqlcounter_expire_on_login<br>
including configuration file /etc/raddb/modules/sql_log<br>
including configuration file /etc/raddb/modules/detail<br>
including configuration file /etc/raddb/modules/exec<br>
including configuration file /etc/raddb/modules/etc_group<br>
including configuration file /etc/raddb/modules/expiration<br>
including configuration file /etc/raddb/modules/realm<br>
including configuration file /etc/raddb/modules/sradutmp<br>
including configuration file /etc/raddb/modules/acct_unique<br>
including configuration file /etc/raddb/modules/logintime<br>
including configuration file /etc/raddb/modules/perl<br>
including configuration file /etc/raddb/modules/ippool<br>
including configuration file /etc/raddb/modules/counter<br>
including configuration file /etc/raddb/modules/attr_rewrite<br>
including configuration file /etc/raddb/modules/policy<br>
including configuration file /etc/raddb/modules/passwd<br>
including configuration file /etc/raddb/modules/mac2ip<br>
including configuration file /etc/raddb/modules/mschap<br>
including configuration file /etc/raddb/modules/detail.example.com<br>
including configuration file /etc/raddb/modules/preprocess<br>
including configuration file /etc/raddb/modules/checkval<br>
including configuration file /etc/raddb/modules/chap<br>
including configuration file /etc/raddb/modules/pam<br>
including configuration file /etc/raddb/modules/expr<br>
including configuration file /etc/raddb/modules/always<br>
including configuration file /etc/raddb/modules/otp<br>
including configuration file /etc/raddb/modules/pap<br>
including configuration file /etc/raddb/modules/smbpasswd<br>
including configuration file /etc/raddb/modules/cui<br>
including configuration file /etc/raddb/modules/attr_filter<br>
including configuration file /etc/raddb/modules/wimax<br>
including configuration file /etc/raddb/eap.conf<br>
including configuration file /etc/raddb/policy.conf<br>
including files in directory /etc/raddb/sites-enabled/<br>
including configuration file /etc/raddb/sites-enabled/inner-tunnel<br>
including configuration file /etc/raddb/sites-enabled/default<br>
including configuration file /etc/raddb/sites-enabled/control-socket<br>
group = radiusd<br>
user = radiusd<br>
including dictionary file /etc/raddb/dictionary<br>
main {<br>
        prefix = "/usr"<br>
        localstatedir = "/var"<br>
        logdir = "/var/log/radius"<br>
        libdir = "/usr/lib64/freeradius"<br>
        radacctdir = "/var/log/radius/radacct"<br>
        hostname_lookups = no<br>
        max_request_time = 30<br>
        cleanup_delay = 5<br>
        max_requests = 1024<br>
        allow_core_dumps = no<br>
        pidfile = "/var/run/radiusd/radiusd.pid"<br>
        checkrad = "/usr/sbin/checkrad"<br>
        debug_level = 0<br>
        proxy_requests = yes<br>
 log {<br>
        stripped_names = no<br>
        auth = no<br>
        auth_badpass = no<br>
        auth_goodpass = no<br>
 }<br>
 security {<br>
        max_attributes = 200<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>
        require_message_authenticator = no<br>
        secret = "testing123"<br>
        nastype = "other"<br>
 }<br>
 client 10.0.10.0/24 {<br>
        require_message_authenticator = no<br>
        secret = "testing123"<br>
        shortname = "wireless"<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 = "/etc/raddb/certs/server.pem"<br>
        certificate_file = "/etc/raddb/certs/server.pem"<br>
        CA_file = "/etc/raddb/certs/ca.pem"<br>
        private_key_password = "whatever"<br>
        dh_file = "/etc/raddb/certs/dh"<br>
        random_file = "/etc/raddb/certs/random"<br>
        fragment_size = 1024<br>
        include_length = yes<br>
        check_crl = no<br>
        cipher_list = "DEFAULT"<br>
        make_cert_command = "/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 = "/etc/raddb/users"<br>
        acctusersfile = "/etc/raddb/acct_users"<br>
        preproxy_usersfile = "/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 = "/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: Checking authorize {...} for more modules to load<br>
 Module: Linked to module rlm_preprocess<br>
 Module: Instantiating preprocess<br>
  preprocess {<br>
        huntgroups = "/etc/raddb/huntgroups"<br>
        hints = "/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 = "/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 = *<br>
        port = 0<br>
}<br>
listen {<br>
        type = "acct"<br>
        ipaddr = *<br>
        port = 0<br>
}<br>
listen {<br>
        type = "control"<br>
 listen {<br>
        socket = "/var/run/radiusd/radiusd.sock"<br>
 }<br>
}<br>
Listening on authentication address * port 1812<br>
Listening on accounting address * port 1813<br>
Listening on command file /var/run/radiusd/radiusd.sock<br>
Listening on proxy address * port 1814<br>
Ready to process requests.<br>
<br>
<small><br>
</small><big>And on authentication here is the output:</big><br>
<br>
Going to the next request<br>
Waking up in 4.6 seconds.<br>
rad_recv: Access-Request packet from host 10.0.10.201 port 32768,
id=54, length=381<br>
        Acct-Session-Id = "8ac1d4e8-00000085"<br>
        NAS-Port = 134<br>
        NAS-Port-Type = Wireless-802.11<br>
        NAS-Identifier = "SG953UZW3J"<br>
        NAS-IP-Address = 10.0.10.201<br>
        Framed-MTU = 1496<br>
        User-Name = "support"<br>
        Calling-Station-Id = "00-26-C6-85-8C-2A"<br>
        Called-Station-Id = "00-0F-61-53-12-C1"<br>
        Service-Type = Framed-User<br>
        EAP-Message =
0x02390070150017030100203ae1e187237e4b81e6caecff83f72c036840674ebf8a5c5a2cf4be6a0c09ea3217030100403b563821ba513e8a7bd18f1f2afc6f375fa289fdcb9a884eaceae4d248a0e49e4c68f0041de02b04defee03e3c7c257803b5593a4d1f4026128d473f025bccc4<br>
        State = 0x288bd15e2db2c488b05aedde474bde37<br>
        Colubris-AVPair = "ssid=ccsg"<br>
        Colubris-AVPair = "incoming-vlan-id=432"<br>
        Colubris-AVPair = "vsc-unique-id=2"<br>
        Colubris-AVPair = "phytype=IEEE802dot11g"<br>
        Colubris-Attr-250 = 0x00000000<br>
        Colubris-Attr-249 = 0x00000000<br>
        Message-Authenticator = 0xd22b50caa56f4af24ae8594256d41aab<br>
+- entering group authorize {...}<br>
++[preprocess] returns ok<br>
++[chap] returns noop<br>
++[mschap] returns noop<br>
[suffix] No '@' in User-Name = "support", looking up realm NULL<br>
[suffix] No such realm "NULL"<br>
++[suffix] returns noop<br>
[eap] EAP packet type response id 57 length 112<br>
[eap] Continuing tunnel setup.<br>
++[eap] returns ok<br>
Found Auth-Type = EAP<br>
+- entering group authenticate {...}<br>
[eap] Request found, released from the list<br>
[eap] EAP/ttls<br>
[eap] processing type ttls<br>
[ttls] Authenticate<br>
[ttls] processing EAP-TLS<br>
[ttls] eaptls_verify returned 7 <br>
[ttls] Done initial handshake<br>
[ttls] eaptls_process returned 7 <br>
[ttls] Session established.  Proceeding to decode tunneled attributes.<br>
[ttls] Got tunneled request<br>
        User-Name = "support"<br>
        User-Password = "test"<br>
        FreeRADIUS-Proxied-To = 127.0.0.1<br>
[ttls] Sending tunneled request<br>
        User-Name = "support"<br>
        User-Password = "test"<br>
        FreeRADIUS-Proxied-To = 127.0.0.1<br>
server inner-tunnel {<br>
+- entering group authorize {...}<br>
++[chap] returns noop<br>
++[mschap] returns noop<br>
++[unix] returns notfound<br>
[suffix] No '@' in User-Name = "support", looking up realm NULL<br>
[suffix] No such realm "NULL"<br>
++[suffix] returns noop<br>
++[control] returns noop<br>
[eap] No EAP-Message, not doing EAP<br>
++[eap] returns noop<br>
++[files] returns noop<br>
++[expiration] returns noop<br>
++[logintime] returns noop<br>
++[pap] returns noop<br>
No authenticate method (Auth-Type) configuration found for the request:
Rejecting the user<br>
Failed to authenticate the user.<br>
} # server inner-tunnel<br>
[ttls] Got tunneled reply code 3<br>
[ttls] Got tunneled Access-Reject<br>
[eap] Handler failed in EAP/ttls<br>
[eap] Failed in EAP select<br>
++[eap] returns invalid<br>
Failed to authenticate the user.<br>
Using Post-Auth-Type Reject<br>
+- entering group REJECT {...}<br>
[attr_filter.access_reject]     expand: %{User-Name} -> support<br>
 attr_filter: Matched entry DEFAULT at line 11<br>
++[attr_filter.access_reject] returns updated<br>
Delaying reject of request 8 for 1 seconds<br>
Going to the next request<br>
Waking up in 0.9 seconds.<br>
Sending delayed reject for request 8<br>
Sending Access-Reject of id 54 to 10.0.10.201 port 32768<br>
        EAP-Message = 0x04390004<br>
        Message-Authenticator = 0x00000000000000000000000000000000<br>
Waking up in 3.6 seconds.<br>
Cleaning up request 2 ID 255 with timestamp +166<br>
Cleaning up request 3 ID 167 with timestamp +166<br>
Waking up in 0.2 seconds.<br>
Cleaning up request 4 ID 192 with timestamp +166<br>
Cleaning up request 5 ID 246 with timestamp +166<br>
Cleaning up request 6 ID 16 with timestamp +166<br>
Cleaning up request 7 ID 32 with timestamp +166<br>
Waking up in 1.0 seconds.<br>
Cleaning up request 8 ID 54 with timestamp +166<br>
Ready to process requests.<br>
<br>
And yes, there is a user named support with a hashed password that
equals "test"<br>
<br>
Although it looks like the unix module is being queried, it does not
look like the server is passing the request to the passwd module<br>
<br>
The references in the default and inner-tunnel files to shadow are
meaningless as they refer to a section in radiusd.comf that does not
exist.<br>
<br>
Any assistance is appreciated.<br>
<br>
Tom</big><br>
<pre class="moz-signature" cols="72">-- 
Tom Wise
Computer Network Manager
Department of Chemistry and Biochemistry
University of California
Santa Barbara, CA 93106
805.893.7955 phone
805.893.4120 fax
</pre>
</body>
</html>