openLDAP authorization with PAP authentication

Jay Ludlow jay_birdz at hotmail.com
Sat Mar 31 00:52:50 CEST 2012


I have a working RADIUS server for localhost lookup, but when I try and authenticate with my HP Procurve 420 Wireless Access Point using these wireless connection methods with Ubuntu 10.04LTS:

Wireless Security: WPA & WPA2 Enterprise


Authentication: Tunneled TLS | Protected EAP (PEAP)


Anonymous Identity: (Blank)


CA Certificate: (None)


Inner Authentication: PAP, MSCHAP, MSCHAPv2, CHAP | MSCHAPv2, MD5, GTC


Username: guest


Password: userpasswd

I get the following result:

FreeRADIUS Version 2.1.12, for host x86_64-redhat-linux-gnu, built on Feb 22 2012 at 14:59:35

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 /etc/raddb/radiusd.conf

including configuration file /etc/raddb/proxy.conf

including configuration file /etc/raddb/clients.conf

including files in directory /etc/raddb/modules/

including configuration file /etc/raddb/modules/perl

including configuration file /etc/raddb/modules/inner-eap

including configuration file /etc/raddb/modules/checkval

including configuration file /etc/raddb/modules/expr

including configuration file /etc/raddb/modules/ldap.rpmnew

including configuration file /etc/raddb/modules/wimax

including configuration file /etc/raddb/modules/rediswho

including configuration file /etc/raddb/modules/unix

including configuration file /etc/raddb/modules/files

including configuration file /etc/raddb/modules/sql_log

including configuration file /etc/raddb/modules/ldap

including configuration file /etc/raddb/modules/otp

including configuration file /etc/raddb/modules/echo

including configuration file /etc/raddb/modules/acct_unique

including configuration file /etc/raddb/modules/ntlm_auth

including configuration file /etc/raddb/modules/linelog

including configuration file /etc/raddb/modules/etc_group

including configuration file /etc/raddb/modules/mac2ip

including configuration file /etc/raddb/modules/digest

including configuration file /etc/raddb/modules/counter

including configuration file /etc/raddb/modules/attr_rewrite

including configuration file /etc/raddb/modules/logintime

including configuration file /etc/raddb/modules/redis

including configuration file /etc/raddb/modules/sradutmp

including configuration file /etc/raddb/modules/chap

including configuration file /etc/raddb/modules/preprocess

including configuration file /etc/raddb/modules/always

including configuration file /etc/raddb/modules/policy

including configuration file /etc/raddb/modules/cui

including configuration file /etc/raddb/modules/mschap.bak

including configuration file /etc/raddb/modules/ippool

including configuration file /etc/raddb/modules/attr_filter

including configuration file /etc/raddb/modules/exec

including configuration file /etc/raddb/modules/mschap

including configuration file /etc/raddb/modules/pap.rpmnew

including configuration file /etc/raddb/modules/radutmp

including configuration file /etc/raddb/modules/pam

including configuration file /etc/raddb/modules/passwd

including configuration file /etc/raddb/modules/smsotp

including configuration file /etc/raddb/modules/detail

including configuration file /etc/raddb/modules/soh

including configuration file /etc/raddb/modules/detail.log

including configuration file /etc/raddb/modules/mac2vlan

including configuration file /etc/raddb/modules/dynamic_clients

including configuration file /etc/raddb/modules/opendirectory

including configuration file /etc/raddb/modules/sqlcounter_expire_on_login

including configuration file /etc/raddb/modules/ldap.rpmnew.original

including configuration file /etc/raddb/modules/detail.example.com

including configuration file /etc/raddb/modules/expiration

including configuration file /etc/raddb/modules/replicate

including configuration file /etc/raddb/modules/realm

including configuration file /etc/raddb/modules/pap

including configuration file /etc/raddb/modules/smbpasswd

including configuration file /etc/raddb/eap.conf

including configuration file /etc/raddb/policy.conf

including files in directory /etc/raddb/sites-enabled/

including configuration file /etc/raddb/sites-enabled/default

