1##### Example wpa_supplicant configuration file ############################### 2# 3# This file describes configuration file format and lists all available option. 4# Please also take a look at simpler configuration examples in 'examples' 5# subdirectory. 6# 7# Empty lines and lines starting with # are ignored 8 9# NOTE! This file may contain password information and should probably be made 10# readable only by root user on multiuser systems. 11 12# Note: All file paths in this configuration file should use full (absolute, 13# not relative to working directory) path in order to allow working directory 14# to be changed. This can happen if wpa_supplicant is run in the background. 15 16# Whether to allow wpa_supplicant to update (overwrite) configuration 17# 18# This option can be used to allow wpa_supplicant to overwrite configuration 19# file whenever configuration is changed (e.g., new network block is added with 20# wpa_cli or wpa_gui, or a password is changed). This is required for 21# wpa_cli/wpa_gui to be able to store the configuration changes permanently. 22# Please note that overwriting configuration file will remove the comments from 23# it. 24#update_config=1 25 26# global configuration (shared by all network blocks) 27# 28# Parameters for the control interface. If this is specified, wpa_supplicant 29# will open a control interface that is available for external programs to 30# manage wpa_supplicant. The meaning of this string depends on which control 31# interface mechanism is used. For all cases, the existence of this parameter 32# in configuration is used to determine whether the control interface is 33# enabled. 34# 35# For UNIX domain sockets (default on Linux and BSD): This is a directory that 36# will be created for UNIX domain sockets for listening to requests from 37# external programs (CLI/GUI, etc.) for status information and configuration. 38# The socket file will be named based on the interface name, so multiple 39# wpa_supplicant processes can be run at the same time if more than one 40# interface is used. 41# /var/run/wpa_supplicant is the recommended directory for sockets and by 42# default, wpa_cli will use it when trying to connect with wpa_supplicant. 43# 44# Access control for the control interface can be configured by setting the 45# directory to allow only members of a group to use sockets. This way, it is 46# possible to run wpa_supplicant as root (since it needs to change network 47# configuration and open raw sockets) and still allow GUI/CLI components to be 48# run as non-root users. However, since the control interface can be used to 49# change the network configuration, this access needs to be protected in many 50# cases. By default, wpa_supplicant is configured to use gid 0 (root). If you 51# want to allow non-root users to use the control interface, add a new group 52# and change this value to match with that group. Add users that should have 53# control interface access to this group. If this variable is commented out or 54# not included in the configuration file, group will not be changed from the 55# value it got by default when the directory or socket was created. 56# 57# When configuring both the directory and group, use following format: 58# DIR=/var/run/wpa_supplicant GROUP=wheel 59# DIR=/var/run/wpa_supplicant GROUP=0 60# (group can be either group name or gid) 61# 62# For UDP connections (default on Windows): The value will be ignored. This 63# variable is just used to select that the control interface is to be created. 64# The value can be set to, e.g., udp (ctrl_interface=udp) 65# 66# For Windows Named Pipe: This value can be used to set the security descriptor 67# for controlling access to the control interface. Security descriptor can be 68# set using Security Descriptor String Format (see http://msdn.microsoft.com/ 69# library/default.asp?url=/library/en-us/secauthz/security/ 70# security_descriptor_string_format.asp). The descriptor string needs to be 71# prefixed with SDDL=. For example, ctrl_interface=SDDL=D: would set an empty 72# DACL (which will reject all connections). See README-Windows.txt for more 73# information about SDDL string format. 74# 75ctrl_interface=/var/run/wpa_supplicant 76 77# IEEE 802.1X/EAPOL version 78# wpa_supplicant is implemented based on IEEE Std 802.1X-2004 which defines 79# EAPOL version 2. However, there are many APs that do not handle the new 80# version number correctly (they seem to drop the frames completely). In order 81# to make wpa_supplicant interoperate with these APs, the version number is set 82# to 1 by default. This configuration value can be used to set it to the new 83# version (2). 84# Note: When using MACsec, eapol_version shall be set to 3, which is 85# defined in IEEE Std 802.1X-2010. 86eapol_version=1 87 88# AP scanning/selection 89# By default, wpa_supplicant requests driver to perform AP scanning and then 90# uses the scan results to select a suitable AP. Another alternative is to 91# allow the driver to take care of AP scanning and selection and use 92# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association 93# information from the driver. 94# 1: wpa_supplicant initiates scanning and AP selection; if no APs matching to 95# the currently enabled networks are found, a new network (IBSS or AP mode 96# operation) may be initialized (if configured) (default) 97# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association 98# parameters (e.g., WPA IE generation); this mode can also be used with 99# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with 100# APs (i.e., external program needs to control association). This mode must 101# also be used when using wired Ethernet drivers. 102# Note: macsec_qca driver is one type of Ethernet driver which implements 103# macsec feature. 104# 2: like 0, but associate with APs using security policy and SSID (but not 105# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to 106# enable operation with hidden SSIDs and optimized roaming; in this mode, 107# the network blocks in the configuration file are tried one by one until 108# the driver reports successful association; each network block should have 109# explicit security policy (i.e., only one option in the lists) for 110# key_mgmt, pairwise, group, proto variables 111# When using IBSS or AP mode, ap_scan=2 mode can force the new network to be 112# created immediately regardless of scan results. ap_scan=1 mode will first try 113# to scan for existing networks and only if no matches with the enabled 114# networks are found, a new IBSS or AP mode network is created. 115ap_scan=1 116 117# MPM residency 118# By default, wpa_supplicant implements the mesh peering manager (MPM) for an 119# open mesh. However, if the driver can implement the MPM, you may set this to 120# 0 to use the driver version. When AMPE is enabled, the wpa_supplicant MPM is 121# always used. 122# 0: MPM lives in the driver 123# 1: wpa_supplicant provides an MPM which handles peering (default) 124#user_mpm=1 125 126# Maximum number of peer links (0-255; default: 99) 127# Maximum number of mesh peering currently maintained by the STA. 128#max_peer_links=99 129 130# Timeout in seconds to detect STA inactivity (default: 300 seconds) 131# 132# This timeout value is used in mesh STA to clean up inactive stations. 133#mesh_max_inactivity=300 134 135# cert_in_cb - Whether to include a peer certificate dump in events 136# This controls whether peer certificates for authentication server and 137# its certificate chain are included in EAP peer certificate events. This is 138# enabled by default. 139#cert_in_cb=1 140 141# EAP fast re-authentication 142# By default, fast re-authentication is enabled for all EAP methods that 143# support it. This variable can be used to disable fast re-authentication. 144# Normally, there is no need to disable this. 145fast_reauth=1 146 147# OpenSSL Engine support 148# These options can be used to load OpenSSL engines. 149# The two engines that are supported currently are shown below: 150# They are both from the opensc project (http://www.opensc.org/) 151# By default no engines are loaded. 152# make the opensc engine available 153#opensc_engine_path=/usr/lib/opensc/engine_opensc.so 154# make the pkcs11 engine available 155#pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so 156# configure the path to the pkcs11 module required by the pkcs11 engine 157#pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so 158 159# OpenSSL cipher string 160# 161# This is an OpenSSL specific configuration option for configuring the default 162# ciphers. If not set, "DEFAULT:!EXP:!LOW" is used as the default. 163# See https://www.openssl.org/docs/apps/ciphers.html for OpenSSL documentation 164# on cipher suite configuration. This is applicable only if wpa_supplicant is 165# built to use OpenSSL. 166#openssl_ciphers=DEFAULT:!EXP:!LOW 167 168 169# Dynamic EAP methods 170# If EAP methods were built dynamically as shared object files, they need to be 171# loaded here before being used in the network blocks. By default, EAP methods 172# are included statically in the build, so these lines are not needed 173#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so 174#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so 175 176# Driver interface parameters 177# This field can be used to configure arbitrary driver interace parameters. The 178# format is specific to the selected driver interface. This field is not used 179# in most cases. 180#driver_param="field=value" 181 182# Country code 183# The ISO/IEC alpha2 country code for the country in which this device is 184# currently operating. 185#country=US 186 187# Maximum lifetime for PMKSA in seconds; default 43200 188#dot11RSNAConfigPMKLifetime=43200 189# Threshold for reauthentication (percentage of PMK lifetime); default 70 190#dot11RSNAConfigPMKReauthThreshold=70 191# Timeout for security association negotiation in seconds; default 60 192#dot11RSNAConfigSATimeout=60 193 194# Wi-Fi Protected Setup (WPS) parameters 195 196# Universally Unique IDentifier (UUID; see RFC 4122) of the device 197# If not configured, UUID will be generated based on the local MAC address. 198#uuid=12345678-9abc-def0-1234-56789abcdef0 199 200# Device Name 201# User-friendly description of device; up to 32 octets encoded in UTF-8 202#device_name=Wireless Client 203 204# Manufacturer 205# The manufacturer of the device (up to 64 ASCII characters) 206#manufacturer=Company 207 208# Model Name 209# Model of the device (up to 32 ASCII characters) 210#model_name=cmodel 211 212# Model Number 213# Additional device description (up to 32 ASCII characters) 214#model_number=123 215 216# Serial Number 217# Serial number of the device (up to 32 characters) 218#serial_number=12345 219 220# Primary Device Type 221# Used format: <categ>-<OUI>-<subcateg> 222# categ = Category as an integer value 223# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for 224# default WPS OUI 225# subcateg = OUI-specific Sub Category as an integer value 226# Examples: 227# 1-0050F204-1 (Computer / PC) 228# 1-0050F204-2 (Computer / Server) 229# 5-0050F204-1 (Storage / NAS) 230# 6-0050F204-1 (Network Infrastructure / AP) 231#device_type=1-0050F204-1 232 233# OS Version 234# 4-octet operating system version number (hex string) 235#os_version=01020300 236 237# Config Methods 238# List of the supported configuration methods 239# Available methods: usba ethernet label display ext_nfc_token int_nfc_token 240# nfc_interface push_button keypad virtual_display physical_display 241# virtual_push_button physical_push_button 242# For WSC 1.0: 243#config_methods=label display push_button keypad 244# For WSC 2.0: 245#config_methods=label virtual_display virtual_push_button keypad 246 247# Credential processing 248# 0 = process received credentials internally (default) 249# 1 = do not process received credentials; just pass them over ctrl_iface to 250# external program(s) 251# 2 = process received credentials internally and pass them over ctrl_iface 252# to external program(s) 253#wps_cred_processing=0 254 255# Vendor attribute in WPS M1, e.g., Windows 7 Vertical Pairing 256# The vendor attribute contents to be added in M1 (hex string) 257#wps_vendor_ext_m1=000137100100020001 258 259# NFC password token for WPS 260# These parameters can be used to configure a fixed NFC password token for the 261# station. This can be generated, e.g., with nfc_pw_token. When these 262# parameters are used, the station is assumed to be deployed with a NFC tag 263# that includes the matching NFC password token (e.g., written based on the 264# NDEF record from nfc_pw_token). 265# 266#wps_nfc_dev_pw_id: Device Password ID (16..65535) 267#wps_nfc_dh_pubkey: Hexdump of DH Public Key 268#wps_nfc_dh_privkey: Hexdump of DH Private Key 269#wps_nfc_dev_pw: Hexdump of Device Password 270 271# Maximum number of BSS entries to keep in memory 272# Default: 200 273# This can be used to limit memory use on the BSS entries (cached scan 274# results). A larger value may be needed in environments that have huge number 275# of APs when using ap_scan=1 mode. 276#bss_max_count=200 277 278# Automatic scan 279# This is an optional set of parameters for automatic scanning 280# within an interface in following format: 281#autoscan=<autoscan module name>:<module parameters> 282# autoscan is like bgscan but on disconnected or inactive state. 283# For instance, on exponential module parameters would be <base>:<limit> 284#autoscan=exponential:3:300 285# Which means a delay between scans on a base exponential of 3, 286# up to the limit of 300 seconds (3, 9, 27 ... 300) 287# For periodic module, parameters would be <fixed interval> 288#autoscan=periodic:30 289# So a delay of 30 seconds will be applied between each scan 290 291# filter_ssids - SSID-based scan result filtering 292# 0 = do not filter scan results (default) 293# 1 = only include configured SSIDs in scan results/BSS table 294#filter_ssids=0 295 296# Password (and passphrase, etc.) backend for external storage 297# format: <backend name>[:<optional backend parameters>] 298#ext_password_backend=test:pw1=password|pw2=testing 299 300# Timeout in seconds to detect STA inactivity (default: 300 seconds) 301# 302# This timeout value is used in P2P GO mode to clean up 303# inactive stations. 304#p2p_go_max_inactivity=300 305 306# Passphrase length (8..63) for P2P GO 307# 308# This parameter controls the length of the random passphrase that is 309# generated at the GO. Default: 8. 310#p2p_passphrase_len=8 311 312# Extra delay between concurrent P2P search iterations 313# 314# This value adds extra delay in milliseconds between concurrent search 315# iterations to make p2p_find friendlier to concurrent operations by avoiding 316# it from taking 100% of radio resources. The default value is 500 ms. 317#p2p_search_delay=500 318 319# Opportunistic Key Caching (also known as Proactive Key Caching) default 320# This parameter can be used to set the default behavior for the 321# proactive_key_caching parameter. By default, OKC is disabled unless enabled 322# with the global okc=1 parameter or with the per-network 323# proactive_key_caching=1 parameter. With okc=1, OKC is enabled by default, but 324# can be disabled with per-network proactive_key_caching=0 parameter. 325#okc=0 326 327# Protected Management Frames default 328# This parameter can be used to set the default behavior for the ieee80211w 329# parameter. By default, PMF is disabled unless enabled with the global pmf=1/2 330# parameter or with the per-network ieee80211w=1/2 parameter. With pmf=1/2, PMF 331# is enabled/required by default, but can be disabled with the per-network 332# ieee80211w parameter. 333#pmf=0 334 335# Enabled SAE finite cyclic groups in preference order 336# By default (if this parameter is not set), the mandatory group 19 (ECC group 337# defined over a 256-bit prime order field) is preferred, but other groups are 338# also enabled. If this parameter is set, the groups will be tried in the 339# indicated order. The group values are listed in the IANA registry: 340# http://www.iana.org/assignments/ipsec-registry/ipsec-registry.xml#ipsec-registry-9 341#sae_groups=21 20 19 26 25 342 343# Default value for DTIM period (if not overridden in network block) 344#dtim_period=2 345 346# Default value for Beacon interval (if not overridden in network block) 347#beacon_int=100 348 349# Additional vendor specific elements for Beacon and Probe Response frames 350# This parameter can be used to add additional vendor specific element(s) into 351# the end of the Beacon and Probe Response frames. The format for these 352# element(s) is a hexdump of the raw information elements (id+len+payload for 353# one or more elements). This is used in AP and P2P GO modes. 354#ap_vendor_elements=dd0411223301 355 356# Ignore scan results older than request 357# 358# The driver may have a cache of scan results that makes it return 359# information that is older than our scan trigger. This parameter can 360# be used to configure such old information to be ignored instead of 361# allowing it to update the internal BSS table. 362#ignore_old_scan_res=0 363 364# scan_cur_freq: Whether to scan only the current frequency 365# 0: Scan all available frequencies. (Default) 366# 1: Scan current operating frequency if another VIF on the same radio 367# is already associated. 368 369# MAC address policy default 370# 0 = use permanent MAC address 371# 1 = use random MAC address for each ESS connection 372# 2 = like 1, but maintain OUI (with local admin bit set) 373# 374# By default, permanent MAC address is used unless policy is changed by 375# the per-network mac_addr parameter. Global mac_addr=1 can be used to 376# change this default behavior. 377#mac_addr=0 378 379# Lifetime of random MAC address in seconds (default: 60) 380#rand_addr_lifetime=60 381 382# MAC address policy for pre-association operations (scanning, ANQP) 383# 0 = use permanent MAC address 384# 1 = use random MAC address 385# 2 = like 1, but maintain OUI (with local admin bit set) 386#preassoc_mac_addr=0 387 388# Interworking (IEEE 802.11u) 389 390# Enable Interworking 391# interworking=1 392 393# Homogenous ESS identifier 394# If this is set, scans will be used to request response only from BSSes 395# belonging to the specified Homogeneous ESS. This is used only if interworking 396# is enabled. 397# hessid=00:11:22:33:44:55 398 399# Automatic network selection behavior 400# 0 = do not automatically go through Interworking network selection 401# (i.e., require explicit interworking_select command for this; default) 402# 1 = perform Interworking network selection if one or more 403# credentials have been configured and scan did not find a 404# matching network block 405#auto_interworking=0 406 407# credential block 408# 409# Each credential used for automatic network selection is configured as a set 410# of parameters that are compared to the information advertised by the APs when 411# interworking_select and interworking_connect commands are used. 412# 413# credential fields: 414# 415# temporary: Whether this credential is temporary and not to be saved 416# 417# priority: Priority group 418# By default, all networks and credentials get the same priority group 419# (0). This field can be used to give higher priority for credentials 420# (and similarly in struct wpa_ssid for network blocks) to change the 421# Interworking automatic networking selection behavior. The matching 422# network (based on either an enabled network block or a credential) 423# with the highest priority value will be selected. 424# 425# pcsc: Use PC/SC and SIM/USIM card 426# 427# realm: Home Realm for Interworking 428# 429# username: Username for Interworking network selection 430# 431# password: Password for Interworking network selection 432# 433# ca_cert: CA certificate for Interworking network selection 434# 435# client_cert: File path to client certificate file (PEM/DER) 436# This field is used with Interworking networking selection for a case 437# where client certificate/private key is used for authentication 438# (EAP-TLS). Full path to the file should be used since working 439# directory may change when wpa_supplicant is run in the background. 440# 441# Alternatively, a named configuration blob can be used by setting 442# this to blob://blob_name. 443# 444# private_key: File path to client private key file (PEM/DER/PFX) 445# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be 446# commented out. Both the private key and certificate will be read 447# from the PKCS#12 file in this case. Full path to the file should be 448# used since working directory may change when wpa_supplicant is run 449# in the background. 450# 451# Windows certificate store can be used by leaving client_cert out and 452# configuring private_key in one of the following formats: 453# 454# cert://substring_to_match 455# 456# hash://certificate_thumbprint_in_hex 457# 458# For example: private_key="hash://63093aa9c47f56ae88334c7b65a4" 459# 460# Note that when running wpa_supplicant as an application, the user 461# certificate store (My user account) is used, whereas computer store 462# (Computer account) is used when running wpasvc as a service. 463# 464# Alternatively, a named configuration blob can be used by setting 465# this to blob://blob_name. 466# 467# private_key_passwd: Password for private key file 468# 469# imsi: IMSI in <MCC> | <MNC> | '-' | <MSIN> format 470# 471# milenage: Milenage parameters for SIM/USIM simulator in <Ki>:<OPc>:<SQN> 472# format 473# 474# domain: Home service provider FQDN(s) 475# This is used to compare against the Domain Name List to figure out 476# whether the AP is operated by the Home SP. Multiple domain entries can 477# be used to configure alternative FQDNs that will be considered home 478# networks. 479# 480# roaming_consortium: Roaming Consortium OI 481# If roaming_consortium_len is non-zero, this field contains the 482# Roaming Consortium OI that can be used to determine which access 483# points support authentication with this credential. This is an 484# alternative to the use of the realm parameter. When using Roaming 485# Consortium to match the network, the EAP parameters need to be 486# pre-configured with the credential since the NAI Realm information 487# may not be available or fetched. 488# 489# eap: Pre-configured EAP method 490# This optional field can be used to specify which EAP method will be 491# used with this credential. If not set, the EAP method is selected 492# automatically based on ANQP information (e.g., NAI Realm). 493# 494# phase1: Pre-configure Phase 1 (outer authentication) parameters 495# This optional field is used with like the 'eap' parameter. 496# 497# phase2: Pre-configure Phase 2 (inner authentication) parameters 498# This optional field is used with like the 'eap' parameter. 499# 500# excluded_ssid: Excluded SSID 501# This optional field can be used to excluded specific SSID(s) from 502# matching with the network. Multiple entries can be used to specify more 503# than one SSID. 504# 505# roaming_partner: Roaming partner information 506# This optional field can be used to configure preferences between roaming 507# partners. The field is a string in following format: 508# <FQDN>,<0/1 exact match>,<priority>,<* or country code> 509# (non-exact match means any subdomain matches the entry; priority is in 510# 0..255 range with 0 being the highest priority) 511# 512# update_identifier: PPS MO ID 513# (Hotspot 2.0 PerProviderSubscription/UpdateIdentifier) 514# 515# provisioning_sp: FQDN of the SP that provisioned the credential 516# This optional field can be used to keep track of the SP that provisioned 517# the credential to find the PPS MO (./Wi-Fi/<provisioning_sp>). 518# 519# Minimum backhaul threshold (PPS/<X+>/Policy/MinBackhauldThreshold/*) 520# These fields can be used to specify minimum download/upload backhaul 521# bandwidth that is preferred for the credential. This constraint is 522# ignored if the AP does not advertise WAN Metrics information or if the 523# limit would prevent any connection. Values are in kilobits per second. 524# min_dl_bandwidth_home 525# min_ul_bandwidth_home 526# min_dl_bandwidth_roaming 527# min_ul_bandwidth_roaming 528# 529# max_bss_load: Maximum BSS Load Channel Utilization (1..255) 530# (PPS/<X+>/Policy/MaximumBSSLoadValue) 531# This value is used as the maximum channel utilization for network 532# selection purposes for home networks. If the AP does not advertise 533# BSS Load or if the limit would prevent any connection, this constraint 534# will be ignored. 535# 536# req_conn_capab: Required connection capability 537# (PPS/<X+>/Policy/RequiredProtoPortTuple) 538# This value is used to configure set of required protocol/port pairs that 539# a roaming network shall support (include explicitly in Connection 540# Capability ANQP element). This constraint is ignored if the AP does not 541# advertise Connection Capability or if this constraint would prevent any 542# network connection. This policy is not used in home networks. 543# Format: <protocol>[:<comma-separated list of ports] 544# Multiple entries can be used to list multiple requirements. 545# For example, number of common TCP protocols: 546# req_conn_capab=6,22,80,443 547# For example, IPSec/IKE: 548# req_conn_capab=17:500 549# req_conn_capab=50 550# 551# ocsp: Whether to use/require OCSP to check server certificate 552# 0 = do not use OCSP stapling (TLS certificate status extension) 553# 1 = try to use OCSP stapling, but not require response 554# 2 = require valid OCSP stapling response 555# 556# sim_num: Identifier for which SIM to use in multi-SIM devices 557# 558# for example: 559# 560#cred={ 561# realm="example.com" 562# username="user@example.com" 563# password="password" 564# ca_cert="/etc/wpa_supplicant/ca.pem" 565# domain="example.com" 566#} 567# 568#cred={ 569# imsi="310026-000000000" 570# milenage="90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82" 571#} 572# 573#cred={ 574# realm="example.com" 575# username="user" 576# password="password" 577# ca_cert="/etc/wpa_supplicant/ca.pem" 578# domain="example.com" 579# roaming_consortium=223344 580# eap=TTLS 581# phase2="auth=MSCHAPV2" 582#} 583 584# Hotspot 2.0 585# hs20=1 586 587# network block 588# 589# Each network (usually AP's sharing the same SSID) is configured as a separate 590# block in this configuration file. The network blocks are in preference order 591# (the first match is used). 592# 593# network block fields: 594# 595# disabled: 596# 0 = this network can be used (default) 597# 1 = this network block is disabled (can be enabled through ctrl_iface, 598# e.g., with wpa_cli or wpa_gui) 599# 600# id_str: Network identifier string for external scripts. This value is passed 601# to external action script through wpa_cli as WPA_ID_STR environment 602# variable to make it easier to do network specific configuration. 603# 604# ssid: SSID (mandatory); network name in one of the optional formats: 605# - an ASCII string with double quotation 606# - a hex string (two characters per octet of SSID) 607# - a printf-escaped ASCII string P"<escaped string>" 608# 609# scan_ssid: 610# 0 = do not scan this SSID with specific Probe Request frames (default) 611# 1 = scan with SSID-specific Probe Request frames (this can be used to 612# find APs that do not accept broadcast SSID or use multiple SSIDs; 613# this will add latency to scanning, so enable this only when needed) 614# 615# bssid: BSSID (optional); if set, this network block is used only when 616# associating with the AP using the configured BSSID 617# 618# priority: priority group (integer) 619# By default, all networks will get same priority group (0). If some of the 620# networks are more desirable, this field can be used to change the order in 621# which wpa_supplicant goes through the networks when selecting a BSS. The 622# priority groups will be iterated in decreasing priority (i.e., the larger the 623# priority value, the sooner the network is matched against the scan results). 624# Within each priority group, networks will be selected based on security 625# policy, signal strength, etc. 626# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not 627# using this priority to select the order for scanning. Instead, they try the 628# networks in the order that used in the configuration file. 629# 630# mode: IEEE 802.11 operation mode 631# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default) 632# 1 = IBSS (ad-hoc, peer-to-peer) 633# 2 = AP (access point) 634# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP) and 635# WPA-PSK (with proto=RSN). In addition, key_mgmt=WPA-NONE (fixed group key 636# TKIP/CCMP) is available for backwards compatibility, but its use is 637# deprecated. WPA-None requires following network block options: 638# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not 639# both), and psk must also be set. 640# 641# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g., 642# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial 643# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode. 644# In addition, this value is only used by the station that creates the IBSS. If 645# an IBSS network with the configured SSID is already present, the frequency of 646# the network will be used instead of this configured value. 647# 648# scan_freq: List of frequencies to scan 649# Space-separated list of frequencies in MHz to scan when searching for this 650# BSS. If the subset of channels used by the network is known, this option can 651# be used to optimize scanning to not occur on channels that the network does 652# not use. Example: scan_freq=2412 2437 2462 653# 654# freq_list: Array of allowed frequencies 655# Space-separated list of frequencies in MHz to allow for selecting the BSS. If 656# set, scan results that do not match any of the specified frequencies are not 657# considered when selecting a BSS. 658# 659# This can also be set on the outside of the network block. In this case, 660# it limits the frequencies that will be scanned. 661# 662# bgscan: Background scanning 663# wpa_supplicant behavior for background scanning can be specified by 664# configuring a bgscan module. These modules are responsible for requesting 665# background scans for the purpose of roaming within an ESS (i.e., within a 666# single network block with all the APs using the same SSID). The bgscan 667# parameter uses following format: "<bgscan module name>:<module parameters>" 668# Following bgscan modules are available: 669# simple - Periodic background scans based on signal strength 670# bgscan="simple:<short bgscan interval in seconds>:<signal strength threshold>: 671# <long interval>" 672# bgscan="simple:30:-45:300" 673# learn - Learn channels used by the network and try to avoid bgscans on other 674# channels (experimental) 675# bgscan="learn:<short bgscan interval in seconds>:<signal strength threshold>: 676# <long interval>[:<database file name>]" 677# bgscan="learn:30:-45:300:/etc/wpa_supplicant/network1.bgscan" 678# Explicitly disable bgscan by setting 679# bgscan="" 680# 681# This option can also be set outside of all network blocks for the bgscan 682# parameter to apply for all the networks that have no specific bgscan 683# parameter. 684# 685# proto: list of accepted protocols 686# WPA = WPA/IEEE 802.11i/D3.0 687# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN) 688# If not set, this defaults to: WPA RSN 689# 690# key_mgmt: list of accepted authenticated key management protocols 691# WPA-PSK = WPA pre-shared key (this requires 'psk' field) 692# WPA-EAP = WPA using EAP authentication 693# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically 694# generated WEP keys 695# NONE = WPA is not used; plaintext or static WEP could be used 696# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms 697# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms 698# If not set, this defaults to: WPA-PSK WPA-EAP 699# 700# ieee80211w: whether management frame protection is enabled 701# 0 = disabled (default unless changed with the global pmf parameter) 702# 1 = optional 703# 2 = required 704# The most common configuration options for this based on the PMF (protected 705# management frames) certification program are: 706# PMF enabled: ieee80211w=1 and key_mgmt=WPA-EAP WPA-EAP-SHA256 707# PMF required: ieee80211w=2 and key_mgmt=WPA-EAP-SHA256 708# (and similarly for WPA-PSK and WPA-WPSK-SHA256 if WPA2-Personal is used) 709# 710# auth_alg: list of allowed IEEE 802.11 authentication algorithms 711# OPEN = Open System authentication (required for WPA/WPA2) 712# SHARED = Shared Key authentication (requires static WEP keys) 713# LEAP = LEAP/Network EAP (only used with LEAP) 714# If not set, automatic selection is used (Open System with LEAP enabled if 715# LEAP is allowed as one of the EAP methods). 716# 717# pairwise: list of accepted pairwise (unicast) ciphers for WPA 718# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] 719# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] 720# NONE = Use only Group Keys (deprecated, should not be included if APs support 721# pairwise keys) 722# If not set, this defaults to: CCMP TKIP 723# 724# group: list of accepted group (broadcast/multicast) ciphers for WPA 725# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] 726# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] 727# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key 728# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11] 729# If not set, this defaults to: CCMP TKIP WEP104 WEP40 730# 731# psk: WPA preshared key; 256-bit pre-shared key 732# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e., 733# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be 734# generated using the passphrase and SSID). ASCII passphrase must be between 735# 8 and 63 characters (inclusive). ext:<name of external PSK field> format can 736# be used to indicate that the PSK/passphrase is stored in external storage. 737# This field is not needed, if WPA-EAP is used. 738# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys 739# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant 740# startup and reconfiguration time can be optimized by generating the PSK only 741# only when the passphrase or SSID has actually changed. 742# 743# eapol_flags: IEEE 802.1X/EAPOL options (bit field) 744# Dynamic WEP key required for non-WPA mode 745# bit0 (1): require dynamically generated unicast WEP key 746# bit1 (2): require dynamically generated broadcast WEP key 747# (3 = require both keys; default) 748# Note: When using wired authentication (including macsec_qca driver), 749# eapol_flags must be set to 0 for the authentication to be completed 750# successfully. 751# 752# macsec_policy: IEEE 802.1X/MACsec options 753# This determines how sessions are secured with MACsec. It is currently 754# applicable only when using the macsec_qca driver interface. 755# 0: MACsec not in use (default) 756# 1: MACsec enabled - Should secure, accept key server's advice to 757# determine whether to use a secure session or not. 758# 759# mixed_cell: This option can be used to configure whether so called mixed 760# cells, i.e., networks that use both plaintext and encryption in the same 761# SSID, are allowed when selecting a BSS from scan results. 762# 0 = disabled (default) 763# 1 = enabled 764# 765# proactive_key_caching: 766# Enable/disable opportunistic PMKSA caching for WPA2. 767# 0 = disabled (default unless changed with the global okc parameter) 768# 1 = enabled 769# 770# wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or 771# hex without quotation, e.g., 0102030405) 772# wep_tx_keyidx: Default WEP key index (TX) (0..3) 773# 774# peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is 775# allowed. This is only used with RSN/WPA2. 776# 0 = disabled (default) 777# 1 = enabled 778#peerkey=1 779# 780# wpa_ptk_rekey: Maximum lifetime for PTK in seconds. This can be used to 781# enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies. 782# 783# Following fields are only used with internal EAP implementation. 784# eap: space-separated list of accepted EAP methods 785# MD5 = EAP-MD5 (unsecure and does not generate keying material -> 786# cannot be used with WPA; to be used as a Phase 2 method 787# with EAP-PEAP or EAP-TTLS) 788# MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used 789# as a Phase 2 method with EAP-PEAP or EAP-TTLS) 790# OTP = EAP-OTP (cannot be used separately with WPA; to be used 791# as a Phase 2 method with EAP-PEAP or EAP-TTLS) 792# GTC = EAP-GTC (cannot be used separately with WPA; to be used 793# as a Phase 2 method with EAP-PEAP or EAP-TTLS) 794# TLS = EAP-TLS (client and server certificate) 795# PEAP = EAP-PEAP (with tunnelled EAP authentication) 796# TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2 797# authentication) 798# If not set, all compiled in methods are allowed. 799# 800# identity: Identity string for EAP 801# This field is also used to configure user NAI for 802# EAP-PSK/PAX/SAKE/GPSK. 803# anonymous_identity: Anonymous identity string for EAP (to be used as the 804# unencrypted identity with EAP types that support different tunnelled 805# identity, e.g., EAP-TTLS). This field can also be used with 806# EAP-SIM/AKA/AKA' to store the pseudonym identity. 807# password: Password string for EAP. This field can include either the 808# plaintext password (using ASCII or hex string) or a NtPasswordHash 809# (16-byte MD4 hash of password) in hash:<32 hex digits> format. 810# NtPasswordHash can only be used when the password is for MSCHAPv2 or 811# MSCHAP (EAP-MSCHAPv2, EAP-TTLS/MSCHAPv2, EAP-TTLS/MSCHAP, LEAP). 812# EAP-PSK (128-bit PSK), EAP-PAX (128-bit PSK), and EAP-SAKE (256-bit 813# PSK) is also configured using this field. For EAP-GPSK, this is a 814# variable length PSK. ext:<name of external password field> format can 815# be used to indicate that the password is stored in external storage. 816# ca_cert: File path to CA certificate file (PEM/DER). This file can have one 817# or more trusted CA certificates. If ca_cert and ca_path are not 818# included, server certificate will not be verified. This is insecure and 819# a trusted CA certificate should always be configured when using 820# EAP-TLS/TTLS/PEAP. Full path should be used since working directory may 821# change when wpa_supplicant is run in the background. 822# 823# Alternatively, this can be used to only perform matching of the server 824# certificate (SHA-256 hash of the DER encoded X.509 certificate). In 825# this case, the possible CA certificates in the server certificate chain 826# are ignored and only the server certificate is verified. This is 827# configured with the following format: 828# hash:://server/sha256/cert_hash_in_hex 829# For example: "hash://server/sha256/ 830# 5a1bc1296205e6fdbe3979728efe3920798885c1c4590b5f90f43222d239ca6a" 831# 832# On Windows, trusted CA certificates can be loaded from the system 833# certificate store by setting this to cert_store://<name>, e.g., 834# ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT". 835# Note that when running wpa_supplicant as an application, the user 836# certificate store (My user account) is used, whereas computer store 837# (Computer account) is used when running wpasvc as a service. 838# ca_path: Directory path for CA certificate files (PEM). This path may 839# contain multiple CA certificates in OpenSSL format. Common use for this 840# is to point to system trusted CA list which is often installed into 841# directory like /etc/ssl/certs. If configured, these certificates are 842# added to the list of trusted CAs. ca_cert may also be included in that 843# case, but it is not required. 844# client_cert: File path to client certificate file (PEM/DER) 845# Full path should be used since working directory may change when 846# wpa_supplicant is run in the background. 847# Alternatively, a named configuration blob can be used by setting this 848# to blob://<blob name>. 849# private_key: File path to client private key file (PEM/DER/PFX) 850# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be 851# commented out. Both the private key and certificate will be read from 852# the PKCS#12 file in this case. Full path should be used since working 853# directory may change when wpa_supplicant is run in the background. 854# Windows certificate store can be used by leaving client_cert out and 855# configuring private_key in one of the following formats: 856# cert://substring_to_match 857# hash://certificate_thumbprint_in_hex 858# for example: private_key="hash://63093aa9c47f56ae88334c7b65a4" 859# Note that when running wpa_supplicant as an application, the user 860# certificate store (My user account) is used, whereas computer store 861# (Computer account) is used when running wpasvc as a service. 862# Alternatively, a named configuration blob can be used by setting this 863# to blob://<blob name>. 864# private_key_passwd: Password for private key file (if left out, this will be 865# asked through control interface) 866# dh_file: File path to DH/DSA parameters file (in PEM format) 867# This is an optional configuration file for setting parameters for an 868# ephemeral DH key exchange. In most cases, the default RSA 869# authentication does not use this configuration. However, it is possible 870# setup RSA to use ephemeral DH key exchange. In addition, ciphers with 871# DSA keys always use ephemeral DH keys. This can be used to achieve 872# forward secrecy. If the file is in DSA parameters format, it will be 873# automatically converted into DH params. 874# subject_match: Substring to be matched against the subject of the 875# authentication server certificate. If this string is set, the server 876# sertificate is only accepted if it contains this string in the subject. 877# The subject string is in following format: 878# /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com 879# Note: Since this is a substring match, this cannot be used securily to 880# do a suffix match against a possible domain name in the CN entry. For 881# such a use case, domain_suffix_match or domain_match should be used 882# instead. 883# altsubject_match: Semicolon separated string of entries to be matched against 884# the alternative subject name of the authentication server certificate. 885# If this string is set, the server sertificate is only accepted if it 886# contains one of the entries in an alternative subject name extension. 887# altSubjectName string is in following format: TYPE:VALUE 888# Example: EMAIL:server@example.com 889# Example: DNS:server.example.com;DNS:server2.example.com 890# Following types are supported: EMAIL, DNS, URI 891# domain_suffix_match: Constraint for server domain name. If set, this FQDN is 892# used as a suffix match requirement for the AAAserver certificate in 893# SubjectAltName dNSName element(s). If a matching dNSName is found, this 894# constraint is met. If no dNSName values are present, this constraint is 895# matched against SubjectName CN using same suffix match comparison. 896# 897# Suffix match here means that the host/domain name is compared one label 898# at a time starting from the top-level domain and all the labels in 899# domain_suffix_match shall be included in the certificate. The 900# certificate may include additional sub-level labels in addition to the 901# required labels. 902# 903# For example, domain_suffix_match=example.com would match 904# test.example.com but would not match test-example.com. 905# domain_match: Constraint for server domain name 906# If set, this FQDN is used as a full match requirement for the 907# server certificate in SubjectAltName dNSName element(s). If a 908# matching dNSName is found, this constraint is met. If no dNSName 909# values are present, this constraint is matched against SubjectName CN 910# using same full match comparison. This behavior is similar to 911# domain_suffix_match, but has the requirement of a full match, i.e., 912# no subdomains or wildcard matches are allowed. Case-insensitive 913# comparison is used, so "Example.com" matches "example.com", but would 914# not match "test.Example.com". 915# phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters 916# (string with field-value pairs, e.g., "peapver=0" or 917# "peapver=1 peaplabel=1") 918# 'peapver' can be used to force which PEAP version (0 or 1) is used. 919# 'peaplabel=1' can be used to force new label, "client PEAP encryption", 920# to be used during key derivation when PEAPv1 or newer. Most existing 921# PEAPv1 implementation seem to be using the old label, "client EAP 922# encryption", and wpa_supplicant is now using that as the default value. 923# Some servers, e.g., Radiator, may require peaplabel=1 configuration to 924# interoperate with PEAPv1; see eap_testing.txt for more details. 925# 'peap_outer_success=0' can be used to terminate PEAP authentication on 926# tunneled EAP-Success. This is required with some RADIUS servers that 927# implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g., 928# Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode) 929# include_tls_length=1 can be used to force wpa_supplicant to include 930# TLS Message Length field in all TLS messages even if they are not 931# fragmented. 932# sim_min_num_chal=3 can be used to configure EAP-SIM to require three 933# challenges (by default, it accepts 2 or 3) 934# result_ind=1 can be used to enable EAP-SIM and EAP-AKA to use 935# protected result indication. 936# 'crypto_binding' option can be used to control PEAPv0 cryptobinding 937# behavior: 938# * 0 = do not use cryptobinding (default) 939# * 1 = use cryptobinding if server supports it 940# * 2 = require cryptobinding 941# EAP-WSC (WPS) uses following options: pin=<Device Password> or 942# pbc=1. 943# 944# For wired IEEE 802.1X authentication, "allow_canned_success=1" can be 945# used to configure a mode that allows EAP-Success (and EAP-Failure) 946# without going through authentication step. Some switches use such 947# sequence when forcing the port to be authorized/unauthorized or as a 948# fallback option if the authentication server is unreachable. By default, 949# wpa_supplicant discards such frames to protect against potential attacks 950# by rogue devices, but this option can be used to disable that protection 951# for cases where the server/authenticator does not need to be 952# authenticated. 953# phase2: Phase2 (inner authentication with TLS tunnel) parameters 954# (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or 955# "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS). "mschapv2_retry=0" can be 956# used to disable MSCHAPv2 password retry in authentication failure cases. 957# 958# TLS-based methods can use the following parameters to control TLS behavior 959# (these are normally in the phase1 parameter, but can be used also in the 960# phase2 parameter when EAP-TLS is used within the inner tunnel): 961# tls_allow_md5=1 - allow MD5-based certificate signatures (depending on the 962# TLS library, these may be disabled by default to enforce stronger 963# security) 964# tls_disable_time_checks=1 - ignore certificate validity time (this requests 965# the TLS library to accept certificates even if they are not currently 966# valid, i.e., have expired or have not yet become valid; this should be 967# used only for testing purposes) 968# tls_disable_session_ticket=1 - disable TLS Session Ticket extension 969# tls_disable_session_ticket=0 - allow TLS Session Ticket extension to be used 970# Note: If not set, this is automatically set to 1 for EAP-TLS/PEAP/TTLS 971# as a workaround for broken authentication server implementations unless 972# EAP workarounds are disabled with eap_workarounds=0. 973# For EAP-FAST, this must be set to 0 (or left unconfigured for the 974# default value to be used automatically). 975# tls_disable_tlsv1_1=1 - disable use of TLSv1.1 (a workaround for AAA servers 976# that have issues interoperating with updated TLS version) 977# tls_disable_tlsv1_2=1 - disable use of TLSv1.2 (a workaround for AAA servers 978# that have issues interoperating with updated TLS version) 979# 980# Following certificate/private key fields are used in inner Phase2 981# authentication when using EAP-TTLS or EAP-PEAP. 982# ca_cert2: File path to CA certificate file. This file can have one or more 983# trusted CA certificates. If ca_cert2 and ca_path2 are not included, 984# server certificate will not be verified. This is insecure and a trusted 985# CA certificate should always be configured. 986# ca_path2: Directory path for CA certificate files (PEM) 987# client_cert2: File path to client certificate file 988# private_key2: File path to client private key file 989# private_key2_passwd: Password for private key file 990# dh_file2: File path to DH/DSA parameters file (in PEM format) 991# subject_match2: Substring to be matched against the subject of the 992# authentication server certificate. See subject_match for more details. 993# altsubject_match2: Semicolon separated string of entries to be matched 994# against the alternative subject name of the authentication server 995# certificate. See altsubject_match documentation for more details. 996# domain_suffix_match2: Constraint for server domain name. See 997# domain_suffix_match for more details. 998# 999# fragment_size: Maximum EAP fragment size in bytes (default 1398). 1000# This value limits the fragment size for EAP methods that support 1001# fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set 1002# small enough to make the EAP messages fit in MTU of the network 1003# interface used for EAPOL. The default value is suitable for most 1004# cases. 1005# 1006# ocsp: Whether to use/require OCSP to check server certificate 1007# 0 = do not use OCSP stapling (TLS certificate status extension) 1008# 1 = try to use OCSP stapling, but not require response 1009# 2 = require valid OCSP stapling response 1010# 1011# openssl_ciphers: OpenSSL specific cipher configuration 1012# This can be used to override the global openssl_ciphers configuration 1013# parameter (see above). 1014# 1015# erp: Whether EAP Re-authentication Protocol (ERP) is enabled 1016# 1017# EAP-FAST variables: 1018# pac_file: File path for the PAC entries. wpa_supplicant will need to be able 1019# to create this file and write updates to it when PAC is being 1020# provisioned or refreshed. Full path to the file should be used since 1021# working directory may change when wpa_supplicant is run in the 1022# background. Alternatively, a named configuration blob can be used by 1023# setting this to blob://<blob name> 1024# phase1: fast_provisioning option can be used to enable in-line provisioning 1025# of EAP-FAST credentials (PAC): 1026# 0 = disabled, 1027# 1 = allow unauthenticated provisioning, 1028# 2 = allow authenticated provisioning, 1029# 3 = allow both unauthenticated and authenticated provisioning 1030# fast_max_pac_list_len=<num> option can be used to set the maximum 1031# number of PAC entries to store in a PAC list (default: 10) 1032# fast_pac_format=binary option can be used to select binary format for 1033# storing PAC entries in order to save some space (the default 1034# text format uses about 2.5 times the size of minimal binary 1035# format) 1036# 1037# wpa_supplicant supports number of "EAP workarounds" to work around 1038# interoperability issues with incorrectly behaving authentication servers. 1039# These are enabled by default because some of the issues are present in large 1040# number of authentication servers. Strict EAP conformance mode can be 1041# configured by disabling workarounds with eap_workaround=0. 1042 1043# Station inactivity limit 1044# 1045# If a station does not send anything in ap_max_inactivity seconds, an 1046# empty data frame is sent to it in order to verify whether it is 1047# still in range. If this frame is not ACKed, the station will be 1048# disassociated and then deauthenticated. This feature is used to 1049# clear station table of old entries when the STAs move out of the 1050# range. 1051# 1052# The station can associate again with the AP if it is still in range; 1053# this inactivity poll is just used as a nicer way of verifying 1054# inactivity; i.e., client will not report broken connection because 1055# disassociation frame is not sent immediately without first polling 1056# the STA with a data frame. 1057# default: 300 (i.e., 5 minutes) 1058#ap_max_inactivity=300 1059 1060# DTIM period in Beacon intervals for AP mode (default: 2) 1061#dtim_period=2 1062 1063# Beacon interval (default: 100 TU) 1064#beacon_int=100 1065 1066# MAC address policy 1067# 0 = use permanent MAC address 1068# 1 = use random MAC address for each ESS connection 1069# 2 = like 1, but maintain OUI (with local admin bit set) 1070#mac_addr=0 1071 1072# disable_ht: Whether HT (802.11n) should be disabled. 1073# 0 = HT enabled (if AP supports it) 1074# 1 = HT disabled 1075# 1076# disable_ht40: Whether HT-40 (802.11n) should be disabled. 1077# 0 = HT-40 enabled (if AP supports it) 1078# 1 = HT-40 disabled 1079# 1080# disable_sgi: Whether SGI (short guard interval) should be disabled. 1081# 0 = SGI enabled (if AP supports it) 1082# 1 = SGI disabled 1083# 1084# disable_ldpc: Whether LDPC should be disabled. 1085# 0 = LDPC enabled (if AP supports it) 1086# 1 = LDPC disabled 1087# 1088# ht40_intolerant: Whether 40 MHz intolerant should be indicated. 1089# 0 = 40 MHz tolerant (default) 1090# 1 = 40 MHz intolerant 1091# 1092# ht_mcs: Configure allowed MCS rates. 1093# Parsed as an array of bytes, in base-16 (ascii-hex) 1094# ht_mcs="" // Use all available (default) 1095# ht_mcs="0xff 00 00 00 00 00 00 00 00 00 " // Use MCS 0-7 only 1096# ht_mcs="0xff ff 00 00 00 00 00 00 00 00 " // Use MCS 0-15 only 1097# 1098# disable_max_amsdu: Whether MAX_AMSDU should be disabled. 1099# -1 = Do not make any changes. 1100# 0 = Enable MAX-AMSDU if hardware supports it. 1101# 1 = Disable AMSDU 1102# 1103# ampdu_factor: Maximum A-MPDU Length Exponent 1104# Value: 0-3, see 7.3.2.56.3 in IEEE Std 802.11n-2009. 1105# 1106# ampdu_density: Allow overriding AMPDU density configuration. 1107# Treated as hint by the kernel. 1108# -1 = Do not make any changes. 1109# 0-3 = Set AMPDU density (aka factor) to specified value. 1110 1111# disable_vht: Whether VHT should be disabled. 1112# 0 = VHT enabled (if AP supports it) 1113# 1 = VHT disabled 1114# 1115# vht_capa: VHT capabilities to set in the override 1116# vht_capa_mask: mask of VHT capabilities 1117# 1118# vht_rx_mcs_nss_1/2/3/4/5/6/7/8: override the MCS set for RX NSS 1-8 1119# vht_tx_mcs_nss_1/2/3/4/5/6/7/8: override the MCS set for TX NSS 1-8 1120# 0: MCS 0-7 1121# 1: MCS 0-8 1122# 2: MCS 0-9 1123# 3: not supported 1124 1125# Example blocks: 1126 1127# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers 1128network={ 1129 ssid="simple" 1130 psk="very secret passphrase" 1131 priority=5 1132} 1133 1134# Same as previous, but request SSID-specific scanning (for APs that reject 1135# broadcast SSID) 1136network={ 1137 ssid="second ssid" 1138 scan_ssid=1 1139 psk="very secret passphrase" 1140 priority=2 1141} 1142 1143# Only WPA-PSK is used. Any valid cipher combination is accepted. 1144network={ 1145 ssid="example" 1146 proto=WPA 1147 key_mgmt=WPA-PSK 1148 pairwise=CCMP TKIP 1149 group=CCMP TKIP WEP104 WEP40 1150 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb 1151 priority=2 1152} 1153 1154# WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying 1155network={ 1156 ssid="example" 1157 proto=WPA 1158 key_mgmt=WPA-PSK 1159 pairwise=TKIP 1160 group=TKIP 1161 psk="not so secure passphrase" 1162 wpa_ptk_rekey=600 1163} 1164 1165# Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104 1166# or WEP40 as the group cipher will not be accepted. 1167network={ 1168 ssid="example" 1169 proto=RSN 1170 key_mgmt=WPA-EAP 1171 pairwise=CCMP TKIP 1172 group=CCMP TKIP 1173 eap=TLS 1174 identity="user@example.com" 1175 ca_cert="/etc/cert/ca.pem" 1176 client_cert="/etc/cert/user.pem" 1177 private_key="/etc/cert/user.prv" 1178 private_key_passwd="password" 1179 priority=1 1180} 1181 1182# EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel 1183# (e.g., Radiator) 1184network={ 1185 ssid="example" 1186 key_mgmt=WPA-EAP 1187 eap=PEAP 1188 identity="user@example.com" 1189 password="foobar" 1190 ca_cert="/etc/cert/ca.pem" 1191 phase1="peaplabel=1" 1192 phase2="auth=MSCHAPV2" 1193 priority=10 1194} 1195 1196# EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the 1197# unencrypted use. Real identity is sent only within an encrypted TLS tunnel. 1198network={ 1199 ssid="example" 1200 key_mgmt=WPA-EAP 1201 eap=TTLS 1202 identity="user@example.com" 1203 anonymous_identity="anonymous@example.com" 1204 password="foobar" 1205 ca_cert="/etc/cert/ca.pem" 1206 priority=2 1207} 1208 1209# EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted 1210# use. Real identity is sent only within an encrypted TLS tunnel. 1211network={ 1212 ssid="example" 1213 key_mgmt=WPA-EAP 1214 eap=TTLS 1215 identity="user@example.com" 1216 anonymous_identity="anonymous@example.com" 1217 password="foobar" 1218 ca_cert="/etc/cert/ca.pem" 1219 phase2="auth=MSCHAPV2" 1220} 1221 1222# WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner 1223# authentication. 1224network={ 1225 ssid="example" 1226 key_mgmt=WPA-EAP 1227 eap=TTLS 1228 # Phase1 / outer authentication 1229 anonymous_identity="anonymous@example.com" 1230 ca_cert="/etc/cert/ca.pem" 1231 # Phase 2 / inner authentication 1232 phase2="autheap=TLS" 1233 ca_cert2="/etc/cert/ca2.pem" 1234 client_cert2="/etc/cer/user.pem" 1235 private_key2="/etc/cer/user.prv" 1236 private_key2_passwd="password" 1237 priority=2 1238} 1239 1240# Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and 1241# group cipher. 1242network={ 1243 ssid="example" 1244 bssid=00:11:22:33:44:55 1245 proto=WPA RSN 1246 key_mgmt=WPA-PSK WPA-EAP 1247 pairwise=CCMP 1248 group=CCMP 1249 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb 1250} 1251 1252# Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP 1253# and all valid ciphers. 1254network={ 1255 ssid=00010203 1256 psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 1257} 1258 1259 1260# EAP-SIM with a GSM SIM or USIM 1261network={ 1262 ssid="eap-sim-test" 1263 key_mgmt=WPA-EAP 1264 eap=SIM 1265 pin="1234" 1266 pcsc="" 1267} 1268 1269 1270# EAP-PSK 1271network={ 1272 ssid="eap-psk-test" 1273 key_mgmt=WPA-EAP 1274 eap=PSK 1275 anonymous_identity="eap_psk_user" 1276 password=06b4be19da289f475aa46a33cb793029 1277 identity="eap_psk_user@example.com" 1278} 1279 1280 1281# IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using 1282# EAP-TLS for authentication and key generation; require both unicast and 1283# broadcast WEP keys. 1284network={ 1285 ssid="1x-test" 1286 key_mgmt=IEEE8021X 1287 eap=TLS 1288 identity="user@example.com" 1289 ca_cert="/etc/cert/ca.pem" 1290 client_cert="/etc/cert/user.pem" 1291 private_key="/etc/cert/user.prv" 1292 private_key_passwd="password" 1293 eapol_flags=3 1294} 1295 1296 1297# LEAP with dynamic WEP keys 1298network={ 1299 ssid="leap-example" 1300 key_mgmt=IEEE8021X 1301 eap=LEAP 1302 identity="user" 1303 password="foobar" 1304} 1305 1306# EAP-IKEv2 using shared secrets for both server and peer authentication 1307network={ 1308 ssid="ikev2-example" 1309 key_mgmt=WPA-EAP 1310 eap=IKEV2 1311 identity="user" 1312 password="foobar" 1313} 1314 1315# EAP-FAST with WPA (WPA or WPA2) 1316network={ 1317 ssid="eap-fast-test" 1318 key_mgmt=WPA-EAP 1319 eap=FAST 1320 anonymous_identity="FAST-000102030405" 1321 identity="username" 1322 password="password" 1323 phase1="fast_provisioning=1" 1324 pac_file="/etc/wpa_supplicant.eap-fast-pac" 1325} 1326 1327network={ 1328 ssid="eap-fast-test" 1329 key_mgmt=WPA-EAP 1330 eap=FAST 1331 anonymous_identity="FAST-000102030405" 1332 identity="username" 1333 password="password" 1334 phase1="fast_provisioning=1" 1335 pac_file="blob://eap-fast-pac" 1336} 1337 1338# Plaintext connection (no WPA, no IEEE 802.1X) 1339network={ 1340 ssid="plaintext-test" 1341 key_mgmt=NONE 1342} 1343 1344 1345# Shared WEP key connection (no WPA, no IEEE 802.1X) 1346network={ 1347 ssid="static-wep-test" 1348 key_mgmt=NONE 1349 wep_key0="abcde" 1350 wep_key1=0102030405 1351 wep_key2="1234567890123" 1352 wep_tx_keyidx=0 1353 priority=5 1354} 1355 1356 1357# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key 1358# IEEE 802.11 authentication 1359network={ 1360 ssid="static-wep-test2" 1361 key_mgmt=NONE 1362 wep_key0="abcde" 1363 wep_key1=0102030405 1364 wep_key2="1234567890123" 1365 wep_tx_keyidx=0 1366 priority=5 1367 auth_alg=SHARED 1368} 1369 1370 1371# IBSS/ad-hoc network with RSN 1372network={ 1373 ssid="ibss-rsn" 1374 key_mgmt=WPA-PSK 1375 proto=RSN 1376 psk="12345678" 1377 mode=1 1378 frequency=2412 1379 pairwise=CCMP 1380 group=CCMP 1381} 1382 1383# IBSS/ad-hoc network with WPA-None/TKIP (deprecated) 1384network={ 1385 ssid="test adhoc" 1386 mode=1 1387 frequency=2412 1388 proto=WPA 1389 key_mgmt=WPA-NONE 1390 pairwise=NONE 1391 group=TKIP 1392 psk="secret passphrase" 1393} 1394 1395# open mesh network 1396network={ 1397 ssid="test mesh" 1398 mode=5 1399 frequency=2437 1400 key_mgmt=NONE 1401} 1402 1403# secure (SAE + AMPE) network 1404network={ 1405 ssid="secure mesh" 1406 mode=5 1407 frequency=2437 1408 key_mgmt=SAE 1409 psk="very secret passphrase" 1410} 1411 1412 1413# Catch all example that allows more or less all configuration modes 1414network={ 1415 ssid="example" 1416 scan_ssid=1 1417 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE 1418 pairwise=CCMP TKIP 1419 group=CCMP TKIP WEP104 WEP40 1420 psk="very secret passphrase" 1421 eap=TTLS PEAP TLS 1422 identity="user@example.com" 1423 password="foobar" 1424 ca_cert="/etc/cert/ca.pem" 1425 client_cert="/etc/cert/user.pem" 1426 private_key="/etc/cert/user.prv" 1427 private_key_passwd="password" 1428 phase1="peaplabel=0" 1429} 1430 1431# Example of EAP-TLS with smartcard (openssl engine) 1432network={ 1433 ssid="example" 1434 key_mgmt=WPA-EAP 1435 eap=TLS 1436 proto=RSN 1437 pairwise=CCMP TKIP 1438 group=CCMP TKIP 1439 identity="user@example.com" 1440 ca_cert="/etc/cert/ca.pem" 1441 client_cert="/etc/cert/user.pem" 1442 1443 engine=1 1444 1445 # The engine configured here must be available. Look at 1446 # OpenSSL engine support in the global section. 1447 # The key available through the engine must be the private key 1448 # matching the client certificate configured above. 1449 1450 # use the opensc engine 1451 #engine_id="opensc" 1452 #key_id="45" 1453 1454 # use the pkcs11 engine 1455 engine_id="pkcs11" 1456 key_id="id_45" 1457 1458 # Optional PIN configuration; this can be left out and PIN will be 1459 # asked through the control interface 1460 pin="1234" 1461} 1462 1463# Example configuration showing how to use an inlined blob as a CA certificate 1464# data instead of using external file 1465network={ 1466 ssid="example" 1467 key_mgmt=WPA-EAP 1468 eap=TTLS 1469 identity="user@example.com" 1470 anonymous_identity="anonymous@example.com" 1471 password="foobar" 1472 ca_cert="blob://exampleblob" 1473 priority=20 1474} 1475 1476blob-base64-exampleblob={ 1477SGVsbG8gV29ybGQhCg== 1478} 1479 1480 1481# Wildcard match for SSID (plaintext APs only). This example select any 1482# open AP regardless of its SSID. 1483network={ 1484 key_mgmt=NONE 1485} 1486 1487# Example configuration blacklisting two APs - these will be ignored 1488# for this network. 1489network={ 1490 ssid="example" 1491 psk="very secret passphrase" 1492 bssid_blacklist=02:11:22:33:44:55 02:22:aa:44:55:66 1493} 1494 1495# Example configuration limiting AP selection to a specific set of APs; 1496# any other AP not matching the masked address will be ignored. 1497network={ 1498 ssid="example" 1499 psk="very secret passphrase" 1500 bssid_whitelist=02:55:ae:bc:00:00/ff:ff:ff:ff:00:00 00:00:77:66:55:44/00:00:ff:ff:ff:ff 1501} 1502 1503# Example config file that will only scan on channel 36. 1504freq_list=5180 1505network={ 1506 key_mgmt=NONE 1507} 1508 1509 1510# Example MACsec configuration 1511#network={ 1512# key_mgmt=IEEE8021X 1513# eap=TTLS 1514# phase2="auth=PAP" 1515# anonymous_identity="anonymous@example.com" 1516# identity="user@example.com" 1517# password="secretr" 1518# ca_cert="/etc/cert/ca.pem" 1519# eapol_flags=0 1520# macsec_policy=1 1521#} 1522