登录
  • 人们都希望被别人需要 却往往事与愿违
  • 如果让中宣部的官员和卫生部的官员对调, 那么中国既有了言论自由, 也有了食品安全。

在 Padavan 上简单的使用 Radius 进行 802.1x 认证

IT Benny 小土豆 15537 次浏览 2592 字 26 个评论
文章目录 [显示]
这篇文章在 2018 年 08 月 06 日 14:44:08 更新了哦~

注意看,是 Radius,不是 Redis

通常来说,我们的无线网络一般是使用 WPA2-Personal 保护的,但是如果能够使用 802.1x,每位用户输入自己的用户名密码,类似某些企业、学校那种认证方式,岂不是很好玩

当然了,咱只是为了好玩…… 好像并没什么卵用的样子

前置条件

需要有一台支持 WPA2-Enterprise 的路由器

包括但不限于 Padavan 等第三方固件。某些路由器的官方固件也是支持的。

比如,在这款 TP-LINK 固件中无线安全的设置下我们可以看到这个:

在Padavan上简单的使用Radius进行802.1x认证

Padavan 固件中可以看到这些

在Padavan上简单的使用Radius进行802.1x认证

一台服务器

无论这台服务器是在内网的,还是在外网(比如说腾讯云的也可以)的都可以,只要能和路由器互相通信,并且拥有一个固定的 IP 即可。

当然了,我这么穷,肯定是拿树莓派做 Radius 服务器啦。如果想拿 Padavan 自身做 Radius 服务器…… 嗯~ o( ̄▽ ̄)o 这个还是算了吧,交叉编译太麻烦,性能也有点太差劲呢。

当然了,这台服务器是要装好一个 Linux 发行版的。方便起见,这里我用的是 Ubuntu Mate 16.04,IP 地址为 192.168.7.193. 当然了,我已经在 Padavan 中绑定了这个 IP,这样就不会因为种种原因导致分配了其他的 IP 地址啦。


小提示:固定 IP 分配方法
高级配置 - 内部网络 - DHCP 服务器,最下方的手动指定 IP 的 DHCP 列表。

其他固件可以参考类似条目或者 IP 与 MAC 绑定等。

准备 Radius 服务器

既然要使用 WPA2-Enterprise,咱就要有 Radius 服务器来提供认证。这里咱就选择 freeRadius 啦。

所以就是编译编译咯。以 Ubuntu、freeRadius 3.0.x 为例:

  1. sudo apt update
  2. sudo apt install libtalloc-dev libssl-dev build-essential
  3. wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.17.tar.gz
  4. tar xf freeradius-server-3.0.17.tar.gz && rm freeradius-server-3.0.17.tar.gz
  5. cd freeradius-server-3.0.17
  6. ./configure
  7. make -j4 && sudo make install

在最后一步make install时,由于树莓派这孱弱的性能,生成 DH 密钥花了很长时间(超过半小时哦) 在Padavan上简单的使用Radius进行802.1x认证

修改配置

经过漫长的编译之后,如果确认编译成功的话,那咱们就开始配置吧。

以 root 权限执行如下命令开启调试模式:

  1. sudo radiusd -X

不出意外的话你会看到这样的报错:

Debugger not attached
Refusing to start with libssl version OpenSSL 1.0.2g 1 Mar 2016 0x1000207f (1.0.2g release) (in range 1.0.2 release - 1.0.2h rele)
Security advisory CVE-2016-6304 (OCSP status request extension)
For more information see https://www.openssl.org/news/secadv/20160922.txt
Once you have verified libssl has been correctly patched, set security.allow_vulnerable_openssl = 'CVE-2016-6304'

要么更新 OpenSSL 到 1.0.2h 之后的,要么…… 禁用这个检查呗。鉴于 OpenSSL 实在是太基础的东西,怕更新出乱子,还是禁用吧

  1. sudo vim /usr/local/etc/raddb/radiusd.conf

找到allow_vulnerable_openssl = no,把 no 改成 yes

此时再运行sudo radius -X,就应该能看到 Ready to process requests 字样了。

添加认证信息

我们需要配置两个认证信息,一个是路由器连接到 Radius 的认证信息,一个是客户用于连接到热点的信息。

  1. sudo vim /usr/local/etc/raddb/clients.conf

在文件末尾添加如下信息:

  1. client new {
  2. ipaddr = 192.168.7.1
  3. secret = pi.lan
  4. }

其中 IP 地址是路由器的 IP 地址,secret 是设置的密码。

  1. sudo vim /usr/local/etc/raddb/mods-config/files/authorize

在文件的开头(或者找到取消注释)添加如下信息:

  1. bob Cleartext-Password := "hello"
  2. Reply-Message := "Hello, %{User-Name}"

这行配置的意思是,用户名为 bob,密码为 hello

保存退出,再次运行sudo radiusd -X

另开一个窗口,运行如下命令:

  1. radtest bob hello 127.0.0.1 0 test
  2. ing123

如果出现如下图所示的 Access-Accept 那么就是配置成功了

在Padavan上简单的使用Radius进行802.1x认证

配置路由器

在路由器中找到对应的 WPA2-Enterprise 的配置,大概如下设置:

在Padavan上简单的使用Radius进行802.1x认证

之后保存即可

客户端连接

之后拿起你的手机,找到刚刚的热点,会发现已经变成 802.1x 认证了,输入用户名 bob,密码 hello,就可以成功连接啦。

