找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 8094|回复: 8

Newifi Mini LEDE 下 EAP 企业级无线加密及 Radius 搭建

[复制链接]
本帖最后由 Tinko 于 2017-11-2 09:36 编辑

因为自己周边情况比较特殊,路由器上用的人比较多,之前一直定位不好哪些人什么时候在用,各自的使用情况也不是很清楚,前段时间因为懒得刷固件(一直用的 Pandorabox ),于是上了 Wifidog 。Wifidog的好处就在于不用过分折腾能直接用上,然而缺点就在于每次连接都需要认证,而且在如今 HTTPS 逐步铺开的情况下, Wifidog 是无法实现对 HTTPS 的截获和跳转的(搜了一圈好像有支持方案,但是看着太麻烦了),同时又由于 Wifidog 的认证跳转还会面临浏览器缓存的影响,不确定性就更大。于是为了实现帐号认证,决定改用企业级无线加密来进行身份认证。同时,又由于一些乱七八糟的想法和限制(主要是懒),所以这边主要的需求条件可以归结为以下几条:
  • 用户名密码认证
  • 不用Wifidog
  • 一次认证即绑定设备自动连接
  • 在路由器内完成所有认证流程
  • 不使用外部服务器
  • 保证路由器基本的路由功能不受影响

前期因为懒得刷固件,再加上 Pandorabox 用的也还比较顺手,所以第一时间想的还是 Pandorabox 的改造。但是在 Pandorabox 下是根本不存在 wpad-mini 这个包的,即便装上了 wpad 或者 hostapd 也不会在加密方式下出现 EAP 的选项。不甘心,直接跑去问 lintel ,L大倒是很直接,“暂时没有支持”。短短六个字告诉我此路不通。虽然现在告别了 Pandorabox ,但是我还是要说一句,潘多拉真的好用。

考虑到之前用的 U-boot 也比较老了,于是顺手换了一个新版本,好像还改了名字叫 PB-boot ,固件是 http://downloads.pandorabox.com. ... 0170907-1a831a3.bin 。另外因为自己比较懒得折腾,所以对于路由器底层的东西弄的也不多,也是图个方便,对于引导和恢复模式也就只有一个重刷固件的需求,也就没用 Breed ,单纯的嫌麻烦。

换了 PB-boot 之后就四处找固件呗。因为长年没刷固件了也不是很清楚最新的情况,搜了 Newifi Mini OpenWRT 之后找到了这个帖子:https://www.right.com.cn/forum/thread-206301-1-1.html ,直到一切弄完我才知道 LEDE 原来是 OpenWRT 的后续版本,也才在 LEDE 官网找到官方编译的 Newifi Mini 固件,不过也无所谓了,能用就成。

装上 LEDE 之后就是基本套路,配密码配 ssh ,我是直接用的官方软件源更新的,网络不好的可能需要自己找国内镜像。另外提一句, Newifi Mini 跑 LEDE 感觉很慢是因为 uhttpd 的 HTTPS 拖慢的,实际系统本身是完全跑得起来的。觉得无法接受这个情况的话可以关掉 uhttpd 的 HTTPS 跳转。

更新完软件源之后先卸载 wpad-mini 然后安装 wpad ,完成之后即可在无线设置下面的加密方式看到 EAP (是的,这回真的有了)。有就行了,接下来就是装 freeradius 。

我搜索到的内容都还是停留在 freeradius2 ,然而 LEDE 官方源里面提供的 freeradius 已经到了3,也算是个小惊喜。为了图方便,我一次性把 freeradius 的所有软件包全部装上了。

装完之后先用禁用和停止命令停掉可能启动的 radiusd 以及它的自启动项:
  1. # /etc/init.d/radiusd disable
  2. # /etc/init.d/radiusd stop
复制代码
接下来,打开 /etc/freeradius3/clients.conf ,在配置段 client localhost 下,能够看到当前默认的 secret ,也就是 Radius 认证密钥。将密钥复制,进入 LEDE 无线设置的加密设置,根据情况选择 WPA-EAP 或者 WPA2-EAP ,在下方填入 Radius 服务器地址(应该是 127.0.0.1)和前面拿到的密钥。保存更改后扫描网络,应该能够看到无线网络已经挂上了加密,但是这时候是无法登录的,因为 Radius 服务器并没有启动,所以需要使用有线网进行后续的调试。
当然,如果你选择使用一个 Radius 客户端来进行调试,在调试完成后再修改无线加密设置,也是可以的。

接下来使用这条命令启动 freeradius 的调试模式:
  1. # radiusd -X
复制代码
如果出现任何找不到文件之类的报错然后停止运行,就直接把相关的模块装上就成。重复这一步骤,直到这条命令的运行结果出现
  1. Ready to process requests
