[openwrt][WIFI] 1.WiFi黑名单设置 2.sed 如何删除文件里的mac

本文以OpenWrt+MT7621为测试平台,介绍了WiFi黑名单设置方法。包括不重启拉黑名单设置(重启后不生效),以及重启仍有效的设置方式,即修改相关配置文件。还提及sed删除mac的注意事项和realtek平台设置WiFi黑名单的内容。

测试平台:OpenWrt+MT7621

MTK WIFI芯片手册
文档:MTK_Wi-Fi_SoftAP_Software_Programming_Guide_v1.2.pdf

1.WiFi不重启拉黑名单设置
这种不重启即可拉黑,但是重启后不生效。

以2.4G为例: ra0 2.4G / rai0 5G

#清空WiFi访问控制设定
iwpriv ra0 set ACLClearAll=1
 
#设定访问控制策略为黑名单模式
# macfilter=disable(d)  AccessPolicy为0  使访问控制策略失效
# macfilter=allow     AccessPolicy为1  白名单模式
# macfilter=deny      AccessPolicy为2  黑名单模式
iwpriv ra0 set AccessPolicy=2
 
# 设定所有被拉黑的设备的MAC地址,此处假设AA-BB-CC-DD-EE-FF和FF-EE-DD-CC-BB-AA被拉黑
# MAC地址间以分号(;)分隔。
iwpriv ra0 set ACLAddEntry="aa:bb:cc:dd:ee:ff;ff:ee:dd:cc:bb:aa"

来着:openwrtrt2860v2下的wifi不重启拉黑名单设置

2.wifi黑名单重启有效

修改/etc/confing/wirelsee 配置文件
/trunk/base/package/ramips/drivers/mt7603e/files/mt7603e.sh 2.4G
/trunk/base/package/ramips/drivers/mt76x2e/files/mt7612e.sh 5G
这里写图片描述

 option AccessPolicy0 '2'   //1 白名单 2 黑名单 0 使访问控制策略失效
 option AccessControlList0 '58:E2:8F:2E:A2:AD' //MAC 地址,多MAC的格式:MAC_A;MAC_B;MAC_C;MAC_D


root@OpenWrt:~# 
root@OpenWrt:~# cat /etc/config/wireless 

config wifi-device 'mt7603e'
        option type 'mt7603e'
        option vendor 'ralink'
        option band '2.4G'
        option beacon '100'
        option wifimode '9'
        option txpower '100'
        option channel '0'
        option disabled '0'
        option hidden '0'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option bw '1'
        option region '0'
        option AccessPolicy0 '2'   //1 白名单 2 黑名单 0 使访问控制策略失效
        option AccessControlList0 '58:E2:8F:2E:A2:AD' //MAC 地址,多MAC的格式:MAC_A;MAC_B;MAC_C;MAC_D

config wifi-iface
        option device 'mt7603e'
        option ifname 'ra0'
        option network 'lan'
        option mode 'ap'
        option ssid 'FURRIONAP_CCDD04'
        option instance '1'
        option wmm 'enable'
        option encryption 'psk-mixed+ccmp'
        option key 'FACCDD04'

config wifi-device 'mt7612e'
        option type 'mt7612e'
        option vendor 'ralink'
        option band '5G'
        option channel '0'
        option autoch '2'
        option disabled '0'
        option txpower '100'
        option hidden '0'
        option wifimode '14'
        option bw '2'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option aregion '10'
        option AccessPolicy0 '2'
        option AccessControlList0 '58:E2:8F:2E:A2:AD'

config wifi-iface
        option device 'mt7612e'
        option ifname 'rai0'
        option network 'lan'
        option mode 'ap'
        option ssid 'FURRIONAP_CCDD04'
        option encryption 'psk-mixed+ccmp'
        option key 'FACCDD04'
        option instance '2'

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '0'
        option hwmode '11g'
        option htmode 'HT20'

config wifi-iface
        option device 'radio0'
        option network 'wan0'
        option mode 'sta'
        option ssid 'wifi'
        option encryption 'psk2'
        option key 'wifiwifi'
        option ifname 'wlan0'

