土豆不好吃

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

文章目录[显示]
这篇文章在 2018年08月06日14:44:08 更新了哦~

注意看,是Radius,不是Redis

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

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

前置条件

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

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

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

Padavan固件中可以看到这些

一台服务器

无论这台服务器是在内网的,还是在外网(比如说腾讯云的也可以)的都可以,只要能和路由器互相通信,并且拥有一个固定的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密钥花了很长时间(超过半小时哦) 

修改配置

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

以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那么就是配置成功了

配置路由器

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

之后保存即可

客户端连接

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

注意事项

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

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

参考资料

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
退出移动版