在Ubuntu上为WPA2设置RADIUS LDAP

前端之家收集整理的这篇文章主要介绍了在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类型都无用.游民.

但对于任何感兴趣的人都有一些有用的文

> http://vuksan.com/linux/dot1x/802-1x-LDAP.html
> http://tldp.org/HOWTO/html_single/8021X-HOWTO/#confradius

更新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 – 这给出了一个大致为:

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]用户testuser被授权使用远程访问 – 后来用户被拒绝了……

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

这里是简短的回答:确保从authenticate部分删除ldap模块,并确保mscp模块存在于authorize和authenticate部分.并且忽略’No’已知良好的“密码”.

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

ldap模块如何工作?

在授权部分激活ldap模块时,这就是FreeRADIUS收到RADIUS数据包时的操作:

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

当您在authenticate部分激活ldap模块时,这就是FreeRADIUS所做的事情:

>它尝试以用户身份绑定到LDAP服务器.
>如果它可以绑定,那么它是一个成功的身份验证,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,否则您可以安全地从authenticate部分删除ldap模块,实际上,您应该:绑定,因为用户将无法工作.

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

您应该做的是从authenticate部分删除ldap模块,并确保在authorize和authenticate部分中激活mschap模块.将要发生的是mschap模块将使用在授权阶段从LDAP服务器检索的NT-Password属性来处理身份验证.

以下是您的网站启用/默认文件应该是什么样的(没有所有注释):

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

以下是您的网站启用/内部隧道文件应如下所示:

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

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

好吧,你可以放心地忽略它.它只是因为ldap模块在授权阶段从LDAP服务器获取用户详细信息时找不到UserPassword属性.在您的情况下,您具有NT-Password属性,这对于PEAP / MS-CHAP-v2身份验证来说非常好.

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

猜你在找的Ubuntu相关文章