题 在Ubuntu上为WPA2设置RADIUS + LDAP


我正在为约150名用户建立一个无线网络。简而言之,我正在寻找设置RADIUS服务器以针对LDAP验证WPA2的指南。在Ubuntu上。

  • 我有一个工作的LDAP,但由于它不在生产中使用,它可以很容易地适应这个项目可能需要的任何变化。
  • 我一直在关注FreeRADIUS,但任何RADIUS服务器都可以。
  • 我们只为WiFi提供了一个单独的物理网络,因此对这方面的安全性没有太多担忧。
  • 我们的AP是惠普的低端企业 - 它们似乎支持您能想到的任何东西。
  • 所有的Ubuntu服务器,宝贝!

坏消息:

  • 我现在比我更不了解最终将接管管理的人,所以设置必须尽可能“微不足道”。
  • 到目前为止,我们的设置仅基于Ubuntu存储库中的软件,但我们的LDAP管理Web应用程序和一些小的特殊脚本除外。所以没有“获取包X,解压,./configure"-如果可以避免的话。

更新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.

基本上Ubuntu版本的FreeRADIUS不支持SSL(bug 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

使用时 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
> 

但是,当我尝试通过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
...

很明显,NT和LM密码与上述不同,但信息不同 [ldap] user testuser authorized to use remote access  - 用户后来被拒绝了......


16
2017-07-29 22:51




NT和LM密码以加密方式存储,因此它们是否不同并不明显。您需要确定AP正在使用的密码,如果以明文形式传递,则MD5将在其位置传递,或者......其他内容。 RADIUS客户端可以使用任意数量的RADIUS属性进行密码或类似密码的身份验证。另外,请尝试填充过期属性。 - kmarsh


答案:


我将尝试在这里回答LDAP问题。

这是简短的回答:确保 ldap 模块已从中删除 authenticate 部分,并确保 mschap 模块存在于两者中 authorize 和 authenticate 部分。并且忽略'No'已知良好的“密码”。

现在这是(非常)长的答案。

ldap模块如何工作?

当你激活 ldap 中的模块 authorize 部分,这是FreeRADIUS收到RADIUS数据包时的作用:

  1. 它尝试绑定到LDAP服务器(作为来宾用户,或者如果配置了一个,则使用给定的身份) ldap.conf
  2. 它使用基本DN下的过滤器搜索用户的DN条目(配置为 ldap.conf)。
  3. 它获取在其中配置的所有LDAP属性 ldap.attrmap,并将它们转换为RADIUS属性。
  4. 它将这些属性添加到R​​ADIUS数据包的检查项列表中。

当你激活 ldap 中的模块 authenticate 部分,这就是FreeRADIUS的作用:

  1. 它尝试绑定到LDAP服务器 作为用户
  2. 如果它可以绑定,那么它是一个成功的身份验证,和 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安装WiFi时,PEAP / MS-CHAP-v2是唯一合理的选择。

所以底线是:除非您使用PAP或TTLS / PAP,否则您可以安全地删除 ldap 来自的模块 authenticate 部分,实际上,你应该:绑定,因为用户将无法工作。

如果您的测试在您使用时有效 radtest,这可能意味着 ldap 模块被激活了 authenticate section:它将尝试绑定为用户,并且由于radtest使用PAP身份验证,它将成功。但是,如果您尝试通过接入点进行连接,则会失败,因为您正在使用PEAP / MS-CHAP-v2。

你应该做的是删除 ldap 来自的模块 authenticate 部分,并确保您激活 mschap 两个模块都在 authorize 和 authenticate 部分。会发生什么事情 mschap 模块将使用。来处理身份验证 NT-Password 在LDAP期间从LDAP服务器检索的属性 authorize 相。

这是你的 sites-enabled/default 文件应该看起来像(没有所有评论):

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

这就是你的 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
    }
    ...

那么“不”已知良好的“密码”警告怎么样?

好吧,你可以放心地忽略它。它就在那里,因为 ldap 模块找不到 UserPassword 在从LDAP服务器获取用户详细信息时的属性 authorize 相。在你的情况下,你有 NT-Password 属性,这是非常好的 PEAP/MS-CHAP-v2 认证。

