如何手动搭建WPA2企业级认证的Wi-Fi

相比普通的wifi,搭建wpa2企业级认证的wifi,主要有两个大的步骤:

  1. 用freeradius搭建一个认证系统,用于用户认证
  2. 在路由器或AP上配置RADIUS认证参数,添加radius服务器,包括认证服务器和计费服务器。

安装freeradius

我刚开始用的是apt-get安装,然后修改配置文件的方式,可以参考:

How To Install FreeRADIUS On Ubuntu Server

配置尤其复杂,我搞了半天。

与其手动配置,不如用docker来拉取别人配置好的镜像。

最后我是用的这个docker配置:

https://github.com/marcelmaatkamp/docker-compose-applications/tree/master/freeradius

只需要修改clients.conf和users文件。

修改clients.conf:

client 10.255.255.1/24 {
 secret = your_secrect
}
client 192.168.0.45 {
 secret = your_secrect
}

其中ip,192.168.0.45和10.255.255.1/24修改成你自己的ip,应该配置成你wifi路由器或AP的ip地址,因为到时候用户连接wifi时,是路由器和AP来请求radius服务器的。

修改users:

username Cleartext-Password := "user_password", MS-CHAP-Use-NTLM-Auth := 0

其中用户名与密码修改成你自己的。这个用户密码就是普通用户连接该wifi时,需要输入的认证信息。

我配置了另一台192.168.0.45 ubuntu,用来做测试,ssh登陆到 192.168.0.45上面,然后用下面的命令测试:

radtest username user_password 192.168.0.30 1812 your_secrect

其中 192.168.0.30 为我们radius服务器所在的ip地址。

连接成功后,会有如下提示:

Sending Access-Request of id 168 to 192.168.0.30 port 1812
	User-Name = "username"
	User-Password = "user_password"
	NAS-IP-Address = 127.0.1.1
	NAS-Port = 1812
	Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 192.168.0.30 port 1812, id=168, length=20

安装好radius服务器后,就需要在路由器上配置wifi的认证方法了。

配置路由或AP

我是用的H3C的AP设备,你自己的路由或AP设备,可能不太一样。

我参考的是文档:

http://www.h3c.com/cn/Service/Document_Center/Wlan/WA/WA2600/Configure/User_Manual/H3C_WCG-6W105/201611/958733_30005_0.htm

首先在左边菜单进入 认证->RADIUS,新建一个

  • 服务类型选择 Extended
  • 用户名格式选择 保持用户原输入
  • 分别添加一个主认证服务器,与主计费服务器,ip地址即为我们上面配置好的radius server的ip地址,密钥为刚我们在clients.conf文件中配置的secrect值。

1

左边菜单进入 认证->AAA

  • 在认证、授权、计费三个配置页面中,都设置LAN-access认证为RADIUS,参考如图:

2

左边菜单进入 无线服务->接入服务

  • 选择你要修改的SSID,先把wifi关闭掉,然后修改设置
  • 在安全设置下面的端口安全配置中,端口模式选择 userlogin-secure-ext
  • 域名选择system,认证方法选择EAP

3

保存后,重新启用wifi,不出意外,wpa2企业级认证就可以连接了。

如果连接有问题,可以用

sudo freeradius -X

命令来启动radius,开启调试模式,并观察日志输出。