百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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配置备份原配置...

取消回复欢迎 发表评论: