>Good. Now you are getting Digest-Attributes. Now uncomment digest entry<br>
>in authorize section of default or whatever virtual server is processing<br>
>this.<br>Hi Kalik,<br>              As per your instruction I've uncommented all the digest entry in authorize and authenticate section in the sites-enabled/default file, unfortunately I still didn't get the values of these attributes in my perl code to authenticate. I am confusing what should I emphasized, please help. <br>
<br><br><b>I am submitting the complete radius log when it run in debug mode before authenticate a user here</b><br><br>FreeRADIUS Version 2.0.3, for host i686-pc-linux-gnu, built on Apr  9 2008 at 21:42:16<br>Copyright (C) 1999-2008 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.<br>Starting - reading configuration files ...<br>
including configuration file /usr/local/etc/raddb/radiusd.conf<br>including configuration file /usr/local/etc/raddb/clients.conf<br>including configuration file /usr/local/etc/raddb/snmp.conf<br>including configuration file /usr/local/etc/raddb/eap.conf<br>
including configuration file /usr/local/etc/raddb/sql.conf<br>including configuration file /usr/local/etc/raddb/policy.conf<br>including files in directory /usr/local/etc/raddb/sites-enabled/<br>including configuration file /usr/local/etc/raddb/sites-enabled/default<br>
including dictionary file /usr/local/etc/raddb/dictionary<br>main {<br>        prefix = "/usr/local"<br>        localstatedir = "/usr/local/var"<br>        logdir = "/usr/local/var/log/radius"<br>
        libdir = "/usr/local/lib"<br>        radacctdir = "/usr/local/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 = "/usr/local/var/run/radiusd/radiusd.pid"<br>        checkrad = "/usr/local/sbin/checkrad"<br>        debug_level = 0<br>        proxy_requests = yes<br>
 security {<br>        max_attributes = 200<br>        reject_delay = 1<br>        status_server = yes<br> }<br>}<br> client localhost {<br>        ipaddr = <a href="http://127.0.0.1">127.0.0.1</a><br>        require_message_authenticator = no<br>
        secret = "testing123"<br>        shortname = "localhost"<br>        nastype = "other"<br> }<br> client <a href="http://192.168.1.227">192.168.1.227</a> {<br>        require_message_authenticator = no<br>
        secret = "johnson"<br> }<br>radiusd: #### Loading Realms and Home Servers ####<br>radiusd: #### Instantiating modules ####<br> instantiate {<br> Module: Linked to module rlm_exec<br> Module: Instantiating exec<br>
  exec {<br>        wait = yes<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 {<br> modules {<br> Module: Checking authenticate {...} for more modules to load<br> Module: Linked to module rlm_perl<br> Module: Instantiating perl<br>
  perl {<br>        module = "/usr/local/etc/raddb/myperltemp.pl"<br>        func_authorize = "authorize"<br>        func_authenticate = "authenticate"<br>        func_accounting = "accounting"<br>
        func_preacct = "preacct"<br>        func_checksimul = "checksimul"<br>        func_detach = "detach"<br>        func_xlat = "xlat"<br>        func_pre_proxy = "pre_proxy"<br>
        func_post_proxy = "post_proxy"<br>        func_post_auth = "post_auth"<br>  }<br>  perl {<br>        max_clones = 32<br>        start_clones = 32<br>        min_spare_clones = 0<br>        max_spare_clones = 32<br>
        cleanup_delay = 5<br>        max_request_per_clone = 0<br>  }<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_digest<br> Module: Instantiating digest<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/etc/raddb/huntgroups"<br>        hints = "/usr/local/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: 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_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>  }<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/etc/raddb/certs/server.pem"<br>        certificate_file = "/usr/local/etc/raddb/certs/server.pem"<br>
        CA_file = "/usr/local/etc/raddb/certs/ca.pem"<br>        private_key_password = "whatever"<br>        dh_file = "/usr/local/etc/raddb/certs/dh"<br>        random_file = "/usr/local/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/etc/raddb/certs/bootstrap"<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>   }<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>
   }<br> Module: Linked to sub-module rlm_eap_mschapv2<br> Module: Instantiating eap-mschapv2<br>   mschapv2 {<br>        with_ntdomain_hack = no<br>   }<br> Module: Linked to module rlm_files<br> Module: Instantiating files<br>
  files {<br>        usersfile = "/usr/local/etc/raddb/users"<br>        acctusersfile = "/usr/local/etc/raddb/acct_users"<br>        preproxy_usersfile = "/usr/local/etc/raddb/preproxy_users"<br>
        compat = "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 = "/usr/local/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: Linked to module rlm_radutmp<br> Module: Instantiating radutmp<br>
  radutmp {<br>        filename = "/usr/local/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: Linked to module rlm_attr_filter<br> Module: Instantiating attr_filter.accounting_response<br>  attr_filter attr_filter.accounting_response {<br>        attrsfile = "/usr/local/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>
 Module: Instantiating attr_filter.access_reject<br>  attr_filter attr_filter.access_reject {<br>        attrsfile = "/usr/local/etc/raddb/attrs.access_reject"<br>        key = "%{User-Name}"<br>  }<br>
 }<br>}<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>main {<br>        snmp = no<br>        smux_password = ""<br>        snmp_write_access = no<br>}<br>Listening on authentication address * port 1812<br>Listening on accounting address * port 1813<br>
