<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Post the full debug for a radtest request with uppercase username. That<br>

logging function should go before you work with attributes. debug<br>
already logs what comes after.<br></blockquote></div><br>Hello Ivan,<br><br>Here is the debug using radtest<br>radtest RadUser R@diust3st localhost 10 testing123<br><br>FreeRADIUS Version 2.0.5, for host x86_64-redhat-linux-gnu, built on Jul 30 2008 at 10:40:47<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 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 configuration file /etc/raddb/snmp.conf<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>group = root<br>user = root<br>including dictionary file /etc/raddb/dictionary<br>main {<br>        prefix = "/usr"<br>        localstatedir = "/var"<br>
        logdir = "/var/log/radius"<br>        libdir = "/usr/lib/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 = yes<br>        auth_badpass = no<br>        auth_goodpass = no<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>        nastype = "other"<br> }<br> client <a href="http://10.0.1.0/24">10.0.1.0/24</a> {<br>        require_message_authenticator = no<br>
        secret = "c3750test"<br>        shortname = "switch-man-lan"<br>        nastype = "cisco"<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 = <a href="http://127.0.0.1">127.0.0.1</a><br>        port = 1812<br>
        type = "auth"<br>        secret = "testing123"<br>        response_window = 20<br>        max_outstanding = 65536<br>        zombie_period = 40<br>        status_check = "status-server"<br>
        ping_check = "none"<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>
 }<br> home_server_pool my_auth_failover {<br>        type = fail-over<br>        home_server = localhost<br> }<br> realm <a href="http://example.com">example.com</a> {<br>        auth_pool = my_auth_failover<br> }<br> realm NINT {<br>
        authhost = LOCAL<br>        accthost = LOCAL<br> }<br> realm <a href="http://ads.nint.org">ads.nint.org</a> {<br>        authhost = LOCAL<br>        accthost = LOCAL<br> }<br> realm LOCAL {<br> }<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 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 = yes<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 = no<br>        require_encryption = yes<br>
        require_strong = no<br>        with_ntdomain_hack = yes<br>        ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --domain=NINT --username=%{Stripped-User-Name:-%{<br>mschap:User-Name}} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NT-Response:-00}"<br>
  }<br> Module: Linked to module rlm_ldap<br> Module: Instantiating ldap<br>  ldap {<br>        server = "********************"<br>        port = 3268<br>        password = "***************"<br>        identity = "bckup@************"<br>
        net_timeout = 1<br>        timeout = 4<br>        timelimit = 3<br>        tls_mode = no<br>        start_tls = no<br>        tls_require_cert = "allow"<br>   tls {<br>        start_tls = no<br>        require_cert = "allow"<br>
   }<br>        basedn = "dc=ads,dc=nint,dc=org"<br>        filter = "(sAMAccountname=%{mschap:User-Name:-%{User-Name}})"<br>        base_filter = "(objectclass=radiusprofile)"<br>        auto_header = no<br>
        access_attr_used_for_allow = yes<br>        groupname_attribute = "cn"<br>        groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=Gro<br>upOfUniqueNames)(uniquemember=%{Ldap-UserDn})))"<br>
        groupmembership_attribute = "memberOf"<br>        dictionary_mapping = "/etc/raddb/ldap.attrmap"<br>        ldap_debug = 0<br>        ldap_connections_number = 5<br>        compare_check_items = no<br>
        do_xlat = yes<br>        set_auth_type = yes<br>  }<br>rlm_ldap: Registering ldap_groupcmp for Ldap-Group<br>rlm_ldap: Registering ldap_xlat with xlat_name ldap<br>rlm_ldap: reading ldap<->radius mappings from file /etc/raddb/ldap.attrmap<br>
