安装wpad
root@OpenWrt:~# opkg update root@OpenWrt:~# opkg install wpad wpa-cli root@OpenWrt:~# wpa_supplicant -v wpa_supplicant v2.11-devel Copyright (c) 2003-2022, Jouni Malinen <j@w1.fi> and contributors root@OpenWrt:~#
创建 /etc/config/wpa_supplicant.802.1x.conf 配置文件:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
ap_scan=0
network={
key_mgmt=IEEE8021X
eap=PEAP
phase2="autheap=MSCHAPV2"
identity="...username..."
password="...password..."
priority=2
}
注意:根据自己的 有线 wan 网口 修改下面脚本对应的网卡设备名:
# uci show network.wan.ifname network.wan.ifname='eth0.2'
手动执行确认 802.1X 认证是否正常:
# wpa_supplicant -D wired -i eth0.2 -c /etc/config/wpa_supplicant.802.1x.conf -dd -t 1617066480.560461: Successfully initialized wpa_supplicant 1617066480.702295: eth0.2: Associated with 06:80:e2:00:00:03 1617066480.702474: eth0.2: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 1617066509.104670: eth0.2: CTRL-EVENT-EAP-STARTED EAP authentication started 1617066509.114050: eth0.2: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=13 -> NAK 1617066509.118585: eth0.2: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25 1617066509.118804: eth0.2: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected 1617066509.147293: eth0.2: CTRL-EVENT-EAP-PEER-CERT depth=0 subject='C=CN, ST=..., L=.., O=..., OU=..., ' 1617066509.219356: EAP-MSCHAPV2: Authentication succeeded 1617066510.271884: eth0.2: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully 1617066510.272061: eth0.2: CTRL-EVENT-CONNECTED - Connection to 06:80:e2:00:00:03 completed [id=0 id_str=]
创建开机启动脚本:
#!/bin/sh /etc/rc.common
START=99
start() {
echo start
pgrep -f wpa_supplicant.802.1x.conf|xargs kill
wpa_supplicant -D wired -i eth0.2 -c /etc/config/wpa_supplicant.802.1x.conf -dd -t &
}
脚本增加 可执行 权限:
# chmod +x /etc/init.d/wpa-autostart # /etc/init.d/wpa-autostart enable # ls -lh /etc/init.d/wpa-autostart -rwxr-xr-x 1 root root 199 Mar 30 10:04 /etc/init.d/wpa-autostart
crontab
发现连接不太稳定,每隔一段时间会断一次,所以写了一个脚本通过 crontab 自动检查:
#!/bin/sh
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
# uci show network.wan.ifname
wan=eth0.2
time=$(date +'%F %T')
ipaddr=$(ip -o a s $wan)
if [ -n "$ipaddr" ]
then
ip=$(ip -o a s $wan|awk '{print $4}')
echo "__INFO: $(basename "$0") $time OK $wan IP: $ip"
else
echo "__INFO: $(basename "$0") $time ERROR $wan IP missing"
if pgrep -af wpa_supplicant.802.1x.conf
then
pgrep -f wpa_supplicant.802.1x.conf|xargs kill
fi
echo "$time $(basename "$0")" >> /tmp/802.1x-restart.log
wpa_supplicant -D wired -i $wan -c /etc/config/wpa_supplicant.802.1x.conf -dd -t &
fi
添加 crontab 任务,每隔 1 分钟检查一次:
# crontab -l * * * * * /bin/sh -x /etc/config/check.802.1x.sh &> /tmp/check.802.1x.log
启动 crontab 服务观察执行日志:
# /etc/init.d/cron enable # /etc/init.d/cron start # pgrep -af cron 400 /usr/sbin/crond -f -c /etc/crontabs -l 5 # logread -e cron Tue Mar 30 10:11:08 2021 cron.info crond[400]: crond (busybox 1.30.1) started, log level 5 Tue Mar 30 10:12:00 2021 cron.info crond[400]: USER root pid 7003 cmd /bin/sh -x /etc/config/check.802.1x.sh &> /tmp/check.802.1x.log Tue Mar 30 10:13:00 2021 cron.info crond[400]: USER root pid 10108 cmd /bin/sh -x /etc/config/check.802.1x.sh &> /tmp/check.802.1x.log Tue Mar 30 10:14:00 2021 cron.info crond[400]: USER root pid 13235 cmd /bin/sh -x /etc/config/check.802.1x.sh &> /tmp/check.802.1x.log
reference Permalink
How to configure OpenWRT router as 802.1X wired access client 2017-12-04
OpenWrt-router as 802.1x-client 2020-12-08
Connect router (Archer C50) to a 802.1X EAP network 2019-04-04
IT技术资讯
评论前必须登录!
注册