including configuration file /etc/raddb/sites-enabled/control-socket

including configuration file /etc/raddb/sites-enabled/default.original

including configuration file /etc/raddb/sites-enabled/inner-tunnel

main {

    user = "radiusd"

    group = "radiusd"

    allow_core_dumps = no

}

including dictionary file /etc/raddb/dictionary

main {

    name = "radiusd"

    prefix = "/usr"

    localstatedir = "/var"

    sbindir = "/usr/sbin"

    logdir = "/var/log/radius"

    run_dir = "/var/run/radiusd"

    libdir = "/usr/lib64/freeradius"

    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/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 = yes

    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

  coa {

    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 = "Password"

    shortname = "localhost"

    nastype = "other"

 }

 client 10.135.55.0/24 {

    require_message_authenticator = no

    secret = "Password"

    shortname = "PrivateNet"

    nastype = "other"

 }

radiusd: #### Instantiating modules ####

 instantiate {

 Module: Linked to module rlm_exec

 Module: Instantiating module "exec" from file /etc/raddb/modules/exec

  exec {

    wait = no

    input_pairs = "request"

    shell_escape = yes

  }

 Module: Linked to module rlm_expr

 Module: Instantiating module "expr" from file /etc/raddb/modules/expr

 Module: Linked to module rlm_expiration

 Module: Instantiating module "expiration" from file /etc/raddb/modules/expiration

  expiration {

    reply-message = "Password Has Expired  "

  }

 Module: Linked to module rlm_logintime

 Module: Instantiating module "logintime" from file /etc/raddb/modules/logintime

  logintime {

    reply-message = "You are calling outside your allowed timespan  "

    minimum-timeout = 60

  }

 }

radiusd: #### Loading Virtual Servers ####

server { # from file /etc/raddb/radiusd.conf

 modules {

  Module: Creating Post-Auth-Type = REJECT

 Module: Checking authenticate {...} for more modules to load

 Module: Linked to module rlm_pap

 Module: Instantiating module "pap" from file /etc/raddb/modules/pap.rpmnew

  pap {

    encryption_scheme = "auto"

    auto_header = no

  }

 Module: Checking authorize {...} for more modules to load

 Module: Linked to module rlm_preprocess

 Module: Instantiating module "preprocess" from file /etc/raddb/modules/preprocess

  preprocess {

    huntgroups = "/etc/raddb/huntgroups"

    hints = "/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: Linked to module rlm_chap

 Module: Instantiating module "chap" from file /etc/raddb/modules/chap

 Module: Linked to module rlm_mschap

 Module: Instantiating module "mschap" from file /etc/raddb/modules/mschap.bak

  mschap {

    use_mppe = yes

    require_encryption = no

    require_strong = no

    with_ntdomain_hack = no

    allow_retry = yes

  }

 Module: Linked to module rlm_realm

 Module: Instantiating module "suffix" from file /etc/raddb/modules/realm

  realm suffix {

    format = "suffix"

    delimiter = "@"

    ignore_default = no

    ignore_null = no

  }

 Module: Linked to module rlm_eap

 Module: Instantiating module "eap" from file /etc/raddb/eap.conf

  eap {

    default_eap_type = "md5"

    timer_expire = 60

    ignore_unknown_eap_types = yes

    cisco_accounting_username_bug = no

    max_sessions = 2048

  }

 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 = "Local"

   }

 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 = "/etc/raddb/certs/server.pem"

    certificate_file = "/etc/raddb/certs/server.pem"

    CA_file = "/etc/raddb/certs/ca.pem"

    private_key_password = "whatever"

    dh_file = "/etc/raddb/certs/dh"

    random_file = "/etc/raddb/certs/random"

    fragment_size = 1024

    include_length = yes

    check_crl = no

    cipher_list = "DEFAULT"

    make_cert_command = "/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"

    soh = no

   }

 Module: Linked to sub-module rlm_eap_mschapv2

 Module: Instantiating eap-mschapv2

   mschapv2 {

    with_ntdomain_hack = no

    send_error = no

   }

 Module: Linked to module rlm_files

 Module: Instantiating module "files" from file /etc/raddb/modules/files

  files {

    usersfile = "/etc/raddb/users"

    acctusersfile = "/etc/raddb/acct_users"

    preproxy_usersfile = "/etc/raddb/preproxy_users"

    compat = "no"

  }

 Module: Linked to module rlm_ldap

 Module: Instantiating module "ldap" from file /etc/raddb/modules/ldap.rpmnew

  ldap {

    server = "localhost"

    port = 389

    password = "ldapsecret"

    identity = "cn=Admin,dc=My Org,dc=UA"

    net_timeout = 1

    timeout = 4

    timelimit = 3

    tls_mode = no

    start_tls = no

    tls_require_cert = "allow"

   tls {

    start_tls = no

    require_cert = "allow"

   }

    basedn = "dc=My Org,dc=UA"

    filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"

    base_filter = "(objectclass=radiusprofile)"

    auto_header = no

    access_attr_used_for_allow = yes

    groupname_attribute = "cn"

    groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))"

    dictionary_mapping = "/etc/raddb/ldap.attrmap"

    ldap_debug = 0

    ldap_connections_number = 5

    compare_check_items = no

    do_xlat = yes

    set_auth_type = yes

  }