Listening on proxy address * port 1814<br>Ready to process requests.<br><br><b>Here is the log output after rejecting a user</b><br><br><br>rad_recv: Access-Request packet from host <a href="http://192.168.1.227">192.168.1.227</a> port 33192, id=169, length=271<br>
        User-Name = "<a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a>"<br>        Digest-Attributes = 0x0a096a6f686e736f6e<br>        Digest-Attributes = 0x010f3139322e3136382e312e323237<br>        Digest-Attributes = 0x022a34383230326231303038353039346632353131636332393230663634666635653332333335373931<br>
        Digest-Attributes = 0x04137369703a3139322e3136382e312e323237<br>        Digest-Attributes = 0x030a5245474953544552<br>        Digest-Response = "bb91be247c053ec09ab0da78d666c469"<br>        Service-Type = Sip-Session<br>
        Sip-Uri-User = "johnson"<br>        Cisco-AVPair = "call-id=<a href="mailto:2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193">2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193</a>"<br>        NAS-IP-Address = <a href="http://127.0.0.1">127.0.0.1</a><br>
        NAS-Port = 5060<br>+- entering group authorize<br>++[preprocess] returns ok<br>perl_pool: item 0x9cb1b90 asigned new request. Handled so far: 1<br>found interpetator at address 0x9cb1b90<br>rlm_perl: ###############################################################<br>
rlm_perl: RAD_REQUEST: Digest-Response = bb91be247c053ec09ab0da78d666c469<br>rlm_perl: RAD_REQUEST: Service-Type = Sip-Session<br>rlm_perl: RAD_REQUEST: Cisco-AVPair = call-id=<a href="mailto:2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193">2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193</a><br>
rlm_perl: RAD_REQUEST: User-Name = <a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a><br>rlm_perl: RAD_REQUEST: Sip-Uri-User = johnson<br>rlm_perl: RAD_REQUEST: NAS-IP-Address = <a href="http://127.0.0.1">127.0.0.1</a><br>
rlm_perl: RAD_REQUEST: NAS-Port = 5060<br>rlm_perl: RAD_REQUEST: Digest-Attributes = ARRAY(0x9e79f88)<br>rlm_perl: ###############################################################<br>rlm_perl: Added pair Digest-Response = bb91be247c053ec09ab0da78d666c469<br>
rlm_perl: Added pair Service-Type = Sip-Session<br>rlm_perl: Added pair Cisco-AVPair = call-id=<a href="mailto:2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193">2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193</a><br>rlm_perl: Added pair User-Name = <a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a><br>
rlm_perl: Added pair Sip-Uri-User = johnson<br>rlm_perl: Added pair NAS-IP-Address = <a href="http://127.0.0.1">127.0.0.1</a><br>rlm_perl: Added pair NAS-Port = 5060<br>rlm_perl: Added pair Digest-Attributes = 0x0a096a6f686e736f6e<br>
rlm_perl: Added pair Digest-Attributes = 0x010f3139322e3136382e312e323237<br>rlm_perl: Added pair Digest-Attributes = 0x022a34383230326231303038353039346632353131636332393230663634666635653332333335373931<br>rlm_perl: Added pair Digest-Attributes = 0x04137369703a3139322e3136382e312e323237<br>
rlm_perl: Added pair Digest-Attributes = 0x030a5245474953544552<br>rlm_perl: Added pair Reply-Message = Incorrect Password<br>perl_pool total/active/spare [32/0/32]<br>Unreserve perl at address 0x9cb1b90<br>++[perl] returns reject<br>
Invalid user: [<a href="http://johnson@192.168.1.227/">johnson@192.168.1.227/</a><no User-Password attribute>] (from client <a href="http://192.168.1.227">192.168.1.227</a> port 5060)<br>  Found Post-Auth-Type Reject<br>
+- entering group REJECT<br>        expand: %{User-Name} -> <a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a><br> attr_filter: Matched entry DEFAULT at line 11<br>++[attr_filter.access_reject] returns updated<br>
Delaying reject of request 0 for 1 seconds<br>Going to the next request<br>Waking up in 0.9 seconds.<br>rad_recv: Access-Request packet from host <a href="http://192.168.1.227">192.168.1.227</a> port 33193, id=170, length=271<br>
        User-Name = "<a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a>"<br>        Digest-Attributes = 0x0a096a6f686e736f6e<br>        Digest-Attributes = 0x010f3139322e3136382e312e323237<br>        Digest-Attributes = 0x022a34383230326231303038353039346632353131636332393230663634666635653332333335373931<br>
        Digest-Attributes = 0x04137369703a3139322e3136382e312e323237<br>        Digest-Attributes = 0x030a5245474953544552<br>        Digest-Response = "bb91be247c053ec09ab0da78d666c469"<br>        Service-Type = Sip-Session<br>
        Sip-Uri-User = "johnson"<br>        Cisco-AVPair = "call-id=<a href="mailto:2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193">2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193</a>"<br>        NAS-IP-Address = <a href="http://127.0.0.1">127.0.0.1</a><br>
        NAS-Port = 5060<br>+- entering group authorize<br>++[preprocess] returns ok<br>perl_pool: item 0x9eeddc8 asigned new request. Handled so far: 1<br>found interpetator at address 0x9eeddc8<br>rlm_perl: ###############################################################<br>