复制代码
并且稳定在这一条时,即表明 Radius 服务器已经起来了。此时尝试连接无线网络,会有一版的日志刷屏然后报错提示连接失败,这是正常情况(毕竟还没配帐号嘛),然后按 Ctrl+C 停掉 Radius ,准备配置认证方式。
freeradius 支持的认证方式非常多,包括什么 MySQL 啊, LDAP 啊,还有很多很多。由于我的需求就是简简单单一个帐号认证,自然也就没在路由器上面弄数据库,所以单文件记录帐号信息是最为理想的。同时,又不希望别人有访问路由器的权限,于是也就放弃了使用路由器自身 Unix 密码作为 Radius 帐号的认证策略。调整 Radius 认证策略的配置文件位于 /etc/freeradius3/sites-enabled/default 文件中的 server default / authorize 配置段内。这里放出我当前的配置:
  1. authorize {
  2.         filter_username
  3.         preprocess
  4.         files
  5.         chap
  6.         mschap
  7.         digest
  8.         suffix
  9.         eap {
  10.                 ok = return
  11.         }
  12.         expiration
  13.         logintime
  14.         pap
  15. }
复制代码
注:这里最主要的一项就是 files ,其它的比如 unix , sql 我都直接注释了。这中间应该还有几项是没有必要的,但是没有再去调整尝试。

接下来就是配置帐号,在 /etc/freeradius3/mods-config/files/authorize 中,根据文件中给出的示例,添加一行认证信息:
  1. bob    Cleartext-Password := "hello"
复制代码
保存之后使用上面给出的调试模式命令启动 Radius 服务器,再次连接。如果连接成功,那就恭喜你,RP大暴发。但是基本都会失败,因为 LEDE 官方打出来的包是有问题的。
如果失败原因是 “The users session was previously rejected” ,而且往上翻日志翻来覆去就是找不出原因,请尝试:
在 /etc/freeradius3/sites-available/inner-tunnel 中,第 220 行附近,有一段配置项:
  1. Auth-Type MS-CHAP {
  2.         mschap
  3. }
复制代码
将 MS-CHAP 更改为 MSCHAP ,即去掉中间的连字符号:
  1. Auth-Type MSCHAP {
  2.         mschap
  3. }
复制代码
保存之后尝试启动认证,如果成功,那就 OK 了。
(p.s. 这个问题我在某 G 上搜了两个多小时只看到一个人问这个情况)
成功之后就可以继续按照如上格式添加帐号信息,然后启动 Radius 服务,也就算完成了:

  1. # /etc/init.d/radiusd enable
  2. # /etc/init.d/radiusd start
复制代码
当然,对于我这边是不可能这么简单的。因为密码是明文保存,又没有一个可用的图形化管理界面,因此每次要更改密码的时候我都需要直接去修改 authorize 文件,那只要有人在后面看着,所有人的密码都暴露了。于是在文件中我的想法是保存为密文。根据 http://networkradius.com/doc/3.0.10/raddb/mods-available/pap.html 的介绍, freeradius 是支持这些哈希方式的,但是在我尝试 MD5 哈希密码的时候, freeradius 的报错提示是“因为没有明文密码无法生成 NT Hash 于是无法认证。”也就是说,连接过程中优先采用的也还是 MS-CHAPv2 认证方式。那既然这样就好办了,直接写入 NT Hash 作为密文:
  1. test   NT-Password := "69943C5E63B4D2C104DBBCC15138B72B"
复制代码
生成 NT Hash 的方法有以下几种:
  • 使用完整版 freeradius 套件中附带的 smbencrypt 命令;
  • http://www.cmd5.com/hash.aspx
  • https://tobtu.com/lmntlm.php
  • https://www.browserling.com/tools/ntlm-hash
  • 其余未列出


好啦,基本这就配置完成了,上几张图



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2恩山币 +3 收起 理由
bad*** + 2 亲,你这么厉害,我想做你的经纪人!
心落*** + 1 我对你的敬仰犹如江水滔滔,我上朝鲜战场后一定写信给你!!!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
太专业了,这得好好看看
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主能给个eap-tls配置吗?freeradius3下一直搞不定。

点评

没尝试过,不清楚  详情 回复 发表于 2017-11-2 19:58
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
apnic 发表于 2017-11-2 19:20
楼主能给个eap-tls配置吗?freeradius3下一直搞不定。

没尝试过,不清楚
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
请教楼主,我配置peap时指定了需要客户端证书,之后不能连接,提示握手失败,要怎么才能正常呀。

点评

没尝试过,不清楚  详情 回复 发表于 2017-11-12 16:27
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我之前想搞证书的,没成功就一直没搞了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
sanjiaotou 发表于 2017-11-8 16:38
请教楼主,我配置peap时指定了需要客户端证书,之后不能连接,提示握手失败,要怎么才能正常呀。

没尝试过,不清楚
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 osn 于 2020-1-6 22:40 编辑

这篇笔记记录,做了与楼主相同的配置。
也是在newifi-mini下,最小安装freeradius3,使用自签名证书,支持账号密码登陆,支持用户证书登陆。
Newifi OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3
请大家参考。

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您好,我通过NTRadPing测试一切正常,但是通过路由器配置radius后,手机连接指定wifi时连接不上,且radius在debug模式下也没有日志,请问您有遇到过这种情况吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 22:38

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表