如何将 RADIUS 与 Kerberos 集成?

min*_*der 4 linux ldap kerberos radius heimdal

我们已经在有线网络上正确配置了 LDAP+Kerberos。

现在我们希望我们的用户使用他们的普通凭据登录到我们的 WiFi 网络。我发现了很多关于 LDAP+RADIUS 的 HOWTOS,但没有一个在包中提到 Kerberos。任何人都可以向我指出有关将 RADIUS 与 Kerberos 集成的良好 HOWTO 吗?我在 Usenet 上只找到了这篇简短的文章和一些非信息性的帖子。

编辑:系统是使用 OpenLDAP 和 Heimdal (Kerberos) 的 Gentoo Linux。WiFi 硬件是几个带有 OpenWRT 的 Linksys WRT54GL。

Jam*_*ape 5

以下是您如何让 freeradius 针对 Kerberos 服务器检查用户/密码组合,并针对您的 LDAP 后端进行授权——将其粘贴到您的 radius.conf 中:

modules {
    krb5 {
            keytab = ${confdir}/radius.keytab
            service_principal = radius/radius.example.com
    }

    ldap {
            cache = no
            server = "ldap"
            identity = "uid=freeradius,ou=Accounts,dc=example,dc=com"
            password = secret
            basedn = "dc=com"
            filter = "(krbPrincipalName=%{User-Name})"
            base_filter = "(objectClass=radiusprofile)"

            tls {
                    start_tls = no
                    # tls_cacertfile        = /path/to/cacert.pem
                    # tls_cacertdir         = /path/to/ca/dir/
                    # tls_certfile          = /path/to/radius.crt
                    # tls_keyfile           = /path/to/radius.key
                    # tls_randfile          = /path/to/rnd
                    # tls_require_cert      = "demand"
            }

            default_profile = "uid=freeradius,ou=Accounts,dc=example,dc=com"
            profile_attribute = "radiusProfileDn"
            access_attr = "dialupAccess"

            dictionary_mapping = ${raddbdir}/ldap.attrmap

            ldap_connections_number = 5

            groupname_attribute = cn
            groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))"
            #groupmembership_attribute = radiusGroupName
            timeout = 4
            timelimit = 3
            net_timeout = 1
            # compare_check_items = yes
            # do_xlat = yes
            # access_attr_used_for_allow = yes

            # set_auth_type = yes
    }
}
Run Code Online (Sandbox Code Playgroud)

这假设您已将正确的半径模式(随 freeradius、IIRC 一起提供)添加到您的 LDAP 目录中,并且它应该为您指明正确的方向---我不使用 802.1X,但我确实使用此配置来处理其他 kerberos-via-radius 访问控制方案,并且它已经在生产中运行了一段时间。显然,用户正在使用他们的完整 kerberos 主体(而不仅仅是用户名)登录。