rlm_perl: RAD_REQUEST: Digest-Response = bb91be247c053ec09ab0da78d666c469<br>rlm_perl: RAD_REQUEST: Service-Type = Sip-Session<br>rlm_perl: RAD_REQUEST: Cisco-AVPair = call-id=<a href="mailto:2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193">2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193</a><br>
rlm_perl: RAD_REQUEST: User-Name = <a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a><br>rlm_perl: RAD_REQUEST: Sip-Uri-User = johnson<br>rlm_perl: RAD_REQUEST: NAS-IP-Address = <a href="http://127.0.0.1">127.0.0.1</a><br>
rlm_perl: RAD_REQUEST: NAS-Port = 5060<br>rlm_perl: RAD_REQUEST: Digest-Attributes = ARRAY(0x9f83c98)<br>rlm_perl: ###############################################################<br>rlm_perl: Added pair Digest-Response = bb91be247c053ec09ab0da78d666c469<br>
rlm_perl: Added pair Service-Type = Sip-Session<br>rlm_perl: Added pair Cisco-AVPair = call-id=<a href="mailto:2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193">2ce841ba64a44ec9ad8a53c0e20fb453@192.168.1.193</a><br>rlm_perl: Added pair User-Name = <a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a><br>
rlm_perl: Added pair Sip-Uri-User = johnson<br>rlm_perl: Added pair NAS-IP-Address = <a href="http://127.0.0.1">127.0.0.1</a><br>rlm_perl: Added pair NAS-Port = 5060<br>rlm_perl: Added pair Digest-Attributes = 0x0a096a6f686e736f6e<br>
rlm_perl: Added pair Digest-Attributes = 0x010f3139322e3136382e312e323237<br>rlm_perl: Added pair Digest-Attributes = 0x022a34383230326231303038353039346632353131636332393230663634666635653332333335373931<br>rlm_perl: Added pair Digest-Attributes = 0x04137369703a3139322e3136382e312e323237<br>
rlm_perl: Added pair Digest-Attributes = 0x030a5245474953544552<br>rlm_perl: Added pair Reply-Message = Incorrect Password<br>perl_pool total/active/spare [32/0/32]<br>Unreserve perl at address 0x9eeddc8<br>++[perl] returns reject<br>
Invalid user: [<a href="http://johnson@192.168.1.227/">johnson@192.168.1.227/</a><no User-Password attribute>] (from client <a href="http://192.168.1.227">192.168.1.227</a> port 5060)<br>  Found Post-Auth-Type Reject<br>
+- entering group REJECT<br>        expand: %{User-Name} -> <a href="mailto:johnson@192.168.1.227">johnson@192.168.1.227</a><br> attr_filter: Matched entry DEFAULT at line 11<br>++[attr_filter.access_reject] returns updated<br>
Delaying reject of request 1 for 1 seconds<br>Going to the next request<br>Waking up in 0.4 seconds.<br>Sending delayed reject for request 0<br>Sending Access-Reject of id 169 to <a href="http://192.168.1.227">192.168.1.227</a> port 33192<br>
        Reply-Message = "Incorrect Password"<br>Waking up in 0.4 seconds.<br>Sending delayed reject for request 1<br>Sending Access-Reject of id 170 to <a href="http://192.168.1.227">192.168.1.227</a> port 33193<br>
        Reply-Message = "Incorrect Password"<br>Waking up in 4.5 seconds.<br>Cleaning up request 0 ID 169 with timestamp +8<br>Waking up in 0.4 seconds.<br>Cleaning up request 1 ID 170 with timestamp +8<br>Ready to process requests.<br>
<br><br>Thanks for your valuable time.<br><br>With regards,<br>Elangbam Johnson<br><br><br>