我猜警告存在是因为当时 ldap模块设计, PEAP/MS-CHAP-v2 还不存在,所以当时唯一有意义的是从LDAP服务器检索UserPassword属性,以便使用PAP,CHAP,EAP / MD5或此类身份验证方法。


11
2018-03-26 19:45





我将尝试在这里回答OpenSSL问题:简短的回答是 使用FreeRADIUS 2.1.8或更高版本,其中包括OpenSSL。它可以在Ubuntu Lucid和Debian Lenny的后端移植中使用(也可能最终会出现在Ubuntu Karmic的后端)。

这是一个很长的答案:

不幸的是,OpenSSL许可证曾经(有些)与FreeRADIUS许可证不兼容。因此,Ubuntu人选择提供FreeRADIUS二进制文件  与OpenSSL相关联。如果你想要EAP / TLS,PEAP或TTLS,你  获取源代码并使用。编译它们 --with-openssl 选项(如您使用的配方解释)。

但最近, 许可问题已得到修复。可以使用OpenSSL编译和分发FreeRADIUS 2.1.8或更高版本。坏消息是最新稳定的Ubuntu发行版(Karmic Koala)仅包含FreeRADIUS 2.1.0,没有OpenSSL(Debian也是如此,因为Lenny只包含FreeRADIUS 2.0.4)。我检查了Karmic-backports,但似乎FreeRADIUS 2.1.8或更高版本尚未上传到那里(但可能会很快添加, 看看这里)。所以现在,您必须切换到Ubuntu Lucid(包括FreeRADIUS 2.1.8)或坚持编译。对于Debian用户来说,事情要好一些:Lenny的后端包括FreeRADIUS 2.1.8。因此,如果您想要一些非常稳定且易于安装和维护的东西,我建议您使用Debian Lenny部署服务器,并安装后向移植的FreeRADIUS软件包(它还为您提供了免费编写python模块的可能性,而无需重新编译所有实验模块)。

我从中获得了证书    http://CACert.org (你可能应该   如果可能,获得“真正的”证书)

有一个“问题”与“真正的”证书(而不是自签名证书)。

我使用了Thawte签名的一个。它工作正常,用户可以看到一个美丽的“有效”证书 www.my-web-site.com当用户接受证书时,他的计算机实际上理解这一点 所有 应该信任由相同证书颁发机构颁发的证书 (我用Windows Vista和MacOSX Snow Leopard进行了测试)!所以在我的情况下,如果黑客有证书,比方说, www.some-other-web-site.com也是由Thawte签名,然后他可以轻松地进行中间人攻击,而不会在用户的计算机上显示任何警告!

对此的解决方案深入到用户计算机的网络配置中,以便明确指定只应信任“www.my-web-site.com”。它只需要一分钟,但大多数用户不知道在哪里配置它,除非你给他们一个明确的程序,并确保每个用户都遵循它。我仍然使用“有效”证书,但坦率地说,看到Windows和MacOSX共享这个“错误”是令人失望的:信任证书颁发机构而不是特定证书。哎哟...


3
2018-03-25 16:18





根据错误报告,FreeRADIUS的简单重建应解决OpenSSH支持问题。它只需要做一次。

我不确定管理的简易性与设置有什么关系。通常,设置越多,设置越详细,管理起来就越容易,因为设置涵盖了所有基础。你是说还必须轻松地将配置放在其他服务器上?您设置了多少个无线局域网?

配置完成后,管理应限于LDAP用户添加,删除和修改。这些应该足够简单,可以使用ldapmodify(等)编写脚本,也可以找到合适的LDAP图形前端,并使用屏幕截图记录流程。


1
2017-08-18 20:15



首先,每次提供更新时都必须重新编译包(羡慕Gentoo-folks :))。在其他方面,我完全同意 - 如果设置涵盖所有基础,我的继任者将做的工作较少(并且反向工程的工作量较少)。 - Morten Siebuhr


我遇到了同样的问题。我必须下载RADIUS源并自行编译。


0
2017-08-28 03:50





您可以使用FreeRADIUS2(使用OpenSSL)+ EAP-TLS + WPA2-Enterprice。 这是很好的 如何操作。 Windows XP SP3本身支持它以及Windows 7,Android 2.3,iPhone,Symbian。 但我不知道在这样的方案中与SLDAP的兼容性。


-1
2017-11-17 07:40