登录
  • 人们都希望被别人需要 却往往事与愿违
  • C语言诡异离奇, 缺陷重重, 但却获得了巨大的成功@Dennis Ritchie (C语言之父 Unix之父)

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

IT Benny小土豆 12519次浏览 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为例:

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

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

修改配置

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

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

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实在是太基础的东西,怕更新出乱子,还是禁用吧

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

找到allow_vulnerable_openssl = no,把no改成yes

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

添加认证信息

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

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

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

client new {
ipaddr = 192.168.7.1
secret = pi.lan
}

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

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

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

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

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

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

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

radtest bob hello 127.0.0.1 0 test
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.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(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 回复