赞
踩
本文说明了以下几个内容:
1、如何使用freeradius(在自己电脑上,linux系统)搭建802.1X认证服务器
2、如何将路由器A(openwrt系统)作为client连接上述服务器
3、如何使用路由器B(openwrt系统)的WDS功能桥接步骤2中的路由器A(的2.4GWiFi)
注:第2、3步需要登录路由器系统(串口或ssh都可以),结构图如下:
参考https://blog.csdn.net/cao849861802/article/details/80486232
1.下载地址
https://www.samba.org/ftp/talloc/talloc-2.17.tar.gz
ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.19.tar.gz
下载的压缩包的名字为: talloc-2.1.7.tar.gz 和freeradius-server-3.0.19.tar.gz;
2.安装软件
先安装talloc-2.1.7.tar.gz再安装freeradius-server-3.0.17.tar.gz
安装步骤两个都一样,先解压,解压后会有两个各自的文件夹。
(1)到目录talloc-2.1.7下
./configure
make
sudo make install
(2)到目录freeradius-server-3.0.19下
./configure
make
sudo make install
3.添加用户
cd /usr/local/etc/raddb/
vim users
若不能打开文件夹,请用root身份(打开文件夹后)运行终端。
在打开文件后,在文件的开始位置添加内容如下:
admin Cleartext-Password := "test"
目的是添加一个新的用户,用户名为admin,密钥为test,后面在连接路由器A时需要用到。
4.运行服务器
sudo radiusd -X
这里的X为大写。正确运行时显示:
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on proxy address * port 53365
Listening on proxy address :: port 43960
Ready to process requests
表示服务端处于监听状态,等待客户端发送信息。如需停止服务,按下CTRL+C。
5.测试
启动服务器后,再打开另一个终端进行操作,在新终端下输入命令:
radtest admin test localhost 1812 testing1234
(命令说明:radtest为测试指令 admin test 为用户名和密钥 localhost为client.conf里client localhost的地址,可以用127.0.0.1代替,1812为端口 testing1234为client.conf里localhost下的密钥)
测试成功时显示:
Sent Access-Request Id 238 from 0.0.0.0:51723 to 127.0.0.1:1812 length 75
User-Name = “admin”
User-Password = “test”
NAS-IP-Address = 127.0.1.1
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = “test”
Received Access-Accept Id 238 from 127.0.0.1:1812 to 127.0.0.1:51723 length 20
6.添加客户端
cd /usr/local/etc/raddb/
vim clients.conf
注释掉localhost的部分,添加(或修改):
client NETGEAR{ #client后的名称随便写
ipv4addr = 192.168.4.1 #client的IP,即路由器A的IP
secret = testing123 #路由器A连接服务器的密钥
}
说明:此时路由器A连外网,服务器(自己电脑,IP:192.168.4.23)连接路由器A的LAN口,并且连接路由器串口。服务器处于运行状态(指令radiusd -X,出现Ready to process requests)
1.将路由器的wpad版本从mini版更换至完整版
然后编译并将镜像烧录至路由器A。
没有源码的请找其他资源以完成此步骤。
2.修改wireless配置以使用802.1X协议
(若路由器没有双频的5G,建议先做第三部分的第1步,并未测试)
使用串口工具(如minicom)或ssh登录,连接路由器A
vi etc/config/wireless
修改其中的2.4G主人网络的部分:
将encryption后的值改为 wpa2
添加一行option server 192.168.4.23
将key后的值改为testing123
修改后的部分如下:
config wifi-iface
option device radio0
option ifname wlan0
option network lan
option mode ap
option ssid “9670-2.4G-CT”
option encryption 'wpa2' #修改报文类型
option server '192.168.4.23' #radius服务器的IP地址
option key 'testing123' #前面clients.conf中设置的密钥
option isolate '0'
option hidden '0'
option macfilter disable
option macfile /etc/wlan-file/wlan0.allow
option group 1
option netisolate 0
option disable_input 0
option wps_pushbutton '1'
option wps_label '0'
option rps_cpus 2
3.使用指令重启路由器A
/etc/init.d/network restart
若使用手机连接该WiFi(9670-2.4G-CT),则相关设置为:
EAP方法:PEAP
阶段2身份验证:无
CA证书:未指定
身份:admin
匿名身份:
密码:test
其中身份密码由服务器的users文件确定。
至此,802.1X的客户端(即路由器A)已完成设置。
说明:电脑用串口连接路由器B,路由器B和A之间不用网线连接
1.先使用路由器B的WDS功能桥接任意一个非802.1X认证的WIFI(建议桥接路由器A的5G,在这里我选择是这个桥接,其他的没有测试),注意一定要成功。(启用WDS功能可能需要修改多个文件,我没有深入,所以直接使用Web界面使路由器B启用WDS功能)
2.配置路由器B
使用串口连接路由器B
vim etc/config/wireless
修改最后一部分:
删除option key 一行
将encryption后的值改为wpa2
添加option identity ‘admin’
option password ‘test’
option eap_type ‘peap’
option auth ‘MSCHAPV2’
将device后的内容改为radio0
删除option bssid一行
将option ssid后的值改为WDS桥接(主路由A)的WiFi名称
其中,identity、password为users文件的身份和密码。
修改后的部分如下:
config wifi-iface
option ifname 'sfi0'
option network 'wwan'
option encryption 'wpa2'
option identity 'admin'
option password 'test'
option eap_type 'peap'
option auth 'MSCHAPV2'
option device 'radio0'
option mode 'sta'
option ssid '9670-2.4G-CT'
option rps_cpus '2'
3.通过wireless文件第二部分的bssid、encryption、key等修改路由器B(作为次路由器桥接后网络)的相关设置。此时手机等可以通过路由器B的2.4Gwifi进行上网。
4.至此,桥接完成。802.1X的认证由路由器B来完成,其发出信号已类似无需802.1X认证的信号,手机端不再出现输入身份及密码等内容的界面。若直接连接路由器A的wifi,需要输入身份和密码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。