在Padavan上简单的使用Radius进行802.1x认证

注意事项

这只是一个非常简单的基础配置教程,可能存在一些不安全的因素。所以以后说不定出系列呗?比如说用数据库,提升安全性……?

更多详情,还是看下面的参考资料吧

参考资料

https://wiki.freeradius.org/building/Home

https://freeradius.org/documentation/

https://freeradius.org/doc/getting_started.html

http://networkradius.com/doc/FreeRADIUS%20Technical%20Guide.pdf

https://depthsecurity.com/blog/when-802-1x-peap-eap-ttls-is-worse-than-no-wireless-security


文章版权归原作者所有丨本站默认采用 CC-BY-NC-SA 4.0 协议进行授权 |
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/padavan-radius.html
喜欢 (13)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(26) 个小伙伴在吐槽
  1. 怎么设置 radiusd 开机自动启动
    多尼米 2019-12-07 15:17 回复
    • 可以尝试加到 rc.d 里
      Benny 小土豆 2019-12-07 15:19 回复
  2. 搞定了,太稳了。之前用 freeradius2.2 版本一致认证不了,改用 3.0 就可以了
    多尼米 2019-11-25 13:41 回复
  3. 也就是如果每需要添加一个用户我就需要去手动添加吗?感觉好烦。
    Leeds2019-11-03 04:45 回复
    • 不是的哦,这家伙支持用数据库作为用户认证信息库。参考下文档吧
      Benny 小土豆 2019-11-05 09:52 回复
  4. 密鑰生成慢可能只是熵不夠 立即 haveged
    去你妹的實名制 2019-01-20 06:55 回复
    • 也可能哦…… 下次一边生产一边 speedtest :grin:
      Benny 小土豆 2019-01-28 09:39 回复
  5. 那怎么提供注册、登录、改密码的功能呢?
    Clarke2019-01-04 00:12 回复
    • 可能你需要看下 freeradius 的文档,以及其他开源的工具。嗯~ o(* ̄▽ ̄*)o
      Benny 小土豆 2019-01-04 09:25 回复
  6. 突然发现 “Ubuntu Mate 6.04”
    萌新 2018-07-17 11:55 回复
    • 噗 (/≧▽≦)/ 你穿越回了 10 年前。
      Benny 小土豆 2018-07-17 12:01 回复
  7. 这个路由器是什么型号
    桃花懂了 2018-07-10 11:40 回复
    • 联想 y1s
      Benny 小土豆 2018-07-10 12:40 回复
  8. 今天给树莓派重装系统,重新编译 安装了一遍,一切正常,在路由器的 shell 里 用 nc 测试 1812 UDP 端口,是有响应的。 我觉得有可能是 我的路由器固件有问题
    nels0n2018-07-09 07:09 回复
    • 我也是重装了编译就过了……
      你可以检查下路由器的设置。
      Benny 小土豆 2018-07-09 09:11 回复
  9. 今天重新编译,贴一下错误日志 make: *** No rule to make target 'src/freeradius-devel/rfc2', needed by 'build/objs/src/modules/proto_dhcp/dhcp.lo'. Stop. 我晕啊
    nels0n2018-07-08 19:32 回复
  10. 折腾一晚上 在 树莓派 zero 搭建完成了 radius 服务,服务端测试通过,但是客户端怎么也连接不上。 zero 使用的是 raspbianPi 的系统 路由器是 K2P 刷的 Padavan 改。 目前的情况是,手机连接 提示密码错误,windows 10 无法连接 目前猜测是 路由器的 radius 客户端有问题,请 博主 指教一下。
    nels0n2018-07-06 21:17 回复
    • 先照着教程完整再过一遍,看看是不是哪里错了丢了某个步骤。
      然后检查下路由器真的连接上了 radius 服务器吗
      然后再看看是不是配置的时候用户名密码错了(这个文件/usr/local/etc/raddb/mods-config/files/authorize
      还有就是,贴个 radius 的日志啊,有日志就好判断了。
      Benny 小土豆 2018-07-06 22:26 回复
      • 1.radtest bob hello 127.0.0.1 0 testing123 是通过了的 2. 怎么判断路由器 是否连上 radius 服务器 3. 先看看世界杯, 完了再看看日志
        nelson2018-07-06 22:31 回复
          1. 路由器里会让你设置 radius 的 IP 和密码啦。
          Benny 小土豆 2018-07-06 22:51
      • 1. 路由器 设置好了 ip 和密码,没搞明白到底哪出错了,排查了好几次了, 2. 有没有命令可以在路由器的 shell 里 测试 是否连接了 radius 服务器
        nelson2018-07-06 23:07 回复
        • 你先看眼 radius 上的日志,路由器上用 dmesg 能看到内核日志
          Benny 小土豆 2018-07-06 23:09
  11. 这是神马,完全看不懂
    只会用傻瓜软件的傻瓜 2018-05-17 15:08 回复
    • 就是 企业学校一般用的比较多
      Benny 小土豆 2018-05-17 15:18 回复
  12. 哇,这个看起来好厉害~ 感觉 padavan 好多功能的样子,然而好多都看不懂 23333
    萌新 2018-05-13 19:31 回复
    • 是的 padavan 功能其实很多呢
      Benny 小土豆 2018-05-14 10:54 回复
您直接访问了本站! 莫非您记住了我的域名. 厉害~ 我倍感荣幸啊 嘿嘿