Hello list,

 

in my further tests with FreeRADIUS v3 (rpmbuild from v3.0.x branch) I have a problem with the ldap module and start_tls.

 

This is definitely working:

-          Ldap connect with ldap utils (ldapsearch -ZZ and so on) via port 389 with starttls

-          Ldap connect with FreeRADIUS 2.1.12 via port 389 (start_tls = yes and require_cert = "demand")

 

This is not working:

-          FR 3 ldap module isn’t able to connect to ldap server via port 389 + start_tls=yes

-          FR debug error:

 

  # Loaded module rlm_ldap

  # Instantiating module "ldap" from file /etc/raddb/mods-enabled/ldap

  ldap {

        server = "fqdn" (matches CN in ldap server certificate)

        port = 389

        password = "xxx"

        identity = "xxx"

        valuepair_attribute = "radiusVSA"

        read_clients = yes

   user {

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

        scope = "sub"

        base_dn = "xxx"

        access_attribute = "radiusAccountStatus"

        access_positive = yes

   }

   group {

        filter = "(objectClass=groupOfNames)"

        scope = "sub"

        base_dn = "xxx"

        name_attribute = "cn"

        membership_attribute = "memberOf"

        membership_filter = "(member=%{control:Ldap-UserDn})"

        cacheable_name = no

        cacheable_dn = yes

   }

   client {

        filter = "(objectClass=radiusClient)"

        scope = "sub"

        base_dn = "xxx"

    attribute {

        identifier = "radiusClientIdentifier"

        shortname = "radiusClientShortname"

        nas_type = "radiusClientType"

        secret = "radiusClientSecret"

        virtual_server = "radiusClientVirtualServer"

        require_message_authenticator = "radiusClientRequireMa"

    }

   }

   profile {

        filter = "(objectclass=radiusObjectProfile)"

        attribute = "radiusGroupName"

        default = "xxx"

   }

   options {

        ldap_debug = 597

        chase_referrals = yes

        rebind = yes

        net_timeout = 1

        res_timeout = 20

        srv_timelimit = 20

        idle = 60

        probes = 3

        interval = 3

   }

   tls {

        ca_file = "/etc/raddb/certs/rootca_cert.pem"

        start_tls = yes

        require_cert = "demand" (also tested with never, same result)

   }

  }

   accounting {

        reference = "%{tolower:type.%{Acct-Status-Type}}"

   }

   post-auth {

        reference = "."

   }

rlm_ldap (ldap): Initialising connection pool

   pool {

        start = 5

        min = 4

        max = 10

        spare = 3

        uses = 0

        lifetime = 0

        cleanup_delay = 5

        idle_timeout = 60

        spread = no

   }

rlm_ldap (ldap): Opening additional connection (0)

rlm_ldap (ldap): Connecting to fqdn:389

rlm_ldap (ldap): Could not start TLS: Connect error

rlm_ldap (ldap): Opening connection failed (0)

rlm_ldap (ldap): Removing connection pool

/etc/raddb/mods-enabled/ldap[8]: Instantiation failed for module "ldap"

 

-          openldap debug log:

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 1 descriptor

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: slap_listener_activate(7):

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 busy

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: >>> slap_listener(ldap:///)

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: listen=7, new connection on 16

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 1 descriptor

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: added 16r (active) listener=(nil)

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 2 descriptors

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]:  16r

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: read active on 16

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_get(16)

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_get(16): got connid=1003

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_read(16): checking for input on id=1003

Nov 28 11:21:00 radiusv3test slapd[7737]: op tag 0x77, time 1385634060

Nov 28 11:21:00 radiusv3test slapd[7737]: conn=1003 op=0 do_extended

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 1 descriptor

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]: do_extended: oid=1.3.6.1.4.1.1466.20037

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: send_ldap_extended: err=0 oid= len=0

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: send_ldap_response: msgid=1 tag=120 err=0

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 1 descriptor

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]:  16r

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: read active on 16

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_get(16)

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_get(16): got connid=1003

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_read(16): checking for input on id=1003

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 1 descriptor

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 1 descriptor

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]:  16r

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: read active on 16

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_get(16)

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_get(16): got connid=1003

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_read(16): checking for input on id=1003

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_read(16): TLS accept failure error=-1 id=1003, closing

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_closing: readying conn=1003 sd=16 for close

Nov 28 11:21:00 radiusv3test slapd[7737]: connection_close: conn=1003 sd=16

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: removing 16

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on 1 descriptor

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: activity on:

Nov 28 11:21:00 radiusv3test slapd[7737]:

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=7 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=8 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=9 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=10 active_threads=0 tvp=zero

Nov 28 11:21:00 radiusv3test slapd[7737]: daemon: epoll: listen=11 active_threads=0 tvp=zero

 

FreeRADIUS 3:

# ldd /usr/sbin/radiusd

        linux-vdso.so.1 =>  (0x00007fff8c1ff000)

        libfreeradius-server.so => /usr/lib64/freeradius/libfreeradius-server.so (0x00007f224b44b000)

        libfreeradius-radius.so => /usr/lib64/freeradius/libfreeradius-radius.so (0x00007f224b21b000)

        libfreeradius-eap.so => /usr/lib64/freeradius/libfreeradius-eap.so (0x00007f224b011000)

        libpcre.so.0 => /lib64/libpcre.so.0 (0x00007f224ade0000)

        libpcreposix.so.0 => /usr/lib64/libpcreposix.so.0 (0x00007f224abdd000)

        libtalloc.so.2 => /usr/lib64/libtalloc.so.2 (0x00007f224a9d3000)

        libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f224a639000)

        libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f224a3db000)

        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f224a1c2000)

        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2249fa8000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2249da3000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2249b86000)

        libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f2249943000)

        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f224970b000)

        libc.so.6 => /lib64/libc.so.6 (0x00007f2249378000)

        /lib64/ld-linux-x86-64.so.2 (0x00007f224b66d000)

        librt.so.1 => /lib64/librt.so.1 (0x00007f2249170000)

        libz.so.1 => /lib64/libz.so.1 (0x00007f2248f59000)

        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f2248d15000)

        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f2248a2f000)

        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f224882a000)

        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f22485fe000)

        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f22483dd000)

        libfreebl3.so => /lib64/libfreebl3.so (0x00007f2248170000)

        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f2247f65000)

        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f2247d62000)

        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f2247b42000)

 

FreeRADIUS v2.1.12 (default RPM from official CentOS Repo):

# ldd /usr/sbin/radiusd

        linux-vdso.so.1 =>  (0x00007fffa9980000)

        libfreeradius-radius-2.1.12.so => /usr/lib64/freeradius/libfreeradius-radius-2.1.12.so (0x00007fb0297b0000)

        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fb029591000)

        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fb029377000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb02915a000)

        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb028f22000)

        libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fb028d19000)

        libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fb028abc000)

        libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007fb028721000)

        libc.so.6 => /lib64/libc.so.6 (0x00007fb02838e000)

        /lib64/ld-linux-x86-64.so.2 (0x00007fb029c1e000)

        libfreebl3.so => /lib64/libfreebl3.so (0x00007fb028122000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007fb027f1d000)

        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fb027cd9000)

        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fb0279f3000)

        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fb0277ee000)

        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fb0275c2000)

        libz.so.1 => /lib64/libz.so.1 (0x00007fb0273ac000)

        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fb0271a0000)

        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fb026f9d000)

        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fb026d7d000)

 

Thanks in advance for any help and please let me know if further information is needed.

 

Kind regards,

Tobias Hachmer