有一些openwrt的wireless代码里面没打开UCI配置
/trunk/base/package/ramips/applications/uci2dat/src/uci2dat.c
这里写图片描述

{"AccessPolicy0", "AccessPolicy0", {0}, hooker, "0"},
{"AccessControlList0", "AccessControlList0", {0}, hooker, NULL},
{"AccessPolicy1", "AccessPolicy1", {0}, hooker, "0"},
{"AccessControlList1", "AccessControlList1", {0}, hooker, NULL},
{"AccessPolicy2", "AccessPolicy2", {0}, hooker, "0"},
{"AccessControlList2", "AccessControlList2", {0}, hooker, NULL},
{"AccessPolicy3", "AccessPolicy3", {0}, hooker, "0"},
{"AccessControlList3", "AccessControlList3", {0}, hooker, NULL},

Tips: sed 如何删除mac

sed 's/dC:F0:90:9D:FC:23//i'    不分大小写将匹配到的字符串替换为空
sed 's/DC:F0:90:9D:FC:23\+;*//ig'     至少一次mac 至少0次;


root@OpenWrt:~# cat /etc/config/wireless 

config wifi-device 'mt7603e'
        option type 'mt7603e'
        option vendor 'ralink'
        option band '2.4G'
        option beacon '100'
        option wifimode '9'
        option txpower '100'
        option channel '0'
        option disabled '0'
        option hidden '0'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option bw '1'
        option region '0'
        option AccessPolicy0 '2'
        option AccessControlList0 '58:E2:8F:2E:A2:AD;28:ED:6A:E9:AB:FB;58:11:22:2E:A2:AF'
        
root@OpenWrt:~# sed  -i 's/58:E2:8F:2E:A2:AD\+;*//ig'  /etc/config/wireles

root@OpenWrt:~# cat /etc/config/wireless 

config wifi-device 'mt7603e'
        option type 'mt7603e'
        option vendor 'ralink'
        option band '2.4G'
        option beacon '100'
        option wifimode '9'
        option txpower '100'
        option channel '0'
        option disabled '0'
        option hidden '0'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option bw '1'
        option region '0'
        option AccessPolicy0 '2'
        option AccessControlList0 '28:ED:6A:E9:AB:FB;58:11:22:2E:A2:AF'

root@OpenWrt:~# cat /etc/config/wireless 

config wifi-device 'mt7603e'
        option type 'mt7603e'
        option vendor 'ralink'
        option band '2.4G'
        option beacon '100'
        option wifimode '9'
        option txpower '100'
        option channel '0'
        option disabled '0'
        option hidden '0'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option bw '1'
        option region '0'
        option AccessPolicy0 '2'
        option AccessControlList0 '58:E2:8F:2E:A2:AD;28:ED:6A:E9:AB:FB;58:11:22:2E:A2:AF'

config wifi-iface
        option device 'mt7603e'
        option ifname 'ra0'
        option network 'lan'
        option mode 'ap'
        option ssid 'FURRIONAP_CCDD04'
        option instance '1'
        option wmm 'enable'
        option encryption 'psk-mixed+ccmp'
        option key 'FACCDD04'

config wifi-device 'mt7612e'
        option type 'mt7612e'
        option vendor 'ralink'
        option band '5G'
        option channel '0'
        option autoch '2'
        option disabled '0'
        option txpower '100'
        option hidden '0'
        option wifimode '14'
        option bw '2'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
root@OpenWrt:~# 
root@OpenWrt:~# 
root@OpenWrt:~# 
root@OpenWrt:~# cat /etc/config/wireless 

config wifi-device 'mt7603e'
        option type 'mt7603e'
        option vendor 'ralink'
        option band '2.4G'
        option beacon '100'
        option wifimode '9'
        option txpower '100'
        option channel '0'
        option disabled '0'
        option hidden '0'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option bw '1'
        option region '0'
        option AccessPolicy0 '2'
        option AccessControlList0 '58:E2:8F:2E:A2:AD;28:ED:6A:E9:AB:FB;58:11:22:2E:A2:AF'