rlm_ldap: Registering ldap_groupcmp for Ldap-Group

rlm_ldap: Registering ldap_xlat with xlat_name ldap

rlm_ldap: Over-riding set_auth_type, as there is no module ldap listed in the "authenticate" section.

rlm_ldap: reading ldap<->radius mappings from file /etc/raddb/ldap.attrmap

rlm_ldap: LDAP radiusCheckItem mapped to RADIUS $GENERIC$

rlm_ldap: LDAP radiusReplyItem mapped to RADIUS $GENERIC$

rlm_ldap: LDAP radiusAuthType mapped to RADIUS Auth-Type

rlm_ldap: LDAP radiusSimultaneousUse mapped to RADIUS Simultaneous-Use

rlm_ldap: LDAP radiusCalledStationId mapped to RADIUS Called-Station-Id

rlm_ldap: LDAP radiusCallingStationId mapped to RADIUS Calling-Station-Id

rlm_ldap: LDAP lmPassword mapped to RADIUS LM-Password

rlm_ldap: LDAP ntPassword mapped to RADIUS NT-Password

rlm_ldap: LDAP sambaLmPassword mapped to RADIUS LM-Password

rlm_ldap: LDAP sambaNtPassword mapped to RADIUS NT-Password

rlm_ldap: LDAP dBCSPwd mapped to RADIUS LM-Password

rlm_ldap: LDAP userPassword mapped to RADIUS Password-With-Header

rlm_ldap: LDAP acctFlags mapped to RADIUS SMB-Account-CTRL-TEXT

rlm_ldap: LDAP radiusExpiration mapped to RADIUS Expiration

rlm_ldap: LDAP radiusNASIpAddress mapped to RADIUS NAS-IP-Address

rlm_ldap: LDAP radiusServiceType mapped to RADIUS Service-Type

rlm_ldap: LDAP radiusFramedProtocol mapped to RADIUS Framed-Protocol

rlm_ldap: LDAP radiusFramedIPAddress mapped to RADIUS Framed-IP-Address

rlm_ldap: LDAP radiusFramedIPNetmask mapped to RADIUS Framed-IP-Netmask

rlm_ldap: LDAP radiusFramedRoute mapped to RADIUS Framed-Route

rlm_ldap: LDAP radiusFramedRouting mapped to RADIUS Framed-Routing

rlm_ldap: LDAP radiusFilterId mapped to RADIUS Filter-Id

rlm_ldap: LDAP radiusFramedMTU mapped to RADIUS Framed-MTU

rlm_ldap: LDAP radiusFramedCompression mapped to RADIUS Framed-Compression

rlm_ldap: LDAP radiusLoginIPHost mapped to RADIUS Login-IP-Host

