Mor*_*uhr 16 ubuntu openldap wpa radius
我正在为大约 150 个用户设置无线网络。简而言之,我正在寻找设置 RADIUS 服务器以针对 LDAP 对 WPA2 进行身份验证的指南。在 Ubuntu 上。
还有一个坏消息:
更新 2009-08-18:
虽然我找到了几个有用的资源,但有一个严重的障碍:
Ignoring EAP-Type/tls because we do not have OpenSSL support.
Ignoring EAP-Type/ttls because we do not have OpenSSL support.
Ignoring EAP-Type/peap because we do not have OpenSSL support.
Run Code Online (Sandbox Code Playgroud)
基本上,FreeRADIUS 的 Ubuntu 版本不支持 SSL(错误 183840),这使得所有安全 EAP 类型都无用。无赖。
但是对于任何感兴趣的人来说,一些有用的文档:
更新 2009-08-19:
昨天晚上我最终编译了我自己的 FreeRADIUS 包 - http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html有一个非常好的食谱(见对帖子的评论以获取更新说明)。
我从http://CACert.org获得了证书(如果可能,您可能应该获得“真实”证书)
然后我按照http://vuksan.com/linux/dot1x/802-1x-LDAP.html 上的说明进行操作。这个链接到http://tldp.org/HOWTO/html_single/8021X-HOWTO/,如果你想知道 WiFi 安全是如何工作的,这是非常值得一读的。
更新 2009-08-27:
遵循上述指南后,我设法让 FreeRADIUS 与 LDAP 通信:
我在 LDAP 中创建了一个带有密码的测试用户mr2Yx36M
- 这给出了一个大致的 LDAP 条目:
uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja
Run Code Online (Sandbox Code Playgroud)
使用时radtest
,我可以正常连接:
> radtest testuser "mr2Yx36N" sbhr.dk 0 radius-private-password
Sending Access-Request of id 215 to 130.225.235.6 port 1812
User-Name = "msiebuhr"
User-Password = "mr2Yx36N"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 130.225.235.6 port 1812, id=215, length=20
>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试通过 AP 时,它不会飞 - 虽然它确实确认它找出了 NT 和 LM 密码:
...
rlm_ldap: sambaNTPassword -> NT-Password == 0x4441343431383745434139374237433134413232463239463532424542443930
rlm_ldap: sambaLMPassword -> LM-Password == 0x4346334436463841393239363745304645373243353745463530463736413035
[ldap] looking for reply items in directory...
WARNING: No "known good" password was found in LDAP. Are you sure that the user is configured correctly?
[ldap] user testuser authorized to use remote access
rlm_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
...
Run Code Online (Sandbox Code Playgroud)
很明显,NT 和 LM 密码与上述不同,但消息[ldap] user testuser authorized to use remote access
- 并且用户后来被拒绝......
Min*_*ark 12
我将在这里尝试回答 LDAP 问题。
这是简短的回答:确保ldap
模块已从该authenticate
部分中移除,并确保该mschap
模块同时存在于authorize
和authenticate
部分中。只需忽略“没有“已知好的”密码”。
现在这是(非常)长的答案。
ldap 模块如何工作?
当您激活本节中的ldap
模块时authorize
,当 FreeRADIUS 接收到 RADIUS 数据包时,它会执行以下操作:
ldap.conf
)ldap.conf
)下的过滤器搜索用户的 DN 条目。ldap.attrmap
,并将它们转换为 RADIUS 属性。当您激活该部分中的ldap
模块时authenticate
,这就是 FreeRADIUS 所做的:
Radius-Accept
发包给客户端,否则为失败,导致Radius-Reject
发包。那么如何配置 FreeRADIUS 以使 PEAP/MS-CHAP-v2 与 LDAP 一起使用?
这里重要的一点是,只有当 FreeRADIUS 服务器可以从它收到的 RADIUS 数据包中检索到用户的明文密码时,才能绑定为用户。仅当使用 PAP 或 TTLS/PAP 身份验证方法(也可能还使用 EAP/GTC)时才会出现这种情况。只有 TTLS/PAP 方法才是真正安全的,并且在 Windows 中默认不可用。如果您希望您的用户与 TTLS/PAP 连接,您需要让他们安装 TTLS 请求者软件,这很少是一个选项。大多数情况下,在使用 WPA Enterprise securiy 部署 WiFi 时,PEAP/MS-CHAP-v2 是唯一合理的选择。
所以底线是:除非您使用 PAP 或 TTLS/PAP,否则您可以安全地ldap
从该authenticate
部分中删除该模块,实际上,您应该: 绑定用户将不起作用。
如果您的测试在使用时有效radtest
,则可能意味着该ldap
模块在该authenticate
部分中被激活:它将尝试以用户身份绑定,并且由于 radtest 使用 PAP 身份验证,因此它会成功。但如果您尝试通过接入点连接,它将失败,因为您使用的是 PEAP/MS-CHAP-v2。
您应该做的是ldap
从authenticate
部分中删除模块,并确保mschap
在authorize
和authenticate
部分中激活模块。将会发生的是,mschap
模块将使用NT-Password
在该authorize
阶段期间从 LDAP 服务器检索的属性来处理身份验证。
这是您的sites-enabled/default
文件的外观(没有所有注释):
...
authorize {
preprocess
suffix
eap {
ok = return
}
expiration
logintime
}
authenticate {
eap
}
...
Run Code Online (Sandbox Code Playgroud)
您的sites-enabled/inner-tunnel
文件应该如下所示:
...
authorize {
mschap
suffix
update control {
Proxy-To-Realm := LOCAL
}
eap {
ok = return
}
ldap
expiration
logintime
}
authenticate {
Auth-Type MS-CHAP {
mschap
}
eap
}
...
Run Code Online (Sandbox Code Playgroud)
“没有“已知好的”密码”警告怎么样?
好吧,你可以放心地忽略它。之所以存在,是因为ldap
模块UserPassword
在该authorize
阶段从 LDAP 服务器获取用户详细信息时找不到属性。在您的情况下,您拥有该NT-Password
属性,这对于PEAP/MS-CHAP-v2
身份验证来说非常好。
我猜这个警告存在是因为在ldap
设计模块时PEAP/MS-CHAP-v2
还不存在,所以当时唯一有意义的事情是从 LDAP 服务器检索 UserPassword 属性,以便使用 PAP、CHAP、EAP/ MD5 或此类身份验证方法。
根据错误报告,简单重建 FreeRADIUS 应该可以解决 OpenSSH 支持问题。只需要做一次。
我不确定管理的便捷性与设置有什么关系。通常,设置越复杂、越详细,管理起来就越容易,因为设置涵盖了所有基础。您的意思是配置也必须轻松地删除到其他服务器上吗?您要设置多少个无线局域网?
配置完成后,管理应仅限于 LDAP 用户添加、删除和修改。这些应该很容易,可以使用 ldapmodify(等)编写脚本,或者找到一个像样的 LDAP 图形前端并用屏幕截图记录流程。
归档时间: |
|
查看次数: |
39836 次 |
最近记录: |