使用LDAP为WPA2 Enterprise配置FreeRadius

时间:2014-04-11 16:44:13

标签: ldap freeradius wpa

我需要帮助通过LDAP为WPA2 Enterprise配置freeradius。

LDAP通常适用于其他服务,但是,它不适用于WPA2E。

我们还管理WPA2E以使用硬编码的用户名/密码。所以我们知道他们自己工作的所有组件,但不能一起工作。

我们已将freeradius服务器配置为可以使用LDAP服务。

感谢任何帮助

这是我的自由半径模块/ ldap文件的ldap设置(主要与此问题无关)

ldap {
    server = "ldapmaster.domain.com,ldapslave.domain.com"
    identity = "uid=binder,ou=services,dc=security,dc=domain,dc=com"
    password = asdfasdfasdf
    basedn = "ou=internal,ou=users,dc=security,dc=domain,dc=com"
    filter = "(mail=%{%{Stripped-User-Name}:-%{User-Name}})"
    ldap_connections_number = 5
    max_uses = 0
    timeout = 4
    timelimit = 3
    net_timeout = 1

    tls {
            start_tls = yes
            require_cert    = "never"
    }

    dictionary_mapping = ${confdir}/ldap.attrmap
    password_attribute = userPassword
    edir_account_policy_check = no

    keepalive {
            idle = 60
            probes = 3
            interval = 3
    }}

还为eap.conf

进行了以下设置
eap {
default_eap_type = peap
timer_expire     = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
max_sessions = 4096

md5 {
}

leap {
}

gtc {
        auth_type = PAP
}

tls {
        certdir = ${confdir}/certs
        cadir = ${confdir}/certs
        private_key_password = whatever
        private_key_file = ${certdir}/server.key
        certificate_file = ${certdir}/server.pem
        CA_file = ${cadir}/ca.pem
        dh_file = ${certdir}/dh
        random_file = /dev/urandom
        CA_path = ${cadir}
        cipher_list = "DEFAULT"
        make_cert_command = "${certdir}/bootstrap"

        cache {
              enable = no
              max_entries = 255
        }

        verify {
        }
}

ttls {
        default_eap_type = md5
        copy_request_to_tunnel = no
        use_tunneled_reply = no
        virtual_server = "inner-tunnel"
}


peap {
        default_eap_type = mschapv2
        copy_request_to_tunnel = no
        use_tunneled_reply = no
        virtual_server = "inner-tunnel"
}

mschapv2 {
}}

还启用了两个站点,默认和内部隧道:

默认

authorize {
    preprocess
    suffix
    eap {
        ok = return
    }
    expiration
    logintime
    ldap
}
authenticate {
    eap
    ldap
}

内隧道

authorize {
    mschap
    update control {
           Proxy-To-Realm := LOCAL
    }
    eap {
        ok = return
    }
    expiration
    ldap
    logintime
}
authenticate {
    Auth-Type MS-CHAP {
        mschap
    }
    eap
    ldap
}

以下是我在调试日志中看到的示例日志:

https://gist.github.com/anonymous/10483144

1 个答案:

答案 0 :(得分:1)

您似乎删除了sites-available/inner-tunnelsites-enabled/inner-tunnel

之间的符号链接

如果您查看日志,它会抱怨它无法找到内部隧道服务器,它需要在PEAP身份验证的TLS隧道中执行MSCHAPv2身份验证。

server  {
  PEAP: Setting User-Name to emre@domain.com
Sending tunneled request
        EAP-Message = 0x0205001a01656d72654071756269746469676974616c2e636f6d
        FreeRADIUS-Proxied-To = 127.0.0.1
        User-Name = "emre@domain.com"
server inner-tunnel {
No such virtual server "inner-tunnel"
} # server inner-tunnel

重新添加符号链接,并在内部隧道服务器的“授权”部分顶部列出ldap模块。您还需要使用ldap attrmap文件将包含用户的Cleartext-Password的属性映射到User-Password属性。

如果目录中没有用户的Cleartext-Password(例如,如果它已经哈希),那么您应该使用EAP-TTLS-PAP,并在内部隧道服务器的authenticate部分列出LDAP模块,然后添加:

if (User-Password) {
    update control {
        Auth-Type := LDAP
    }
}

到内部隧道服务器的授权部分。