我们已经在有线网络上正确配置了 LDAP+Kerberos。
现在我们希望用户使用他们的正常凭证登录我们的 WiFi 网络。我找到了很多关于 LDAP+RADIUS 的 HOWTOS,但没有一个在包中提到 Kerberos。有人能告诉我一个关于将 RADIUS 与 Kerberos 集成的好的 HOWTO 吗?我只找到了这篇短文以及 Usenet 上的一些无信息量的帖子。
编辑:系统是 Gentoo Linux,使用 OpenLDAP 和 Heimdal (Kerberos)。WiFi 硬件是几个带有 OpenWRT 的 Linksys WRT54GL。
答案1
这可以通过 802.1x - PEAP-MSCHAP 到 MIT 的 kerberos 来实现,借助韩国核能研究与开发协会. 最初开发的目的是允许 Samba 用户使用 NTLM 向 kerberos 进行身份验证,它的库可以在 freeradius 中使用,以执行所需的 NTLM 哈希验证。
此解决方案要求您能够熟练地运行和维护自定义软件。实施的大致步骤如下:
- 将
arcfour-hmac:normal
密码哈希添加到您的 KDB。用户必须更新其密码以创建 NTLM 所需的哈希。 - 构建并安装一个 kcrapd 守护进程,在 KDB 上运行以查找用户哈希。
- 在您的 RADIUS 服务器上构建、安装和配置 kcrap-libs。
- 为您的 radius 服务器构建一个身份验证模块,该模块与 kcrap-libs 交互以验证用户。
我们为整个校园运行此解决方案,其中 Windows 设备自动使用其本机 AD 凭据与我们同步的 KDB 进行身份验证。
答案2
以下是如何让 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
}
}
这假设您已将正确的 radius 模式(随 freeradius 一起提供,IIRC)添加到 LDAP 目录中,并且它应该为您指明正确的方向---我不使用 802.1X,但我确实使用此配置来处理其他通过 radius 的 kerberos 访问控制方案,并且它已在生产中运行了一段时间。显然,用户使用其完整的 kerberos 主体(而不仅仅是用户名)登录。
答案3
如果是微软,那么就有几篇文章。 科技网 以及此处的一份文档TechNet Word 文档