hostapd.conf配置文件详细说明(hostapd conf)
nanshan 2024-10-26 11:11 108 浏览 0 评论
一、hostapd简介:
1. hostapd是一款用来管理和配置无线AP模式的开源工具。
利用此工具可以使用无线网卡切换为master模式,模拟AP路由功能,也就是我们说的软AP(Soft AP)。
通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以开启开放式,WEP,WPA或WPA2、WPA3等方式的无线网络,等待STA设备的连接; 并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求等等。
2. hostapd的运行方法:
hostapd -B /etc/hostapd/hostapd.conf-P /var/run/data/hostapd_ssid1.pid -dd -t -f /var/run/hostapd.log
-B:表示后台运行;
-P: 表示这个hostapd进程的PID数保存在这个hostapd_ssid1.pid文件中,便于查看;
-dd: 打开更多的调试信息,便于分析;
-t: 在log中添加时间戳;
-f: 保存hostapd运行的log信息;
3. hostapd对应的配置文件
名称为hostapd.conf,路径一般linux系统位于/etc/hostapd/hostapd.conf。 android系统下一般位于:/etc/misc/wifi/hostapd.conf. hostapd.conf中的选项非常多,且大部分选项都有默认设置,无需要修改。但如果能对其中的配置选项作进一步了解,那么就可更加灵活的使用hostapd这个工具了,而且里面的一些参数设置是非常重要的,必须了解其意义。
二、hostapd.conf配置选项详解:
说明下,hostapd.conf中的选项非常多,大部分选项都不是必须要设置的,一方面是用不到, 另一方面是因为每个选项都有默认值,更重要的原因是很多参数都是要靠底层驱动实现的, 这里仅仅提供个接口,若底层wifi驱动没实现具体功能,这里修改了也不会生效。
1. interface=wlan0
---hostapd操作进程的接口名称。用ifconfig -a看一下我们的网络设备口,当这里是对wlan0操作时,这里就写上interface=wlan0;当对wlan1操作时,这里就写上interface=wlan1。
如果这里不配置的话就得在执行hostapd进程时加上-i wlan0的参数了。 当我们起多个AP时,这里是有区别的。
2. bridge=br0
---用于上面的interface桥接在知道的网络桥上,这里br0是网桥的名称。用的少,更多的是直接用brctl命令来控制AP接口桥接到哪里。
3. driver=nl80211
---驱动接口类型,我们一般都是nl80211/cfg80211的开源驱动架构,hostapd作为用户侧进程,需要和下层cfg80211驱动接口交互,所以这里用nl80211。
4. ctrl_interface=/var/run/hostapd
---用于独立控制进程的接口。在用户侧,可以通过hostapd_cli来与hostapd进程交互,这个接口就充当了中间人的角色,/var/run/hostapd是hostapd_cli和hostapd两者共同确定的,名字可以任意改,默认是/var/run/hostapd。
但是当hostapd_cli指定为别的接口时,hostapd侧也应该随其指定。比如: hostapd_cli -i wlan0 -p /data/vendor/wifi/wpa/sockets,那么这里ctrl_interface就要变为/data/vendor/wifi/wpa/sockets才能让hostapd_cli顺利调用。
5. ctrl_interface_group=wheel
---ctrl_interface_group类似ctrl_interface,由多用户组成的组来控制hostapd。
6. ssid=AP_TEST
---ssid的值就是热点名,支持中文、数字、双引号和转码符号,当utf8_ssid=1时,(默认为1),是UTF-8转码。 参考创建中文热点名/连接中文热点,要注意ssid最长32个字节。
7. country_code=CN
---设置国家码。参考ISO/IEC3166-1标准的国家代码,默认是US,不同的国家码有着不同的频段限制和发送功率等限制。 这里设置国家码有可能因为一些接口问题设置不到底层去,还需要进一步查看底层驱动的具体国家码设置情况。
8. ieee80211d=1
---使能80211d协议,即将国家码存储在beacon帧中,便于环境中的设备知晓此热点的国家码,从而知道信道使用限制情况。 同样,此配置生效与否需要底层driver层的支持,这里配置好不一定就生效。
9. ieee80211h=1
---DFS(动态频率选择)和TPC(传输功率控制有关),不同的国家码对应的频率和功率有不同的限制,DFS用来躲避5G下的雷达信道,和上面的11d参数一样,默认是打开的。
10. local_pwr_constraint=3
---Power Constraint element这个字段添加到beacon或probe response中,和功率传输控制相关。在ieee80211d=1生效下才生效。
11. spectrum_mgmt_required=1
---将Spectrum Management filed 添加到Capability Information filed中去。在local_pwr_constraint生效时才生效。
12. hw_mode=g
---设置无线模式需要硬件支持,比较重要的参数之一。默认设置: hw_mode=b.
1)80211a/80211b/80211g物理层各不一样,11a是5G下的标准,11g是2.4G下的标准。11b虽然也是2.4G下的, 但是因为它是非OFDM调制,所以后面的11n/11ac/11ax等不再兼容它。
2)从80211n开始物理层没有根本性的变化,都是在前向兼容。 所以对于802.11n/ac/ax等制式,物理层这里字段还是80211a(对应5G)或者80211g(对应2.4G),只有这两种选择。
3) hw_mode=a 或 hw_mode=g 选项也与 IEEE 802.11n 一起使用来设置波段。
a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g, ad = IEEE 802.11ad (60 GHz)
4)当使用 ACS 时,可以使用特殊的选项值 hw_mode=any ,说明可以使用任何可用的波段,该值当前仅在驱动使用了 offloaded ACS 的情况下有效。
13. channel=6
---信道值设置,可以指定当前工作的信道值,默认为0。
---如果编译hostapd时启用了 CONFIG_ACS 选项,可以通过设置 channel=acs_survey 或 channel=0,热点在环境中找个较干净的信道来实施,这个机制对应叫ACS(自动频率选择).
14. op_class=131
---协议IEEE 802.11, Annex E中有个Country information and operating classes部分,里面列出了各个国家码下面的信道集合,我们得出来的所有国家码下面的信道, 都是从表里得出的。若指定了信道就不用指定class,前提是信道指定的对。
15. acs_num_scans=5
---上面说的ACS的扫描次数,默认5次,增加的话会拖长AP开启时间。一般不改.
16. acs_chan_bias=1:0.8 6:0.8 11:0.8
---ACS时的对信道加权重机制,加了权重的信道在选择时有更多的机会被选中。根据描述,这里添加的数值越大越不容易被选中。
17. chanlist=100 104 108 112 116
chanlist=1 6 11-13
freqlist=2437,5945,5965
freqlist=2437,5985-6105
---和op_class类似,都是指定一个信道的范围供选择,而不是单单指定一个信道。用的比较少。默认允许所有信道.
18. acs_exclude_dfs=1
---用来在ACS的列表中执行DFS,就是说只要该信道在ACS列表中,哪怕没有最终被选中,也执行了一次DFS判断。
19. acs_exclude_6ghz_non_psc=1
---只在6G信道上做ACS,用来给只支持6G信道的热点用。
20. beacon_int=100
---beacon包的间隔时间,单位是1.024ms,100就代表每隔近似100ms后发一个beacon,每秒发10个beacon, Beacon_int的大小会影响到漫游、power save等性能,一般默认不改。
21. dtim_period=2
---是一个周期值,代表经过几个beacon周期出现一个DTIM,DTIM是一种位图结构的流量指示字段,在beacon中设置,当STA处于休眠模式没法及时收包时, AP用这个字段来指示哪个STA有待取走的包,然后唤醒STA。对于STA来说,dtim_period值越大就越省电, 但是与此同时就可能不能及时接收AP为它缓存的包,造成延时高的后果。
22. max_num_sta=255
最大连接数。尽管理论下,协议中规定的极限STA接入数为2007个,但是实际底层驱动不可能开放这么多的数目,一般厂商在驱动中都是有自己的限定的;
23. rts_threshold=-1
---RTS/CTS门限值,默认-1,disabled
24. fragm_threshold=-1
---分包门限值,默认-1,disabled.
25.basic_rates=10 20
#supported_rates=10 20 55 110 60 90 120 180 240 360 480 540
#basic_rates=10 20 55 110
#basic_rates=60 120 240
---物理层基本速率的设置,一般用不改
26. beacon_rate=10
---beacon发送时的物理层速率设置,为了更好的兼容性,即beacon按照最低物理层速率发送,以便让最多的WiFi设备接收到。一般用不改.
27. preamble=1
---短前导码设置。像这种类型的参数很大程度上决定于驱动,这里只是提供个接口。默认是0,不允许短前导码。
28.macaddr_acl=1
#accept_mac_file=/etc/hostapd.accept
#deny_mac_file=/etc/hostapd.deny
1) ---黑名单配置方法:
macaddr_acl=0
deny_mac_file=/etc/hostapd.deny
#accept_mac_file=/etc/hostapd.accept
2)---白名单配置方法:
macaddr_acl=1
accept_mac_file=/etc/hostapd.accept
#deny_mac_file=/etc/hostapd.deny
正常deny_mac_file和accept_mac_file都是注释掉的,当配置成黑白名单的时候就会打开。注意只对应打开一个,在hostapd.accept填入白名单的Mac地址,hostapd.deny中填入黑名单的mac地址,然后确保文件放置路径正确。
29. auth_algs=3
---身份验证算法。
1:开放系统认证;
2: 共享密钥认证(需要 WEP);
3: 两者兼容;
注:针对wep加密方式,如果设备连接不了auth_algs =2的AP热点,只需要设置auth_algs=3就ok了。
30. ignore_broadcast_ssid=0
---热点隐藏功能。
0: 广播SSID
1: 不广播SSID(发送空SSID,即长度为0的SSID),且不回复STA的probe request帧。用于STA知道热点存在的情况,STA可以直接关联该热点。
2: 发送的beacon中没有ssid值,但是长度还在。为了兼容一些不支持没有SSID字段的STA。会忽略广播 SSID 的探测请求.
31. no_probe_resp_if_max_sta=0
---在达到最大连接数时max_num_sta,用于不回应有的STA还想尝试关联的行为。这样那些STA就不会被reject后又重新发起连接请求了。
32. vendor_elements=dd0411223301
---在Beacon和Probe Response帧后添加定制化的数据,名字是vendor_elements,值为dd0411223301
33. assocresp_elements=dd0411223301
---在(Re)Association Response 帧中添加定制化的数据,名字是assocresp_elements,值为dd0411223301
34. EDCA相关配置:
# Low priority / AC_BK = background
#tx_queue_data3_aifs=7
#tx_queue_data3_cwmin=15
#tx_queue_data3_cwmax=1023
#tx_queue_data3_burst=0
---EDCA相关配置。
1)AIFS:竞争时间窗口设置,仲裁帧间间隔,AIFS=SIFS+n*SIFS。如果n越大,那么意味着每一次接入信道前需要等待更多的时间,从而优先级更低;
2)CWmin和CWmax是竞争窗口最低和最高的设置值。
3)burst:最大单次传输时间,单位是毫秒。
4)优化级情况如下:AC_VO > AC_VI > AC_BE > AC_BK ;
Low priority / AC_BK = background, 低优先级, 对应data3
Normal priority / AC_BE = best effort, 普通优先级,对应data2
High priority / AC_VI = video, 高优先级, 对应data1
Highest priority / AC_VO = voice, 最高优先级,对应data0
5) 默认数据是AC_BE传输;管理帧是AC_VO;PS-POLL优先级最低,为AC_BE
35. WMM协议:
wmm_enabled=1
uapsd_advertisement_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
---启用WMM。 WMM是WiFi联盟提出来的概念。WMM基本对应了EDCA,WMM-PS基本对应了ASPD。
这里系列的参数是用来给与AP关联的STAs用的,让STA传到AP的数据遵循这些优先级。EDCA的设置优先级见上面。
1)wmm_enabled是开关,
2)uapsd_advertisement_enabled用来让AP广播自己的u-apsd能力。
36. txop_limit
---是TXOP限制值,以32ms为单位。
37. multi_ap=0
---mesh功能相关的参数 ,backhaul BSS(回传bss,对于用户不可见),fronthaul BSS(前传bss,对于用户可见)
0 = disabled (default),
1 = AP support backhaul BSS,
2 = AP support fronthaul BSS,
3 = AP supports both backhaul BSS and fronthaul BSS
38. WEP加密:
wep_default_key=0
#wep_key0=123456789a
#wep_key1="vwxyz"
#wep_key2=0102030405060708090a0b0c0d
#wep_key3=".2.4.6.8.0.23"
---wep相关。
1) wep_default_key的值决定了第几个wep_key生效,正常我们就用首个,wep_key0就行,别的不用管。
2) 注意输入的字符长度有规定,不能像PSK加密那样密码长度随意定。
密钥长度说明:
a. 选择64位密钥,输入16进制数字符10个,或者ASCII码字符5个
b. 选择128位密钥,输入16进制数字符26个,或ASCII码字符13个
c. 选择152位密钥,输入16进制数字符32个,或ASCII码字符16个
39. ap_max_inactivity=300
---如果AP关联的STA在一定时间内没有和AP发生任何联系,那AP会发个问询包到STA,若STA没应答,那么AP就清理掉这个STA。这个值就是用来设置这个时间的。默认300秒。
40.skip_inactivity_poll=0
---这个参数用来打开还是关闭上面那个ap_max_inactivity的feature
41. disassoc_low_ack=1
---用来当STA可能因为丢包导致回应过少时,主动断开该STA的连接。这里具体还是要取决于驱动。
42. max_listen_interval=100
---用来保活STA的最大beacon 间隔数,最大100的话,默认情况下就是10秒左右。
43. wds_sta=1
---用于关联的STA的4个addr都被用到的情况,典型的是桥接功能。只在driver=nl80211架构下有效。
44. wds_bridge=wds-br0
---如上bridge,设置桥的名称
45. start_disabled=0
---用于让AP起来的时候不产生beacon帧,但是其它帧比如probe response还是可以产生的,所以对于想连接它的STA来说并不是透明的,还是可以连接的。
46. ap_isolate=1
---与AP关联的STA之间的隔离可以用来防止低等级的桥接包在它们之间传递,默认值是0,即这些低等级的包默认允许。
47. bss_load_update_period=50
---BSS load是一个用在beacon和probe response帧中的element,若这个值设置,则使能这个bss load element并设置更新间隔,时间间隔是这个值*beacon int
48. chan_util_avg_period=600
---Channel utilization是bss load element的一个字段。用来衡量信道利用情况。应该是bss_load_update_period的倍数来使信道利用率更精确。
49. bss_load_test=12:80:20000
---用来配置bss load element的具体值来用于测试目的。
50. multicast_to_unicast=0
---用来AP对一些ARP/IPV4/IPV6包进行多播转单播的申请对话过程。
若被使能,则这些包被单独发给STA,DA被他们自己的MAC地址替代而不是组播地址。注意,这可能会打破接收方的某些期望行为。
51. broadcast_deauth=1
---在热点打开或关闭时发送deauth解除认证帧,默认是打开的。
52. ieee80211n=1
---HT字段是否被打开。 打开后支持80211.n模式下的高速HT40,默认关闭。
53. ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
---HT_capabilities 这是个对应11n协议的element,设置HT40带宽;
1)常用的配置项:
[HT40-][HT40+][SHORT-GI-20] [SHORT-GI-40]
2)不常用的配置项:
[LDPC][GF][TX-STBC][RX-STBC1][RX-STBC12][RX-STBC123][DELAYED-BA][MAX-AMSDU-7935][DSSS_CCK-40][40-INTOLERANT][LSIG-TXOP-PROT]
说明:
1)[HT40-][HT40+]:
WiFi信道原始只有20M,后面发展出40/80/160M,40M是由两个20M合并而来,所以会有主信道和辅助信道;
---主信道发送beacon报文和部分数据报文,辅助信道发送其他报文。
---HT40+:辅助信道向高于主信道中心频率的方向扩展
---HT40-:辅助信道向低于主信道中心频率的方向扩展
---40M及往上都是规定好的信道
(1)2.4G模式下:
---对于HT40+,可供选择的信道有:1-7信道, 对于这些信道而言, 辅助信道往高发展,所以是"+";
---对于HT40-,可供选择的信道有:5-13信道, 对于这些信道而言,辅助信道往低发展,所以是“-”;
(2)5G模式下,比如36/40合成一个40M信道,44/48合成一个40M信道,但是40和44不能合成一个40M 信道。
---对于5G中HT40+,可供选择的信道有:36, 44, 52, 60..., 对于这些信道而言,辅助信道往高发展,所以是"+";
---对于5G中HT40-,可供选择的信道有:40, 48, 56, 64...,对于这些信道而言,辅助信道往低发展,所以是“-”;
2)[SHORT-GI-20] [SHORT-GI-40]
---Short-GI :保护间隔(Short Guard Interval),是前后符号间的一段空白时间,可以为延迟信号提供更长的缓冲时间,用于减少符号间干扰。
---原理:射频芯片在使用OFDM调制方式发送数据时,整个帧是被划分成不同的数据块进行发送的,为了数据传输的可靠性,数据块之间会有GI,用以保证接收侧能够正确的解析出各个数据块。无线信号在空间传输会因多径等因素在接收侧形成时延,如果后续数据块发送过快,会和前一个数据块形成干扰,而GI就是用来规避这个干扰的。
---作用:Short-GI 机制可以缩短两个数据传输间隔,用于提高效率,802.11a/b/g传输间隔是800ns,short gi设置将间隔缩短至400ns,可以将效率提高10%左右。
另外,Short GI与带宽无关,支持20MHz、40MHz带宽。
---当多径效应不是很严重时,用户可以将该间隔配置为400ns;对于多径效应较明显的环境,不建议使用Short Guard Interval (GI)。
3)TX-STBC(802.11n协议的可选特性)
---MIMO的一种分集技术。
通过使用多根天线来发送同一个数据的多份拷贝,来增加冗余,提高传输的稳定性。
接收方可以在即使有部分数据因干扰或者衰减而丢失的情况下,将不同拷贝重新整理成一份数据,
从而提高数据传输的可靠性,可实现更远距离的数据传输;
4)LDPC(802.11n协议的可选特性)
---LDPC码是一种易实现和系统复杂度低的优秀的线性纠错码,被称为低密度奇偶校验码(Low-density Parity-check),
它的主要优势有:
1) LDPC码具有很好的抗衰落性,可以在不影响系统性能的前提下,省去原802.11标准中的交织模块,从而减小系统延迟;
2) 提高编码增益,接收方在比较低的信噪比环境下,依旧可以实现比较低的误码率,从而提高了发送方(比如AP)的覆盖范围;
3) 相比Turbo码译码算法,LDPC码的译码运算量低,且硬件比较容易实现,非常适合大容量通信应用;
54. require_ht=1
---需要STA支持HT物理层,比如HT-SIG,HT_STF等前导字段,如果STA不支持,那就拒绝连接。现在基本上没有不支持的。
55.obss_interval=0
---overlapping BSS(OBSS)是WiFi里面很普遍的现象,只要空间内有多个热点在同样的信道内构成相互影响,就叫OBSS。
它是构成MAC竞争开销的主要原因,如果设置为非零,要求STA执行重叠通道扫描,以测试哪些STA会受到40mhz流量的影响。
这里的参数若设置成非0值,则代表2.4G频段下的AP被允许移动到40M带宽上,前提是周围没有OBSS的热点。
55. ht2040_coex_disable=0
---HT20/40共存是否被允许,默认是被允许,所以这里是0
##### IEEE 802.11ac协议相关 #####################################
56. ieee80211ac=1
---11ac模式,对应VHT element特性是否会被支持,默认是0不支持。
57. vht_capab=[SHORT-GI-80][HTC-VHT]
---VHT capabilities对应的配置,里面有很多filed,可以参照协议来配置。
如:vht_max_mpdu_len/supported_chan_width/Rx LDPC coding capability等,一般不需要配置
58.require_vht=1
---与require_ht类似,需要STA支持VHT物理层,比如VHT-SIG,VHT-STF等前导字段,如果STA不支持,那就拒绝连接。
59. vht_oper_chwidth=1
---VHT下控制带宽的一个比较重要的设置,不管是11ac还是11ax,但凡需要80M带宽,这里都得设置成1。
此参数本质上是通过 Channel Width field和Supported Channel Width Set field这两个参数来具体设置带宽的。
这具体设置如下:
# 0 = 20 or 40 MHz operating Channel width
# 1 = 80 MHz channel width
# 2 = 160 MHz channel width
# 3 = 80+80 MHz channel width
60. vht_oper_centr_freq_seg0_idx=42
vht_oper_centr_freq_seg1_idx=159
---用来计算信道的中心频率,计算公式如下,这里index表示的是信道值
center_freq = 5GHz + (5 * index)
61. use_sta_nsts=0
---Nsts(space-time streams)时空中数据流数量。一种用来在(Re)Association Response frame此类帧中的标记, 该标记是nsts capability字段,该标记显示要在beamforming框架下使用STA支持的空间流,也就是说此时beamforming决定于STA的能力,而不是AP能力。置1时生效。
##### IEEE 802.11ax 协议相关 #####################################
62. ieee80211ax=1
---802.11ax (HE)是否被使能,默认disable。若要使能AP的11ax协议功能,此参数一定要打开。
63. he_su_beamformer=1
he_su_beamformee=1
he_mu_beamformer=1
---beamforming(波束成型)是WiFi等无线通信中的重要概念。它是一种'指定'天线方向的技术,利用电磁波的在某些位置相位得到增强的特性。
---beamformer是发波束成型的设备,beamformee是接收波束成型的设备,有利于在嘈杂的环境中,发送-接收端能彼此最大程度的相互倾听,排除环境干扰。
---SU:single-user, MU: multi-user; SU和MU的区别在于同一时刻AP有没有能力向不同方向的STA同时发送数据;
he_su_beamformer:HE single user beamformer support 单用户beamformer支持
he_su_beamformee:HE single user beamformee support 单用户beamformee 支持
he_mu_beamformer:HE multiple user beamformer support 多用户beamformer支持
64. he_bss_color=1
---bss coloring是11ax的特有技术,用来在mac层和phy层增加一些字段,便于设备区别不同的BSS,有利于提升抗同频干扰的性能。目前可以标记达63个bss,所以这里的值he_bss_color范围是(1-63)
65. he_bss_color_partial=0
---用来给bss color做辅助计算
66. he_default_pe_duration=0
---HE Operation field下面的第一个default PE duration的值,单位是us
67. he_twt_required=0
---HE Operation field下面的twt_required设置值,这是一种高效的节能方式。 默认是0,不打开。
TWT (Target Wakeup Time)目标唤醒时间是11ax的特有技术,在STA和AP关联后就建立一张时间表, 然后彼此就能知道唤醒的具体时间点。
68. he_rts_threshold=0
---是一种时间单位,用来管理非11ax的STA关联在支持ax的AP上时,rts/cts的使用。以16us为单位
69. he_oper_chwidth
he_oper_centr_freq_seg0_idx
he_oper_centr_freq_seg1_idx
---he_oper_chwidth和vht_oper_chwidth一样。但凡需要80M带宽,这里都得设置成1,设置如下:
# 0 = 20 or 40 MHz operating Channel width
# 1 = 80 MHz channel width
# 2 = 160 MHz channel width
# 3 = 80+80 MHz channel width
另外两个参数和VHT一样,也是用来计算信道的中心频率
70. he_basic_mcs_nss_set
---基本NSS/MCS设置集,
0 = HE-MCS 0-7,
1 = HE-MCS 0-9,
2 = HE-MCS 0-11,
3 = not supported
71. he下的edca参数配置
he_mu_edca_qos_info_param_count
he_mu_edca_qos_info_q_ack
he_mu_edca_qos_info_queue_request=1
he_mu_edca_qos_info_txop_request
he_mu_edca_ac_be_aifsn=0
he_mu_edca_ac_be_ecwmin=15
he_mu_edca_ac_be_ecwmax=15
he_mu_edca_ac_be_timer=255
---he下的edca参数配置,参考协议,qos info field部分
72. Spatial Reuse空间复用技术
he_spr_sr_control
he_spr_non_srg_obss_pd_max_offset
he_spr_srg_obss_pd_min_offset
he_spr_srg_obss_pd_max_offset
---Spatial Reuse空间复用技术,主要是我们前面说的bss color技术,这里的参数就是用来做Spatial Reuse设置集的, 具体参考协议Spatial reuse operation部分。
##### 加密方式设置:比如wpa/wpa2/wpa3等等,这里有个统一的标准,叫做802.11i,又叫做RSN,强健安全网络
73. wpa=2
# bit0 = WPA
# bit1 = IEEE 802.11i/RSN (WPA2) (作用于dot11RSNAEnabled)
---wpa=1: 单独支持WPA
---wpa=2: 单独支持WPA2或单独WPA3;或WPA2/WPA3兼容
---wpa=3: WPA/WPA2兼容 或 WPA/WPA2/WPA3兼容
74. extended_key_id=0
---用于不从key ID 0开始的一些重新键入PTK 的选项,默认是0,不打开。
75. wpa_psk=
---这个wpa_psk是个固定64个hex大小的值,总计256bits,它是由ssid+passphrase(密码)算出来的,
正常我们不会在这里赋值,而是使用下面的wpa_passphrase来设置密码;
76. wpa_passphrase=secret passphrase
---本热点的密码设置。在四路握手过程中,总会要生成这个psk值的。
77. wpa_psk_file=/etc/hostapd.wpa_psk
---一个用来存储多个wpa_psk的txt文件,用于批量设置AP密码的场景非常实用(针对不同AP设置不同的密码)
78. wpa_psk_radius=0
---WPA的密码从RADIUS服务器上接收,前置条件是macaddr_acl设置为2
79. wpa_key_mgmt=WPA-PSK WPA-EAP
---接受的密钥管理集合。可以设置多个,中间以空格分开,分为wpa-psk 和wpa-eap两大类。
常用的有以下:
# WPA-PSK = WPA-Personal / WPA2-Personal
# WPA-EAP = WPA-Enterprise / WPA2-Enterprise
# SAE = WPA3-Personal
# OWE = Opportunistic Wireless Encryption 用于WPA3中的开放加密,和SAE相对应
# DPP = Device Provisioning Protocol ,又叫wifi easy connect
80. wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
---TKIP和CCMP都是RSN中的两个数据加密算法,和WEP相对应,CCMP又叫AES
---wpa_pairwise作用于WPA,rsn_pairwise作用于WPA2及以上,由于rsn_pairwise默认是使用的wpa_pairwise的值,所以平时只需要设置wpa_pairwise的值即可;
---wpa_pairwise应用于单播帧,group_cipher应用于组播和广播加密算法;如果group_cipher没有设置,也会使用wpa_pairwise参数,具体参考文档:TKIP/CCMP;
注意:
1)当 wpa_pairwise=CCMP时, 组播广播和单播的加密方式都是CCMP的,STA只需要支持CCMP即可连接;
2)当wpa_pairwise=CCMP TKIP时, 单播靠的是CCMP, 组播广播是靠TKIP来加密,此时所有STA必须支持TKIP加密才能连接;
即对应关系为:
AP:wpa_pairwise(CCMP)---STA(CCMP+TKIP)or STA(CCMP)
AP:wpa_pairwise(CCMP+TKIP)---STA(CCMP+TKIP)
这种组合无法连接:AP:wpa_pairwise(CCMP+TKIP)---STA(CCMP)
单独的TKIP加密不应该存在。所以wpa_pairwise设置CCMP,STA模式下设置CCMP+TKIP可以最大程度避免兼容性问题。
81. group_cipher=CCMP
---即上面提到的组播和广播的加密方式,一般不设置,当然设置好的话可以避免一些兼容性问题,比如上面连接不了的组合在下面设置时又可以连接上:
AP:wpa_pairwise(CCMP+TKIP)+group_cipher=CCMP ---STA(CCMP)
82.wpa_group_rekey=86400
---过一段时间更新GTK(组临时秘钥,它用于组播数据帧和广播数据帧的加密和解密),这里更新GTK并不是重新进行一次四次握手过程,只是第3/4步重新握手。
---CCMP时默认是一天时间:24*3600=86400秒,TKIP默认是10分钟。若时间到了,AP进入更新流程,但是STA没做好准备,比如还处在睡眠中时,这时更新失败,STA断联AP。
---四次握手经过:PMK派生出PTK(GMK派生GTK),利用PTK来组成STA和AP之间的成对(pariwise)密钥,在个人加密中PMK就可以看出PSK,PSK就是我们WiFi的密码,PMK由PSK经hash运算生成。
84. wpa_strict_rekey=1
---是否使能任何断联的STA都会更新GTK,默认是打开的。
85. wpa_group_update_count=4
---这个值用来设置一个尝试次数,尝试在四次握手1/2失败后重新四路握手的次数,默认4次。我们在输入密码错误后总计看到4次1/2流程源于此。
86. wpa_gmk_rekey=86400
---更新GMK的时间间隔,和wpa_group_rekey类似。
87. wpa_ptk_rekey=600
---更新PTK的时间间隔,和wpa_group_rekey类似。用于减轻一些针对TKIP缺陷的攻击。PTK重建有很多驱动程序/设备的问题,对于这样的设备,惟一安全的更新PTK就是断开连接
88. wpa_deny_ptk0_rekey=0
---用来对上面hostapd和驱动之间更新PTK时问题的变通处理,简而言之就是标记什么情况下可以更新PTK。
0:表示只要wpa_ptk_rekey被配置即生效;
1:表示还要看看驱动显不显示支持;
2:代表不被允许更新。
89. wpa_pairwise_update_count=4
---规定了四路握手中的1/3个帧被重试的次数,默认也是4。
90. rsn_preauth=1
---用来打开预认证功能(pre-authentication)以加速漫游的过程,这里的漫游仅针对企业级漫游,省掉了802.1x认证过程获取PMK的时间。
91. rsn_preauth_interfaces=eth0
---接受预认证帧的接口列表,以空格分隔(例如,'eth0'或'eth0wlan0wds0')。该列表应包括用于连接到其他ap的所有接口。
这可能包括有线接口和WDS链接。不应该添加指向STA的正常无线数据接口(例如wlan0),因为预认证只用于当前关联的ap之外的ap。
92. ieee80211w=0
---ieee80211w是用来专门保护管理帧的协议(又叫PMF:protect managent frames),为了兼容性考虑, 有三个选项,禁用、可选、和必选 。
# 0 = disabled (default)
# 1 = optional=Management frame protection capable
# 2 = required=Management frame protection required
在WPA3兼容模式时,wpa_key_mgmt=WPA-PSK SAE,ieee80211w=1
在WPA3 only模式时,wpa_key_mgmt=SAE,ieee80211w=2
94. group_mgmt_cipher=AES-128-CMAC
---所有连接到BSS的STA也需要支持所选密码。默认的AES-128-CMAC是部署设备中通常可用的唯一选项
95. beacon_prot=0
---beacon帧保护,默认关闭,取决于ieee80211w 是否为非0值
96. assoc_sa_query_max_timeout=1000
---SA_query(Security Association Query),是80211w中的一个新的过程标准,所有支持PMF的STA必需支持SA query过程,在 STA已连接AP后,SA query request由STA发给AP,AP返回SA query response。
assoc_sa_query_max_timeout这个时间就用来STA在发完SA query request后,等待response最大的时间。 单位是一个 beacon interval (1.024ms)
97.ocv=1
---ocv: Operating Channel Validation操作信道验证
一种防止多信道中间人攻击的方法,打开这个就需要打开ieee80211w,默认是关闭。
98. disable_pmksa_caching=0
---是否使能PMKSA缓存,默认不缓存。
说明:
---PMKSA( PMK Security Association )是PMK缓存信息的名称。它对于企业级加密漫游很重要。
---PMKSA包括AP的MAC地址、PMK的生命周期(lifetime),以及PMKID(PMK IDentifier,用于标示这个PMKSA,其值由PMK、AP的MAC地址、STA的MAC地址等信息用Hash计算得来),
注意这里PMKID包含了STA和AP双方的mac地址。
---当STA连接AP时,STA会根据目标AP的MAC地址判断自己是否已经缓存PMKSA信息,有的话就把该PMKID放在assoccia req/re-associa req帧里告诉AP,AP再来根据这个PMKID判断是否缓存了PMKSA。
---这样当STA重新回到这个AP时,不用进行完整的认证过程(针对企业级加密,又可以理解成802.1x认证),直接进行四路握手就好了。
99. okc=1
---和pmksa缓存类似,也是用于企业级加密缓存的一种方式。和pmksa区别在于,OKC会将PMK在AP之间进行交换。
100. sae_password=secret
---sae_password用来单独给WPA3(SAE)加密的连接作密码。而wpa2及以前的密码还是wpa_pairwise,两者在都使能的情况下互不影响。
101. sae_anti_clogging_threshold=5
---定义了多少个SAE加密的实体在抗拥塞机制前可以同时继续;
102. sae_sync=5
---最大SAE加密错误允许发生的数量,超过这个错误就要被断联了
103. sae_require_mfp=0
---此参数可用于对所有协商使用SAE的关联强制进行MFP协商,当sae_require_mfp=1时,非SAE站点可以不使用MFP进行连接,而SAE站点需要协商MFP.
107. transition_disable=0x01
---当网络完成transition步骤时,AP可以通知经过身份验证的站点在其网络配置文件中禁用transition模式,这里的transition mode是过渡模式的意思.
例如,一旦周围充足的AP都已经升级过来支持更安全的另一个选项, 当这个参数transition_disable被设置了,STA就会预期中将更低级别的安全模式disable掉,即禁用过渡模式,包含WEP、TKIP、和不带PMF的连接。
##### IEEE 802.11r configuration ##############################################
108. 802.11r
---802.11r的功能是快速BSS切换(FT,Fast Basic Service Set Transition),也称为快速漫游(fast roaming)。
802.11r是唯一可以应用在personal加密的漫游机制,且不需要四路握手,前面提到的pmksa_caching和OKC都是应用在企业级加密且需要四路握手。
BTW:所有的漫游都不需要STA来重新获取IP地址.
##### Neighbor table ##########################################################
109. neighbor table
---邻居报告,是漫游前置步骤中的重要一环。11r一般要结合11k来使用,neighbor table是11k中的概念。
邻居报告请求被发送到一个AP,该AP返回一个邻居报告,其中包含关于作为服务集转换候选的已知邻居APs的信息。
邻居报告包含来自MIB中关于邻居APs的表dot11RRMNeighborReportTable的信息。这个请求/报告对使STA能够获得关于相关AP的邻居的信息,以用作潜在的漫游候选对象。
##### Wi-Fi Protected Setup (WPS) #############################################
110. WPS功能
---又叫WSC,用于简化STA连接AP的过程,典型的有PBC和PIN连接。
是P2P连接的基础,和p2p连接的区别在于WPS连接前设备角色是固定的,一个是AP一个是STA;而对于p2p来说,连接前设备角色都一样,需要协商出AP(GO)。
三、例子:一个简单的 hostapd配置文件:
interface=wlan0
driver=nl80211
ctrl_interface_group=0
hw_mode=g
max_num_sta=2
ssid=ap_wifi
auth_algs=1
channel=0
#ieee80211n=1
#ht_capab=[HT20][SHORT-GI-20]
#vht_oper_chwidth=1
#vht_oper_centr_freq_seg0_idx=42
country_code=CN
ieee80211d=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
rsn_pairwise=CCMP
wpa_pairwise=CCMP
记录完毕,后期随着深入理解后再补充完善。
相关推荐
- ssh终端xshell日志查看命令(xshell怎么看日志)
-
现在我们云服务器运维较多用的是SSH工具,其中常用的包括PUTTY、XSHELL等,其实大同小异界面UI稍微不同,但是都可以进入远程连接。这里有朋友提到如何查看服务器的日志文件,这个其实和是否使用XS...
- 使用 Fail Ban 日志分析 SSH 攻击行为
-
通过分析`fail2ban`日志可以识别和应对SSH暴力破解等攻击行为。以下是详细的操作流程和关键分析方法:---###**一、Fail2ban日志位置**Fail2ban的日志路径因系统配置...
- 如何高效读取Linux日志文件?这些命令要熟记于心!
-
在Linux系统中,日志文件通常存储在/var/log目录下。比如,/var/log/syslog(或/var/log/messages,视发行版而定)记录系统整体事件,/var/log/a...
- Windows服务器远程登录日志查询方法,linux查看登录日志方法
-
概述本文介绍Windows、Linux服务器查询系统的远程登录日志方法。根据服务器所使用的操作系统不同,有以下两种查询方法。Linux操作系统的登录日志查询通过远程连接登录Linux服务器,使用roo...
- iptables防火墙如何记录日志(防火墙日志查看)
-
例如:记录所有ssh服务的登录的日志首先,我们需要了解如何将所有的iptables的INPUT链数据包记录到/var/log/messages中。如果你已经有一些iptables规则了,那么将记录日志...
- 如何安全管理SSH密钥以防止服务器被入侵
-
SSH密钥安全管理实施指南(2025年更新版)一、密钥生成与存储规范高强度密钥生成bashCopyCodessh-keygen-ted25519-a100#生成ED25519算法密钥(比...
- 在CentOS上安装nginx服务器(centos搭建代理服务器)
-
一、环境描述1.虚拟机配置CPU:单核内存:2GB硬盘:120GBIP:10.24.17.1082.操作系统版本:CentOS6.6x86_64安装方式:Minimal3.虚拟化环境VM...
- CentOS7安全加固的一份整理规划建议
-
◆更新系统:及时更新CentOS7操作系统版本和安全补丁,确保系统以最新状态运行。◆关闭不必要的服务:在运行系统时,应关闭不需要的服务和端口,以减少系统暴露的攻击面。◆安装防火墙:使用iptables...
- 第四十七天-二叉树,centOS安装tomcat,Maven,vsftpd
-
学习笔记:1.Maven是Apache下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven...
- Linux远程桌面连接使用教程 Widows终端远程连接Linux服务器
-
一、前言为什么不是远程连接Linux服务器?因为我不会,远程连接window我就用电脑自带的“远程桌面连接”。以下所述都是在CentOS操作系统下的。服务器刚换成Linux的时候很迷茫,感觉无从下手...
- CentOS 安全加固操作,保护你的操作系统
-
系统加固是保障系统安全的重要手段,对于维护企业数据安全、用户隐私以及系统稳定运行具有重要意义。加固后的系统更加健壮和稳定,能够有效减少因安全问题导致的系统故障和停机时间,提高系统的可用性和可靠性。通过...
- Dockerfile部署Java项目(docker如何部署java项目)
-
1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...
- CentOS7云主机部署Fail2ban阻断SSH暴力破解
-
关于Fail2banFail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)例如:当有人在试探你的HTTP、SSH、SMTP、FTP密...
- 在CentOS7上用源码编译安装PostgreSQL
-
1、新建postgres用户#useraddpostgres&&passwdpostgres2、安装依赖包#yum-yinstallmakegccgcc-c++readline...
- pure-ftpd 使用(ftp prompt命令)
-
pure-ftpd是一个免费的ftp软件,其他介绍就不多说了。我们直接开始主题安装centosyuminstallepel-releaseyuminstallpure-ftpd配置备份原配置...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)