rlm_ldap: LDAP radiusLoginService mapped to RADIUS Login-Service

rlm_ldap: LDAP radiusLoginTCPPort mapped to RADIUS Login-TCP-Port

rlm_ldap: LDAP radiusCallbackNumber mapped to RADIUS Callback-Number

rlm_ldap: LDAP radiusCallbackId mapped to RADIUS Callback-Id

rlm_ldap: LDAP radiusFramedIPXNetwork mapped to RADIUS Framed-IPX-Network

rlm_ldap: LDAP radiusClass mapped to RADIUS Class

rlm_ldap: LDAP radiusSessionTimeout mapped to RADIUS Session-Timeout

rlm_ldap: LDAP radiusIdleTimeout mapped to RADIUS Idle-Timeout

rlm_ldap: LDAP radiusTerminationAction mapped to RADIUS Termination-Action

rlm_ldap: LDAP radiusLoginLATService mapped to RADIUS Login-LAT-Service

rlm_ldap: LDAP radiusLoginLATNode mapped to RADIUS Login-LAT-Node

rlm_ldap: LDAP radiusLoginLATGroup mapped to RADIUS Login-LAT-Group

rlm_ldap: LDAP radiusFramedAppleTalkLink mapped to RADIUS Framed-AppleTalk-Link

rlm_ldap: LDAP radiusFramedAppleTalkNetwork mapped to RADIUS Framed-AppleTalk-Network

rlm_ldap: LDAP radiusFramedAppleTalkZone mapped to RADIUS Framed-AppleTalk-Zone

rlm_ldap: LDAP radiusPortLimit mapped to RADIUS Port-Limit

rlm_ldap: LDAP radiusLoginLATPort mapped to RADIUS Login-LAT-Port

rlm_ldap: LDAP radiusReplyMessage mapped to RADIUS Reply-Message

rlm_ldap: LDAP radiusTunnelType mapped to RADIUS Tunnel-Type

rlm_ldap: LDAP radiusTunnelMediumType mapped to RADIUS Tunnel-Medium-Type

rlm_ldap: LDAP radiusTunnelPrivateGroupId mapped to RADIUS Tunnel-Private-Group-Id

conns: 0x20aacb0

 Module: Checking preacct {...} for more modules to load

 Module: Linked to module rlm_acct_unique

 Module: Instantiating module "acct_unique" from file /etc/raddb/modules/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 module "detail" from file /etc/raddb/modules/detail

  detail {

    detailfile = "/var/log/radius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d"

    header = "%t"

    detailperm = 384

    dirperm = 493

    locking = no

    log_packet_header = no

  }

 Module: Linked to module rlm_radutmp

 Module: Instantiating module "radutmp" from file /etc/raddb/modules/radutmp

  radutmp {

    filename = "/var/log/radius/radutmp"

    username = "%{User-Name}"

    case_sensitive = yes

    check_with_nas = yes

    perm = 384

    callerid = yes

  }

 Module: Linked to module rlm_attr_filter

 Module: Instantiating module "attr_filter.accounting_response" from file /etc/raddb/modules/attr_filter

  attr_filter attr_filter.accounting_response {

    attrsfile = "/etc/raddb/attrs.accounting_response"

    key = "%{User-Name}"

    relaxed = no

  }

 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: Instantiating module "attr_filter.access_reject" from file /etc/raddb/modules/attr_filter

  attr_filter attr_filter.access_reject {

    attrsfile = "/etc/raddb/attrs.access_reject"

    key = "%{User-Name}"

    relaxed = no

  }

 } # modules

} # server

server inner-tunnel { # from file /etc/raddb/sites-enabled/inner-tunnel

 modules {

 Module: Checking authenticate {...} for more modules to load

 Module: Linked to module rlm_unix

 Module: Instantiating module "unix" from file /etc/raddb/modules/unix

  unix {

    radwtmp = "/var/log/radius/radwtmp"

  }

 Module: Checking authorize {...} for more modules to load

 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

 } # 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"

 }

}

