OpenWrt 连接 802.1x 认证网络

0. 安装 OpenWrt

不同的路由器安装方法不同。以 R6220 为例,只需要按照官网的教程 (https://openwrt.org/toh/netgear/netgear_r6220), 下载 Firmware OpenWrt Install 的镜像并上传到网件官方后台进行系统更新即可。

安装后可登录 Luci http://192.168.1.1/ 配置管理员密码以及 WiFi 设置。管理员密码同时也是 ssh 到 root 时的密码。

1. 安装完整版 wpad

OpenWrt 官方镜像中只有阉割掉了 802.1x 的 wpad-basic, 因此需要先安装完整版 wpad

如果路由器已连接到外网(如使用电脑共享网络)

如果路由器已经连接到网络, 可以直接使用 opkg 包管理工具进行下载安装

# 更新软件目录
opkg update
# 下载 wpad (防止卸载 wpad-basic 后断网)
opkg download wpad
# 卸载 wpad-basic
opkg remove wpad-basic
# 安装 wpad (文件名为下载 wpad 时的输出, 可以使用tab自动填充)
opkg install wpad_<version>_<arch>.ipk

如果路由器没有外网连接

如果路由器没有外网连接, 则需要手动下载 ipk 文件并上传安装。

首先需要确认路由器架构:

opkg print-architecture | awk '{print $2}' | grep -v all | grep -v noarch

如在 R6220 上:

root@R6220:~# opkg print-architecture | awk '{print $2}' | grep -v all | grep -v noarch
mipsel_24kc

接着就可以在 https://downloads.openwrt.org/releases/ 上找到对应的 .ipk 下载

如 R6220 的下载链接为: http://downloads.openwrt.org/releases/19.07.3/packages/mipsel_24kc/base/wpad_2019-08-08-ca8c2bd2-4_mipsel_24kc.ipk

使用 scp 上传文件:

scp wpad_2019-08-08-ca8c2bd2-4_mipsel_24kc.ipk root@192.168.1.1:/root

然后就可以在路由器上安装:

# 卸载 wpad-basic
opkg remove wpad-basic
# 安装 wpad
opkg install wpad_2019-08-08-ca8c2bd2-4_mipsel_24kc.ipk

同理也可以在 luci 界面中 System > Sotware 下使用 Upload Packages 来进行安装。

2. 配置 802.1x 网络

首先创建配置文件 (/tmp/8021x.cnf):

echo 'ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
ap_scan=0
network={
  key_mgmt=IEEE8021X
  eap=PEAP
  identity="<<username>>"
  password="<<password>>"
  phase2="auth=MSCHAPV2"
  priority=2
}' > /tmp/8021x.cnf

然后尝试进行连接:

wpa_supplicant -D wired -i eth0.2 -c /tmp/8021x.cnf

此时路由器就该能正常连接网络。

为了添加到开机启动并方便在 luci 图形化界面中修改配置,我们把它添加到 luci 的 System > Startup > Local Startup 下 (也可以 ssh 下 vi /etc/rc.local 进行修改):

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

# Connect to 802.1x network
echo 'ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
ap_scan=0
network={
  key_mgmt=IEEE8021X
  eap=PEAP
  identity="<<username>>"
  password="<<password>>"
  phase2="auth=MSCHAPV2"
  priority=2
}' > /tmp/8021x.cnf
wpa_supplicant -D wired -i eth0.2 -c /tmp/8021x.cnf -B -s

exit 0

后续如果要修改账号密码,在这里修改并重启路由器即可。

接着重启路由器,应该就能正常连接到网络了。如果有异常,可以在 luci 中 Status > System Log
中搜索 wpa_supplicant 查看日志。

3. 常见问题

某些校园内网资源无法访问

这可能是因为 OpenWrt 默认开启了 Rebind protection。这个选项会忽视上游 DNS 服务器返回的内网的 IP 地址。只需要在 luci 的 Network > DHCP and DNS 下关闭 Rebind protection 即可。

发表评论

邮箱地址不会被公开。