config wifi-iface
        option device 'mt7603e'
        option ifname 'ra0'
        option network 'lan'
        option mode 'ap'
        option ssid 'FURRIONAP_CCDD04'
        option instance '1'
        option wmm 'enable'
        option encryption 'psk-mixed+ccmp'
        option key 'FACCDD04'

config wifi-device 'mt7612e'
        option type 'mt7612e'
        option vendor 'ralink'
        option band '5G'
        option channel '0'
        option autoch '2'
        option disabled '0'
        option txpower '100'
        option hidden '0'
        option wifimode '14'
        option bw '2'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option aregion '10'
        option AccessPolicy0 '2'
        option AccessControlList0 '58:E2:8F:2E:A2:AD;28:ED:6A:E9:AB:FB;58:11:22:2E:A2:AF'

config wifi-iface
        option device 'mt7612e'
        option ifname 'rai0'
        option network 'lan'
        option mode 'ap'
        option ssid 'FURRIONAP_CCDD04'
        option encryption 'psk-mixed+ccmp'
        option key 'FACCDD04'
        option instance '2'

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '0'
        option hwmode '11g'
        option htmode 'HT20'

config wifi-iface
        option device 'radio0'
        option network 'wan0'
        option mode 'sta'
        option ssid 'wifi'
        option encryption 'psk2'
        option key 'wifiwifi'
        option ifname 'wlan0'

root@OpenWrt:~# sed  -i 's/58:E2:8F:2E:A2:AD\+;*//ig'  /etc/config/wireless
root@OpenWrt:~# cat /etc/config/wireless 

config wifi-device 'mt7603e'
        option type 'mt7603e'
        option vendor 'ralink'
        option band '2.4G'
        option beacon '100'
        option wifimode '9'
        option txpower '100'
        option channel '0'
        option disabled '0'
        option hidden '0'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option bw '1'
        option region '0'
        option AccessPolicy0 '2'
        option AccessControlList0 '28:ED:6A:E9:AB:FB;58:11:22:2E:A2:AF'

config wifi-iface
        option device 'mt7603e'
        option ifname 'ra0'
        option network 'lan'
        option mode 'ap'
        option ssid 'FURRIONAP_CCDD04'
        option instance '1'
        option wmm 'enable'
        option encryption 'psk-mixed+ccmp'
        option key 'FACCDD04'

config wifi-device 'mt7612e'
        option type 'mt7612e'
        option vendor 'ralink'
        option band '5G'
        option channel '0'
        option autoch '2'
        option disabled '0'
        option txpower '100'
        option hidden '0'
        option wifimode '14'
        option bw '2'
        option wps_enabled 'enable'
        option wps_router_pin 'pin'
        option wps_mode 'PBC'
        option aregion '10'
        option AccessPolicy0 '2'
        option AccessControlList0 '28:ED:6A:E9:AB:FB;58:11:22:2E:A2:AF'

config wifi-iface
        option device 'mt7612e'
        option ifname 'rai0'
        option network 'lan'
        option mode 'ap'
        option ssid 'FURRIONAP_CCDD04'
        option encryption 'psk-mixed+ccmp'
        option key 'FACCDD04'
        option instance '2'

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '0'
        option hwmode '11g'
        option htmode 'HT20'

config wifi-iface
        option device 'radio0'
        option network 'wan0'
        option mode 'sta'
        option ssid 'wifi'
        option encryption 'psk2'
        option key 'wifiwifi'
        option ifname 'wlan0'

root@OpenWrt:~# 

代码中记得转义字符\\

			snprintf(cmd, sizeof(cmd), "sed  -i 's/%s\\+;*//ig'  /etc/config/wireless", g_l2filter_params.l2filter_list[i].l2addr);
			my_printf(LOG_MODE_LEVEL_1, "%s(%d) cmd:%s \n",__FUNCTION__,__LINE__, cmd);
			system(cmd);
			system("sync");

realtek 平台设置wifi黑名单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ifconfig wlan0 down
iwpriv wlan0 set_mib aclmode=2
iwpriv wlan0 set_mib aclnum=0
iwpriv wlan0 set_mib acladdr=0c1daf4de901
iwpriv wlan0 set_mib acladdr=0c1daf4de902
iwpriv wlan0 set_mib acladdr=0c1daf4de903
iwpriv wlan0 set_mib acladdr=0c1daf4de904
iwpriv wlan0 set_mib acladdr=0c1daf4de905
ifconfig wlan0 up