listen {

    type = "auth"

    ipaddr = 127.0.0.1

    port = 18120

}

 ... adding new socket proxy address * port 47684

Listening on authentication address * port 1812

Listening on accounting address * port 1813

Listening on command file /var/run/radiusd/radiusd.sock

Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel

Listening on proxy address * port 1814

Ready to process requests.

rad_recv: Access-Request packet from host 10.0.0.6 port 1026, id=39, length=135

    NAS-IP-Address = 10.0.0.6

    NAS-Port-Type = Wireless-802.11

    NAS-Port = 0

    Framed-MTU = 1400

    User-Name = "guest"

    Calling-Station-Id = "00-1B-77-21-39-6C"

    Called-Station-Id = "00-1F-28-C4-9E-83"

    NAS-Identifier = "MDFA-2-H09"

    EAP-Message = 0x0201000c016a6c75646c6f77

    Message-Authenticator = 0x25f3e3f83ec5654d9427870ef7304330

# Executing section authorize from file /etc/raddb/sites-enabled/default

+- entering group authorize {...}

++[preprocess] returns ok

++[chap] returns noop

++[mschap] returns noop

[suffix] No '@' in User-Name = "guest", looking up realm NULL

[suffix] No such realm "NULL"

++[suffix] returns noop

[eap] EAP packet type response id 1 length 12

[eap] No EAP Start, assuming it's an on-going EAP conversation

++[eap] returns updated

++[files] returns noop

[ldap] performing user authorization for guest

[ldap]     expand: %{Stripped-User-Name} -> 

[ldap]     ... expanding second conditional

[ldap]     expand: %{User-Name} -> guest

[ldap]     expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=guest)

[ldap]     expand: dc=My Org,dc=UA -> dc=My Org,dc=UA

  [ldap] ldap_get_conn: Checking Id: 0

  [ldap] ldap_get_conn: Got Id: 0

  [ldap] attempting LDAP reconnection

  [ldap] (re)connect to localhost:389, authentication 0

  [ldap] bind as cn=Admin,dc=My Org,dc=UA/ldapsecret to localhost:389

  [ldap] waiting for bind result ...

  [ldap] Bind was successful

  [ldap] performing search in dc=My Org,dc=UA, with filter (uid=guest)

[ldap] looking for check items in directory...

  [ldap] userPassword -> Password-With-Header == "{SSHA}kXYV0NQ5Cqb2c8nYkUOkomUY4aNkV1Bm"

  [ldap] sambaNtPassword -> NT-Password == 0x3730313339324543313134384238354441354243443132394536413143384335

  [ldap] sambaLmPassword -> LM-Password == 0x3130323441364441393830383345394644423232393432363146353938423443

[ldap] looking for reply items in directory...

[ldap] user guest authorized to use remote access

  [ldap] ldap_release_conn: Release Id: 0

++[ldap] returns ok

++[expiration] returns noop

++[logintime] returns noop

[pap] Normalizing NT-Password from hex encoding

[pap] Normalizing LM-Password from hex encoding

[pap] Normalizing SSHA1-Password from base64 encoding

[pap] WARNING: Auth-Type already set.  Not setting to PAP

++[pap] returns noop

Found Auth-Type = EAP

  WARNING: Unknown value specified for Auth-Type.  Cannot perform requested action.

# Executing group from file /etc/raddb/sites-enabled/default

Failed to authenticate the user.

Using Post-Auth-Type Reject

# Executing group from file /etc/raddb/sites-enabled/default

+- entering group REJECT {...}

[attr_filter.access_reject]     expand: %{User-Name} -> guest

attr_filter: Matched entry DEFAULT at line 11

++[attr_filter.access_reject] returns updated

Delaying reject of request 0 for 1 seconds

Going to the next request

Waking up in 0.9 seconds.

Sending delayed reject for request 0

Sending Access-Reject of id 39 to 10.0.0.6 port 1026

Waking up in 4.9 seconds.

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20120330/192a89a1/attachment-0001.html>


More information about the Freeradius-Users mailing list