rlm_ldap: LDAP radiusCheckItem mapped to RADIUS $GENERIC$<br>rlm_ldap: LDAP radiusReplyItem mapped to RADIUS $GENERIC$<br>rlm_ldap: LDAP radiusAuthType mapped to RADIUS Auth-Type<br>rlm_ldap: LDAP radiusSimultaneousUse mapped to RADIUS Simultaneous-Use<br>
rlm_ldap: LDAP radiusCalledStationId mapped to RADIUS Called-Station-Id<br>rlm_ldap: LDAP radiusCallingStationId mapped to RADIUS Calling-Station-Id<br>rlm_ldap: LDAP lmPassword mapped to RADIUS LM-Password<br>rlm_ldap: LDAP ntPassword mapped to RADIUS NT-Password<br>
rlm_ldap: LDAP sambaLmPassword mapped to RADIUS LM-Password<br>rlm_ldap: LDAP sambaNtPassword mapped to RADIUS NT-Password<br>rlm_ldap: LDAP acctFlags mapped to RADIUS SMB-Account-CTRL-TEXT<br>rlm_ldap: LDAP radiusExpiration mapped to RADIUS Expiration<br>
rlm_ldap: LDAP radiusNASIpAddress mapped to RADIUS NAS-IP-Address<br>rlm_ldap: LDAP radiusServiceType mapped to RADIUS Service-Type<br>rlm_ldap: LDAP radiusFramedProtocol mapped to RADIUS Framed-Protocol<br>rlm_ldap: LDAP radiusFramedIPAddress mapped to RADIUS Framed-IP-Address<br>
rlm_ldap: LDAP radiusFramedIPNetmask mapped to RADIUS Framed-IP-Netmask<br>rlm_ldap: LDAP radiusFramedRoute mapped to RADIUS Framed-Route<br>rlm_ldap: LDAP radiusFramedRouting mapped to RADIUS Framed-Routing<br>rlm_ldap: LDAP radiusFilterId mapped to RADIUS Filter-Id<br>
rlm_ldap: LDAP radiusFramedMTU mapped to RADIUS Framed-MTU<br>rlm_ldap: LDAP radiusFramedCompression mapped to RADIUS Framed-Compression<br>rlm_ldap: LDAP radiusLoginIPHost mapped to RADIUS Login-IP-Host<br>rlm_ldap: LDAP radiusLoginService mapped to RADIUS Login-Service<br>
rlm_ldap: LDAP radiusLoginTCPPort mapped to RADIUS Login-TCP-Port<br>rlm_ldap: LDAP radiusCallbackNumber mapped to RADIUS Callback-Number<br>rlm_ldap: LDAP radiusCallbackId mapped to RADIUS Callback-Id<br>rlm_ldap: LDAP radiusFramedIPXNetwork mapped to RADIUS Framed-IPX-Network<br>
rlm_ldap: LDAP radiusClass mapped to RADIUS Class<br>rlm_ldap: LDAP radiusSessionTimeout mapped to RADIUS Session-Timeout<br>rlm_ldap: LDAP radiusIdleTimeout mapped to RADIUS Idle-Timeout<br>rlm_ldap: LDAP radiusTerminationAction mapped to RADIUS Termination-Action<br>
rlm_ldap: LDAP radiusLoginLATService mapped to RADIUS Login-LAT-Service<br>rlm_ldap: LDAP radiusLoginLATNode mapped to RADIUS Login-LAT-Node<br>rlm_ldap: LDAP radiusLoginLATGroup mapped to RADIUS Login-LAT-Group<br>rlm_ldap: LDAP radiusFramedAppleTalkLink mapped to RADIUS Framed-AppleTalk-Link<br>
rlm_ldap: LDAP radiusFramedAppleTalkNetwork mapped to RADIUS Framed-AppleTalk-Network<br>rlm_ldap: LDAP radiusFramedAppleTalkZone mapped to RADIUS Framed-AppleTalk-Zone<br>rlm_ldap: LDAP radiusPortLimit mapped to RADIUS Port-Limit<br>
rlm_ldap: LDAP radiusLoginLATPort mapped to RADIUS Login-LAT-Port<br>rlm_ldap: LDAP radiusReplyMessage mapped to RADIUS Reply-Message<br>conns: 0x28f9510<br> Module: Linked to module rlm_eap<br> Module: Instantiating eap<br>
  eap {<br>        default_eap_type = "peap"<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_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/ns2.pem"<br>
        certificate_file = "/etc/raddb/certs/cnsradius01.ads.nint.org.pem"<br>        CA_file = "/etc/raddb/certs/NINTCA.pem"<br>        private_key_password = "cnsradius"<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>
   }<br> Module: Linked to sub-module rlm_eap_ttls<br> Module: Instantiating eap-ttls<br>   ttls {<br>        default_eap_type = "gtc"<br>        copy_request_to_tunnel = yes<br>        use_tunneled_reply = yes<br>
        virtual_server = "inner-tunnel"<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 = yes<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_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: 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: Instantiating ntdomain<br>  realm ntdomain {<br>        format = "prefix"<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 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: Linked to module rlm_unix<br> Module: Instantiating unix<br>  unix {<br>        radwtmp = "/var/log/radius/radwtmp"<br>  }<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: Linked to module rlm_attr_filter<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>
 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> }<br>}<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_perl<br> Module: Instantiating perl<br>
  perl {<br>        module = "/etc/raddb/<a href="http://perl_tolower.pm">perl_tolower.pm</a>"<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: Checking preacct {...} for more modules to load<br> Module: Checking accounting {...} for more modules to load<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> }<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>rad_recv: Access-Request packet from host <a href="http://127.0.0.1">127.0.0.1</a> port 38149, id=225, length=59<br>
        User-Name = "RadUser"<br>        User-Password = "R@diust3st"<br>        NAS-IP-Address = <a href="http://10.0.0.247">10.0.0.247</a><br>        NAS-Port = 10<br>+- entering group authorize<br>++[preprocess] returns ok<br>
perl_pool: item 0x29512a0 asigned new request. Handled so far: 1<br>found interpetator at address 0x29512a0<br>rlm_perl: RAD_REQUEST: User-Name = RadUser<br>rlm_perl: RAD_REQUEST: User-Password = R@diust3st<br>rlm_perl: RAD_REQUEST: NAS-Port = 10<br>
rlm_perl: RAD_REQUEST: NAS-IP-Address = <a href="http://10.0.0.247">10.0.0.247</a><br>rlm_perl: Added pair User-Name = raduser<br>rlm_perl: Added pair User-Password = R@diust3st<br>rlm_perl: Added pair NAS-Port = 10<br>rlm_perl: Added pair NAS-IP-Address = <a href="http://10.0.0.247">10.0.0.247</a><br>
perl_pool total/active/spare [32/0/32]<br>Unreserve perl at address 0x29512a0<br>++[perl] returns updated<br>++[chap] returns noop<br>++[mschap] returns noop<br>    rlm_realm: No '@' in User-Name = "raduser", looking up realm NULL<br>
    rlm_realm: No such realm "NULL"<br>++[suffix] returns noop<br>  rlm_eap: No EAP-Message, not doing EAP<br>++[eap] returns noop<br>rlm_ldap: Entering ldap_groupcmp()<br>        expand: dc=ads,dc=nint,dc=org -> dc=ads,dc=nint,dc=org<br>
        expand: (sAMAccountname=%{mschap:User-Name:-%{User-Name}}) -> (sAMAccountname=raduser)<br>rlm_ldap: ldap_get_conn: Checking Id: 0<br>rlm_ldap: ldap_get_conn: Got Id: 0<br>rlm_ldap: attempting LDAP reconnection<br>
rlm_ldap: (re)connect to ************:3268, authentication 0<br>rlm_ldap: bind as bckup@*********/*********** to ******************:3268<br>rlm_ldap: waiting for bind result ...<br>rlm_ldap: Bind was successful<br>rlm_ldap: performing search in dc=ads,dc=nint,dc=org, with filter (sAMAccountname=raduser)<br>
rlm_ldap: ldap_release_conn: Release Id: 0<br>        expand: (|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn}))) -> (|(&(objectClass=GroupOfNames)(member=))(&(objectClass=GroupOfUniqueNames)(uniquemember=)))<br>
rlm_ldap: ldap_get_conn: Checking Id: 0<br>rlm_ldap: ldap_get_conn: Got Id: 0<br>rlm_ldap: performing search in dc=ads,dc=nint,dc=org, with filter (&(cn=RCNS-Group)(|(&(objectClass=GroupOfNames)(member=))(&(objectClass=GroupOfUniqueNames)(uniquemember=))))<br>
rlm_ldap: object not found or got ambiguous search result<br>rlm_ldap: ldap_release_conn: Release Id: 0<br>rlm_ldap: ldap_get_conn: Checking Id: 0<br>rlm_ldap: ldap_get_conn: Got Id: 0<br>rlm_ldap: performing search in CN=RadUser,OU=CNS,OU=SupportGrp,DC=ads,DC=nint,DC=org, with filter (objectclass=*)<br>
rlm_ldap: performing search in CN=RCNS-Group,OU=CNS,OU=SupportGrp,DC=ads,DC=nint,DC=org, with filter (cn=RCNS-Group)<br>rlm_ldap::ldap_groupcmp: User found in group RCNS-Group<br>rlm_ldap: ldap_release_conn: Release Id: 0<br>
    users: Matched entry DEFAULT at line 204<br>++[files] returns ok<br>rlm_ldap: - authorize<br>rlm_ldap: performing user authorization for raduser<br>        expand: (sAMAccountname=%{mschap:User-Name:-%{User-Name}}) -> (sAMAccountname=raduser)<br>
        expand: dc=ads,dc=nint,dc=org -> dc=ads,dc=nint,dc=org<br>rlm_ldap: ldap_get_conn: Checking Id: 0<br>rlm_ldap: ldap_get_conn: Got Id: 0<br>rlm_ldap: performing search in dc=ads,dc=nint,dc=org, with filter (sAMAccountname=raduser)<br>
rlm_ldap: looking for check items in directory...<br>rlm_ldap: looking for reply items in directory...<br>WARNING: No "known good" password was found in LDAP.  Are you sure that the user is configured correctly?<br>
rlm_ldap: Setting Auth-Type = LDAP<br>rlm_ldap: user raduser authorized to use remote access<br>rlm_ldap: ldap_release_conn: Release Id: 0<br>++[ldap] returns ok<br>++[expiration] returns noop<br>++[logintime] returns noop<br>
rlm_pap: WARNING! No "known good" password found for the user.  Authentication may fail because of this.<br>++[pap] returns noop<br>  rad_check_password:  Found Auth-Type LDAP<br>auth: type "LDAP"<br>+- entering group LDAP<br>
rlm_ldap: - authenticate<br>rlm_ldap: login attempt by "raduser" with password "R@diust3st"<br>rlm_ldap: user DN: CN=RadUser,OU=CNS,OU=SupportGrp,DC=ads,DC=nint,DC=org<br>rlm_ldap: (re)connect to ****************:3268, authentication 1<br>
rlm_ldap: bind as CN=RadUser,OU=CNS,OU=SupportGrp,DC=***,DC=*****,DC=****/R@diust3st to ************:3268<br>rlm_ldap: waiting for bind result ...<br>rlm_ldap: Bind was successful<br>rlm_ldap: user raduser authenticated succesfully<br>
++[ldap] returns ok<br>Login OK: [raduser] (from client localhost port 10)<br>+- entering group post-auth<br>++[exec] returns noop<br>Sending Access-Accept of id 225 to <a href="http://127.0.0.1">127.0.0.1</a> port 38149<br>
        Tunnel-Medium-Type:0 = IEEE-802<br>        Tunnel-Type:0 = VLAN<br>        Tunnel-Private-Group-Id:0 = "254"<br>Finished request 0.<br>Going to the next request<br><br></div>