root@OpenWrt:/# cat /proc/wlan0/mib_staconfig
  Dot11StationConfigEntry...
    dot11Bssid: 34ba9a998899
    dot11DesiredSSID:(Len 16) Smart_Bro_998899
    dot11DefaultSSID:(Len 0) 
    dot11SSIDtoScan:(Len 16) Smart_Bro_998899
    dot11DesiredBssid: 000000000000
    dot11OperationalRateSet: 82848b960c1218243048606c
    dot11OperationalRateSetLen: 12
    dot11BeaconPeriod: 100
    dot11DTIMPeriod: 1
    dot11swcrypto: 0
    dot11AclMode: 2
    dot11AclNum: 1
    dot11AclAddr[0]: 0c1daf4de959
    Access control list...
         hwaddr: 0c1daf4de959(deny)
    dot11SupportedRates: 0xfff
    dot11BasicRates: 0xf
    dot11RegDomain: 3
    autoRate: 1
    fixedTxRate: 0x0
    swTkipMic: 1
    protectionDisabled: 0
    olbcDetectDisabled: 0
    nmlscDetectDisabled: 0
    legacySTADeny: 0
    fastRoaming: 0
    lowestMlcstRate: 0
    supportedStaNum: 8
root@OpenWrt:/# 
<think>嗯,用户之前遇到了CTRL-EVENT-DISCONNECTED reason=2的问题,我之前给出了关于四次握手失败、内核修复、配置优化以及React式连接管理的解决方案。现在用户提到了新的引用内容,引用[1]显示的是关联拒绝事件,状态码1,这可能与MAC地址黑名单有关。用户现在想解决WiFi断开问题,同时想知道如何配置MAC地址黑名单。 首先,我需要确认用户当前的问题是否与之前的reason=2相关,还是因为新的关联拒绝导致。引用[1]中的status_code=1通常表示拒绝的原因不明,但结合用户提到的MAC黑名单,可能需要检查AP是否屏蔽了设备的MAC地址。用户可能遇到了两种问题:四次握手失败导致的断开,以及MAC地址被AP加入黑名单导致的连接拒绝。 接下来,用户想知道如何配置MAC地址黑名单,这可能涉及到AP的设置,或者用户设备端防止被拉黑的方法。在之前的回答中,我提到了修改驱动参数和网络配置,现在需要补充MAC地址相关的解决方案,比如随机化MAC地址或者修改设备的MAC地址来避免被识别为不受欢迎的设备。 同时,用户提到的引用[2]是关于Ubuntu下WiFi不稳定的问题,其中提到移除无线驱动的方法。但用户现在的问题更多是连接断开和MAC黑名单,可能需要结合之前的解决方案,比如检查驱动兼容性,同时处理MAC地址问题。 需要确保回答覆盖以下几点: 1. 分析reason=2和关联拒绝status_code=1的可能原因,特别是MAC黑名单的影响。 2. 提供检查MAC地址是否被AP拉黑的方法,比如查看AP日志或使用工具扫描。 3. 配置设备端MAC地址的步骤,包括临时修改和永久修改的方法。 4. 避免被AP检测到真实MAC地址的技巧,比如随机化MAC。 5. 结合之前的驱动和内核修复建议,综合解决连接问题。 另外,用户可能对如何判断自己是否被拉黑不太清楚,需要指导使用命令行工具或日志分析来确认。同时,在Linux系统中修改MAC地址需要注意重启后的恢复问题,可能需要设置持久化的方法。 还要注意引用之前的解决方案,比如内核版本的影响和驱动参数的调整,确保用户综合应用所有相关方法来解决连接问题。最后,生成的相关问题需要围绕MAC黑名单的配置、检测方法以及相关工具的使用,帮助用户深入理解问题。</think>### 深度解决方案:WiFi连接中断(reason=2)与MAC黑名单配置 --- #### 一、问题关联分析 根据日志`CTRL-EVENT-ASSOC-REJECT status_code=1`和`CTRL-EVENT-DISCONNECTED reason=2`,可定位到两个核心问题: 1. **MAC地址被AP拉黑**(关联拒绝的直接原因[^1]) 2. **四次握手失败**(可能因加密协议不兼容或驱动问题引发[^1][^2]) --- #### 二、MAC地址黑名单排查与应对 ##### 2.1 验证MAC是否被AP屏蔽 使用`airodump-ng`扫描目标AP的客户端列表: ```bash sudo airmon-ng start wlan0 # 开启监控模式 sudo airodump-ng --bssid AP_MAC -c 6 wlan0mon ``` - 若设备MAC未出现在`STATIONS`列表中,但其他设备可连接,则确认被拉黑 - AP后台查看黑名单(以OpenWrt为例): ```bash uci show wireless | grep blacklist iwinfo wlan1 assoclist # 查看已连接设备 ``` ##### 2.2 动态修改MAC地址(Linux系统级) **临时修改**(重启失效): ```bash sudo ip link set dev wlan0 down sudo macchanger -r wlan0 # 随机MAC sudo ip link set dev wlan0 up ``` **永久固化**(需修改NetworkManager配置): ```ini # /etc/NetworkManager/conf.d/mac.conf [connection] wifi.cloned-mac-address=random ethernet.cloned-mac-address=stable ``` ##### 2.3 绕过黑名单的高级技巧 - **混合模式欺骗**:生成与AP MAC同网段的虚拟地址 例如AP MAC为`AC:A3:1E:90:A7:00`,可设置为`AC:A3:1E:90:A7:XX`(XX为随机值) - **定时切换策略**(通过cron任务): ```bash # /etc/cron.hourly/mac_rotate #!/bin/sh nmcli con mod "Your_SSID" wifi.cloned-mac-address $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/:$//') nmcli con down "Your_SSID" && nmcli con up "Your_SSID" ``` --- #### 三、综合修复reason=2问题 ##### 3.1 驱动兼容性强化(参考[^2]) 针对Ubuntu系统的无线驱动: ```bash # 清理问题驱动 sudo apt purge *-modules-$(uname -r) *-dkms # 安装定制驱动(以iwlwifi为例) git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git sudo cp linux-firmware/iwlwifi-* /lib/firmware/ ``` ##### 3.2 四次握手协议优化 在`/etc/wpa_supplicant.conf`中增加: ```conf network={ ssid="Your_SSID" psk="Your_Password" key_mgmt=WPA-PSK proto=RSN pairwise=CCMP group=CCMP auth_alg=OPEN eapol_flags=0 # 禁用EAPOL重试保护 } ``` --- #### 四、验证与调试 ##### 4.1 实时握手监控 ```bash sudo tcpdump -ni wlan0 -e -s0 -l 'ether proto 0x888e' | grep -E 'Association|EAPOL' ``` 正常输出应包含: ``` wlan0: Authenticate (AC:A3:1E:90:A7:00) wlan0: EAPOL-Key msg=1/4 wlan0: EAPOL-Key msg=2/4 ``` ##### 4.2 黑名单规避验证 ```bash macchanger -s wlan0 | grep "Current MAC" ping -c4 192.168.1.1 # 测试连通性 ``` 若MAC已变更且能ping通网关,则绕过成功 --- ### 进阶工具推荐 1. **MAC地址批量生成器**: ```python import random def gen_mac(oui="aca31e"): return f"{oui}:{random.randint(0x00,0xff):02x}:{random.randint(0x00,0xff):02x}:{random.randint(0x00,0xff):02x}" print(gen_mac()) ``` 2. **黑名单自动化检测脚本**: ```bash #!/bin/bash for i in {1..100}; do macchanger -r wlan0 if nmcli dev wifi connect "SSID" password "PASS"; then echo "Valid MAC: $(macchanger -s wlan0 | grep Current)" exit 0 fi done ``` --- ### 相关问题 1. 如何通过AP日志确认MAC地址过滤规则? 2. Linux系统中如何实现MAC地址定时自动切换? 3. 企业级无线控制器(如Cisco WLC)的黑名单配置与民用AP有何差异? 4. 哪些WiFi芯片支持硬件级MAC地址随机化?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值