]> git.ipfire.org Git - thirdparty/hostap.git/blame - wpa_supplicant/wpa_supplicant.conf
Disable TLS Session Ticket extension by default for EAP-TLS/PEAP/TTLS
[thirdparty/hostap.git] / wpa_supplicant / wpa_supplicant.conf
CommitLineData
6fc6879b
JM
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
ffbf1eaa 31# interface mechanism is used. For all cases, the existence of this parameter
6fc6879b
JM
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).
84eapol_version=1
85
86# AP scanning/selection
87# By default, wpa_supplicant requests driver to perform AP scanning and then
88# uses the scan results to select a suitable AP. Another alternative is to
89# allow the driver to take care of AP scanning and selection and use
90# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association
91# information from the driver.
b55aaa5f
JM
92# 1: wpa_supplicant initiates scanning and AP selection; if no APs matching to
93# the currently enabled networks are found, a new network (IBSS or AP mode
94# operation) may be initialized (if configured) (default)
6fc6879b
JM
95# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association
96# parameters (e.g., WPA IE generation); this mode can also be used with
97# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with
98# APs (i.e., external program needs to control association). This mode must
99# also be used when using wired Ethernet drivers.
100# 2: like 0, but associate with APs using security policy and SSID (but not
101# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to
102# enable operation with hidden SSIDs and optimized roaming; in this mode,
103# the network blocks in the configuration file are tried one by one until
104# the driver reports successful association; each network block should have
105# explicit security policy (i.e., only one option in the lists) for
106# key_mgmt, pairwise, group, proto variables
b55aaa5f
JM
107# When using IBSS or AP mode, ap_scan=2 mode can force the new network to be
108# created immediately regardless of scan results. ap_scan=1 mode will first try
109# to scan for existing networks and only if no matches with the enabled
110# networks are found, a new IBSS or AP mode network is created.
6fc6879b
JM
111ap_scan=1
112
113# EAP fast re-authentication
114# By default, fast re-authentication is enabled for all EAP methods that
115# support it. This variable can be used to disable fast re-authentication.
116# Normally, there is no need to disable this.
117fast_reauth=1
118
119# OpenSSL Engine support
120# These options can be used to load OpenSSL engines.
121# The two engines that are supported currently are shown below:
122# They are both from the opensc project (http://www.opensc.org/)
123# By default no engines are loaded.
124# make the opensc engine available
125#opensc_engine_path=/usr/lib/opensc/engine_opensc.so
126# make the pkcs11 engine available
127#pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so
128# configure the path to the pkcs11 module required by the pkcs11 engine
129#pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so
130
131# Dynamic EAP methods
132# If EAP methods were built dynamically as shared object files, they need to be
133# loaded here before being used in the network blocks. By default, EAP methods
134# are included statically in the build, so these lines are not needed
135#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so
136#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so
137
138# Driver interface parameters
139# This field can be used to configure arbitrary driver interace parameters. The
140# format is specific to the selected driver interface. This field is not used
141# in most cases.
142#driver_param="field=value"
143
814e925d
JM
144# Country code
145# The ISO/IEC alpha2 country code for the country in which this device is
146# currently operating.
147#country=US
148
6fc6879b
JM
149# Maximum lifetime for PMKSA in seconds; default 43200
150#dot11RSNAConfigPMKLifetime=43200
151# Threshold for reauthentication (percentage of PMK lifetime); default 70
152#dot11RSNAConfigPMKReauthThreshold=70
153# Timeout for security association negotiation in seconds; default 60
154#dot11RSNAConfigSATimeout=60
155
f855f923
JM
156# Wi-Fi Protected Setup (WPS) parameters
157
158# Universally Unique IDentifier (UUID; see RFC 4122) of the device
79da74a2 159# If not configured, UUID will be generated based on the local MAC address.
f855f923
JM
160#uuid=12345678-9abc-def0-1234-56789abcdef0
161
3c0b7aa4
JM
162# Device Name
163# User-friendly description of device; up to 32 octets encoded in UTF-8
164#device_name=Wireless Client
165
166# Manufacturer
167# The manufacturer of the device (up to 64 ASCII characters)
168#manufacturer=Company
169
170# Model Name
171# Model of the device (up to 32 ASCII characters)
172#model_name=cmodel
173
174# Model Number
175# Additional device description (up to 32 ASCII characters)
176#model_number=123
177
178# Serial Number
179# Serial number of the device (up to 32 characters)
180#serial_number=12345
181
182# Primary Device Type
183# Used format: <categ>-<OUI>-<subcateg>
184# categ = Category as an integer value
185# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
186# default WPS OUI
187# subcateg = OUI-specific Sub Category as an integer value
188# Examples:
189# 1-0050F204-1 (Computer / PC)
190# 1-0050F204-2 (Computer / Server)
191# 5-0050F204-1 (Storage / NAS)
192# 6-0050F204-1 (Network Infrastructure / AP)
e83a0898 193#device_type=1-0050F204-1
3c0b7aa4
JM
194
195# OS Version
196# 4-octet operating system version number (hex string)
197#os_version=01020300
198
c0e4dd9e
JM
199# Config Methods
200# List of the supported configuration methods
201# Available methods: usba ethernet label display ext_nfc_token int_nfc_token
6a857074
JM
202# nfc_interface push_button keypad virtual_display physical_display
203# virtual_push_button physical_push_button
53587ec1
JM
204# For WSC 1.0:
205#config_methods=label display push_button keypad
206# For WSC 2.0:
6a857074 207#config_methods=label virtual_display virtual_push_button keypad
c0e4dd9e 208
47662164
JM
209# Credential processing
210# 0 = process received credentials internally (default)
211# 1 = do not process received credentials; just pass them over ctrl_iface to
212# external program(s)
213# 2 = process received credentials internally and pass them over ctrl_iface
214# to external program(s)
215#wps_cred_processing=0
f855f923 216
71dd3b78
AS
217# Vendor attribute in WPS M1, e.g., Windows 7 Vertical Pairing
218# The vendor attribute contents to be added in M1 (hex string)
219#wps_vendor_ext_m1=000137100100020001
220
51ca03f4
JM
221# NFC password token for WPS
222# These parameters can be used to configure a fixed NFC password token for the
223# station. This can be generated, e.g., with nfc_pw_token. When these
224# parameters are used, the station is assumed to be deployed with a NFC tag
225# that includes the matching NFC password token (e.g., written based on the
226# NDEF record from nfc_pw_token).
227#
228#wps_nfc_dev_pw_id: Device Password ID (16..65535)
229#wps_nfc_dh_pubkey: Hexdump of DH Public Key
230#wps_nfc_dh_privkey: Hexdump of DH Private Key
231#wps_nfc_dev_pw: Hexdump of Device Password
232
c9c38b09
JM
233# Maximum number of BSS entries to keep in memory
234# Default: 200
235# This can be used to limit memory use on the BSS entries (cached scan
236# results). A larger value may be needed in environments that have huge number
237# of APs when using ap_scan=1 mode.
238#bss_max_count=200
239
b0786fba
TB
240# Automatic scan
241# This is an optional set of parameters for automatic scanning
242# within an interface in following format:
243#autoscan=<autoscan module name>:<module parameters>
244# autoscan is like bgscan but on disconnected or inactive state.
c0fba2b3
TB
245# For instance, on exponential module parameters would be <base>:<limit>
246#autoscan=exponential:3:300
247# Which means a delay between scans on a base exponential of 3,
248# up to the limit of 300 seconds (3, 9, 27 ... 300)
e3659c89
TB
249# For periodic module, parameters would be <fixed interval>
250#autoscan=periodic:30
251# So a delay of 30 seconds will be applied between each scan
c9c38b09 252
3812464c
JM
253# filter_ssids - SSID-based scan result filtering
254# 0 = do not filter scan results (default)
255# 1 = only include configured SSIDs in scan results/BSS table
256#filter_ssids=0
257
306ae225
JM
258# Password (and passphrase, etc.) backend for external storage
259# format: <backend name>[:<optional backend parameters>]
260#ext_password_backend=test:pw1=password|pw2=testing
261
462a7439
ES
262# Timeout in seconds to detect STA inactivity (default: 300 seconds)
263#
264# This timeout value is used in P2P GO mode to clean up
265# inactive stations.
266#p2p_go_max_inactivity=300
267
3812464c 268
46ee0427
JM
269# Interworking (IEEE 802.11u)
270
271# Enable Interworking
272# interworking=1
273
274# Homogenous ESS identifier
275# If this is set, scans will be used to request response only from BSSes
276# belonging to the specified Homogeneous ESS. This is used only if interworking
277# is enabled.
278# hessid=00:11:22:33:44:55
279
400020cb
JM
280# credential block
281#
282# Each credential used for automatic network selection is configured as a set
283# of parameters that are compared to the information advertised by the APs when
284# interworking_select and interworking_connect commands are used.
285#
286# credential fields:
287#
288# priority: Priority group
289# By default, all networks and credentials get the same priority group
290# (0). This field can be used to give higher priority for credentials
291# (and similarly in struct wpa_ssid for network blocks) to change the
292# Interworking automatic networking selection behavior. The matching
293# network (based on either an enabled network block or a credential)
294# with the highest priority value will be selected.
295#
d7b01abd
JM
296# pcsc: Use PC/SC and SIM/USIM card
297#
400020cb
JM
298# realm: Home Realm for Interworking
299#
300# username: Username for Interworking network selection
301#
302# password: Password for Interworking network selection
303#
304# ca_cert: CA certificate for Interworking network selection
305#
306# client_cert: File path to client certificate file (PEM/DER)
307# This field is used with Interworking networking selection for a case
308# where client certificate/private key is used for authentication
309# (EAP-TLS). Full path to the file should be used since working
310# directory may change when wpa_supplicant is run in the background.
311#
312# Alternatively, a named configuration blob can be used by setting
313# this to blob://blob_name.
314#
315# private_key: File path to client private key file (PEM/DER/PFX)
316# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be
317# commented out. Both the private key and certificate will be read
318# from the PKCS#12 file in this case. Full path to the file should be
319# used since working directory may change when wpa_supplicant is run
320# in the background.
321#
322# Windows certificate store can be used by leaving client_cert out and
323# configuring private_key in one of the following formats:
324#
325# cert://substring_to_match
326#
327# hash://certificate_thumbprint_in_hex
328#
329# For example: private_key="hash://63093aa9c47f56ae88334c7b65a4"
330#
331# Note that when running wpa_supplicant as an application, the user
332# certificate store (My user account) is used, whereas computer store
333# (Computer account) is used when running wpasvc as a service.
334#
335# Alternatively, a named configuration blob can be used by setting
336# this to blob://blob_name.
337#
338# private_key_passwd: Password for private key file
339#
340# imsi: IMSI in <MCC> | <MNC> | '-' | <MSIN> format
341#
342# milenage: Milenage parameters for SIM/USIM simulator in <Ki>:<OPc>:<SQN>
343# format
344#
345# domain: Home service provider FQDN
346# This is used to compare against the Domain Name List to figure out
347# whether the AP is operated by the Home SP.
348#
955567bc
JM
349# roaming_consortium: Roaming Consortium OI
350# If roaming_consortium_len is non-zero, this field contains the
351# Roaming Consortium OI that can be used to determine which access
352# points support authentication with this credential. This is an
353# alternative to the use of the realm parameter. When using Roaming
354# Consortium to match the network, the EAP parameters need to be
355# pre-configured with the credential since the NAI Realm information
356# may not be available or fetched.
357#
8ca93c59
JM
358# eap: Pre-configured EAP method
359# This optional field can be used to specify which EAP method will be
360# used with this credential. If not set, the EAP method is selected
361# automatically based on ANQP information (e.g., NAI Realm).
362#
363# phase1: Pre-configure Phase 1 (outer authentication) parameters
364# This optional field is used with like the 'eap' parameter.
365#
366# phase2: Pre-configure Phase 2 (inner authentication) parameters
367# This optional field is used with like the 'eap' parameter.
368#
400020cb
JM
369# for example:
370#
371#cred={
372# realm="example.com"
373# username="user@example.com"
374# password="password"
375# ca_cert="/etc/wpa_supplicant/ca.pem"
376# domain="example.com"
377#}
378#
379#cred={
380# imsi="310026-000000000"
817bb3e1 381# milenage="90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82"
400020cb 382#}
955567bc
JM
383#
384#cred={
385# realm="example.com"
386# username="user"
387# password="password"
388# ca_cert="/etc/wpa_supplicant/ca.pem"
389# domain="example.com"
390# roaming_consortium=223344
391# eap=TTLS
392# phase2="auth=MSCHAPV2"
393#}
2a4b98a9 394
66aadbd7
JK
395# Hotspot 2.0
396# hs20=1
397
6fc6879b
JM
398# network block
399#
400# Each network (usually AP's sharing the same SSID) is configured as a separate
401# block in this configuration file. The network blocks are in preference order
402# (the first match is used).
403#
404# network block fields:
405#
406# disabled:
407# 0 = this network can be used (default)
408# 1 = this network block is disabled (can be enabled through ctrl_iface,
409# e.g., with wpa_cli or wpa_gui)
410#
411# id_str: Network identifier string for external scripts. This value is passed
412# to external action script through wpa_cli as WPA_ID_STR environment
413# variable to make it easier to do network specific configuration.
414#
5c4b93d7
JM
415# ssid: SSID (mandatory); network name in one of the optional formats:
416# - an ASCII string with double quotation
417# - a hex string (two characters per octet of SSID)
418# - a printf-escaped ASCII string P"<escaped string>"
6fc6879b
JM
419#
420# scan_ssid:
421# 0 = do not scan this SSID with specific Probe Request frames (default)
422# 1 = scan with SSID-specific Probe Request frames (this can be used to
423# find APs that do not accept broadcast SSID or use multiple SSIDs;
424# this will add latency to scanning, so enable this only when needed)
425#
426# bssid: BSSID (optional); if set, this network block is used only when
427# associating with the AP using the configured BSSID
428#
429# priority: priority group (integer)
430# By default, all networks will get same priority group (0). If some of the
431# networks are more desirable, this field can be used to change the order in
432# which wpa_supplicant goes through the networks when selecting a BSS. The
433# priority groups will be iterated in decreasing priority (i.e., the larger the
434# priority value, the sooner the network is matched against the scan results).
435# Within each priority group, networks will be selected based on security
436# policy, signal strength, etc.
437# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not
438# using this priority to select the order for scanning. Instead, they try the
439# networks in the order that used in the configuration file.
440#
441# mode: IEEE 802.11 operation mode
442# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default)
443# 1 = IBSS (ad-hoc, peer-to-peer)
1581b38b 444# 2 = AP (access point)
6fc6879b 445# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP)
b55aaa5f
JM
446# and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). WPA-None requires
447# following network block options:
6fc6879b
JM
448# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not
449# both), and psk must also be set.
450#
451# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g.,
452# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial
453# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode.
454# In addition, this value is only used by the station that creates the IBSS. If
455# an IBSS network with the configured SSID is already present, the frequency of
456# the network will be used instead of this configured value.
457#
d3a98225
JM
458# scan_freq: List of frequencies to scan
459# Space-separated list of frequencies in MHz to scan when searching for this
460# BSS. If the subset of channels used by the network is known, this option can
461# be used to optimize scanning to not occur on channels that the network does
462# not use. Example: scan_freq=2412 2437 2462
463#
b766a9a2
JM
464# freq_list: Array of allowed frequencies
465# Space-separated list of frequencies in MHz to allow for selecting the BSS. If
466# set, scan results that do not match any of the specified frequencies are not
467# considered when selecting a BSS.
468#
6fc6879b
JM
469# proto: list of accepted protocols
470# WPA = WPA/IEEE 802.11i/D3.0
471# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
472# If not set, this defaults to: WPA RSN
473#
474# key_mgmt: list of accepted authenticated key management protocols
475# WPA-PSK = WPA pre-shared key (this requires 'psk' field)
f6190d37 476# WPA-EAP = WPA using EAP authentication
6fc6879b
JM
477# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
478# generated WEP keys
479# NONE = WPA is not used; plaintext or static WEP could be used
56586197
JM
480# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms
481# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms
6fc6879b
JM
482# If not set, this defaults to: WPA-PSK WPA-EAP
483#
4732ee3a
JM
484# ieee80211w: whether management frame protection is enabled
485# 0 = disabled (default)
486# 1 = optional
487# 2 = required
488# The most common configuration options for this based on the PMF (protected
489# management frames) certification program are:
490# PMF enabled: ieee80211w=1 and key_mgmt=WPA-EAP WPA-EAP-SHA256
491# PMF required: ieee80211w=2 and key_mgmt=WPA-EAP-SHA256
492# (and similarly for WPA-PSK and WPA-WPSK-SHA256 if WPA2-Personal is used)
493#
6fc6879b
JM
494# auth_alg: list of allowed IEEE 802.11 authentication algorithms
495# OPEN = Open System authentication (required for WPA/WPA2)
496# SHARED = Shared Key authentication (requires static WEP keys)
497# LEAP = LEAP/Network EAP (only used with LEAP)
498# If not set, automatic selection is used (Open System with LEAP enabled if
499# LEAP is allowed as one of the EAP methods).
500#
501# pairwise: list of accepted pairwise (unicast) ciphers for WPA
502# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
503# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
504# NONE = Use only Group Keys (deprecated, should not be included if APs support
505# pairwise keys)
506# If not set, this defaults to: CCMP TKIP
507#
508# group: list of accepted group (broadcast/multicast) ciphers for WPA
509# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
510# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
511# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
512# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]
513# If not set, this defaults to: CCMP TKIP WEP104 WEP40
514#
515# psk: WPA preshared key; 256-bit pre-shared key
516# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e.,
517# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be
518# generated using the passphrase and SSID). ASCII passphrase must be between
9173b16f
JM
519# 8 and 63 characters (inclusive). ext:<name of external PSK field> format can
520# be used to indicate that the PSK/passphrase is stored in external storage.
6fc6879b
JM
521# This field is not needed, if WPA-EAP is used.
522# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys
523# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant
524# startup and reconfiguration time can be optimized by generating the PSK only
525# only when the passphrase or SSID has actually changed.
526#
527# eapol_flags: IEEE 802.1X/EAPOL options (bit field)
528# Dynamic WEP key required for non-WPA mode
529# bit0 (1): require dynamically generated unicast WEP key
530# bit1 (2): require dynamically generated broadcast WEP key
531# (3 = require both keys; default)
532# Note: When using wired authentication, eapol_flags must be set to 0 for the
533# authentication to be completed successfully.
534#
535# mixed_cell: This option can be used to configure whether so called mixed
536# cells, i.e., networks that use both plaintext and encryption in the same
ffbf1eaa 537# SSID, are allowed when selecting a BSS from scan results.
6fc6879b
JM
538# 0 = disabled (default)
539# 1 = enabled
540#
541# proactive_key_caching:
542# Enable/disable opportunistic PMKSA caching for WPA2.
543# 0 = disabled (default)
544# 1 = enabled
545#
546# wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or
547# hex without quotation, e.g., 0102030405)
548# wep_tx_keyidx: Default WEP key index (TX) (0..3)
549#
550# peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is
551# allowed. This is only used with RSN/WPA2.
552# 0 = disabled (default)
553# 1 = enabled
554#peerkey=1
555#
581a8cde
JM
556# wpa_ptk_rekey: Maximum lifetime for PTK in seconds. This can be used to
557# enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies.
558#
6fc6879b
JM
559# Following fields are only used with internal EAP implementation.
560# eap: space-separated list of accepted EAP methods
561# MD5 = EAP-MD5 (unsecure and does not generate keying material ->
562# cannot be used with WPA; to be used as a Phase 2 method
563# with EAP-PEAP or EAP-TTLS)
564# MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used
565# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
566# OTP = EAP-OTP (cannot be used separately with WPA; to be used
567# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
568# GTC = EAP-GTC (cannot be used separately with WPA; to be used
569# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
570# TLS = EAP-TLS (client and server certificate)
571# PEAP = EAP-PEAP (with tunnelled EAP authentication)
572# TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2
573# authentication)
574# If not set, all compiled in methods are allowed.
575#
576# identity: Identity string for EAP
577# This field is also used to configure user NAI for
578# EAP-PSK/PAX/SAKE/GPSK.
579# anonymous_identity: Anonymous identity string for EAP (to be used as the
580# unencrypted identity with EAP types that support different tunnelled
581# identity, e.g., EAP-TTLS)
582# password: Password string for EAP. This field can include either the
583# plaintext password (using ASCII or hex string) or a NtPasswordHash
584# (16-byte MD4 hash of password) in hash:<32 hex digits> format.
585# NtPasswordHash can only be used when the password is for MSCHAPv2 or
586# MSCHAP (EAP-MSCHAPv2, EAP-TTLS/MSCHAPv2, EAP-TTLS/MSCHAP, LEAP).
587# EAP-PSK (128-bit PSK), EAP-PAX (128-bit PSK), and EAP-SAKE (256-bit
588# PSK) is also configured using this field. For EAP-GPSK, this is a
0ebb23e3
JM
589# variable length PSK. ext:<name of external password field> format can
590# be used to indicate that the password is stored in external storage.
6fc6879b
JM
591# ca_cert: File path to CA certificate file (PEM/DER). This file can have one
592# or more trusted CA certificates. If ca_cert and ca_path are not
593# included, server certificate will not be verified. This is insecure and
594# a trusted CA certificate should always be configured when using
595# EAP-TLS/TTLS/PEAP. Full path should be used since working directory may
596# change when wpa_supplicant is run in the background.
00468b46
JM
597#
598# Alternatively, this can be used to only perform matching of the server
599# certificate (SHA-256 hash of the DER encoded X.509 certificate). In
600# this case, the possible CA certificates in the server certificate chain
601# are ignored and only the server certificate is verified. This is
602# configured with the following format:
603# hash:://server/sha256/cert_hash_in_hex
604# For example: "hash://server/sha256/
605# 5a1bc1296205e6fdbe3979728efe3920798885c1c4590b5f90f43222d239ca6a"
606#
6fc6879b
JM
607# On Windows, trusted CA certificates can be loaded from the system
608# certificate store by setting this to cert_store://<name>, e.g.,
609# ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT".
610# Note that when running wpa_supplicant as an application, the user
611# certificate store (My user account) is used, whereas computer store
612# (Computer account) is used when running wpasvc as a service.
613# ca_path: Directory path for CA certificate files (PEM). This path may
614# contain multiple CA certificates in OpenSSL format. Common use for this
615# is to point to system trusted CA list which is often installed into
616# directory like /etc/ssl/certs. If configured, these certificates are
617# added to the list of trusted CAs. ca_cert may also be included in that
618# case, but it is not required.
619# client_cert: File path to client certificate file (PEM/DER)
620# Full path should be used since working directory may change when
621# wpa_supplicant is run in the background.
622# Alternatively, a named configuration blob can be used by setting this
623# to blob://<blob name>.
624# private_key: File path to client private key file (PEM/DER/PFX)
625# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be
626# commented out. Both the private key and certificate will be read from
627# the PKCS#12 file in this case. Full path should be used since working
628# directory may change when wpa_supplicant is run in the background.
629# Windows certificate store can be used by leaving client_cert out and
630# configuring private_key in one of the following formats:
631# cert://substring_to_match
632# hash://certificate_thumbprint_in_hex
633# for example: private_key="hash://63093aa9c47f56ae88334c7b65a4"
634# Note that when running wpa_supplicant as an application, the user
635# certificate store (My user account) is used, whereas computer store
636# (Computer account) is used when running wpasvc as a service.
637# Alternatively, a named configuration blob can be used by setting this
638# to blob://<blob name>.
639# private_key_passwd: Password for private key file (if left out, this will be
640# asked through control interface)
641# dh_file: File path to DH/DSA parameters file (in PEM format)
642# This is an optional configuration file for setting parameters for an
643# ephemeral DH key exchange. In most cases, the default RSA
644# authentication does not use this configuration. However, it is possible
645# setup RSA to use ephemeral DH key exchange. In addition, ciphers with
646# DSA keys always use ephemeral DH keys. This can be used to achieve
647# forward secrecy. If the file is in DSA parameters format, it will be
648# automatically converted into DH params.
649# subject_match: Substring to be matched against the subject of the
650# authentication server certificate. If this string is set, the server
651# sertificate is only accepted if it contains this string in the subject.
652# The subject string is in following format:
653# /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com
654# altsubject_match: Semicolon separated string of entries to be matched against
655# the alternative subject name of the authentication server certificate.
656# If this string is set, the server sertificate is only accepted if it
657# contains one of the entries in an alternative subject name extension.
658# altSubjectName string is in following format: TYPE:VALUE
659# Example: EMAIL:server@example.com
660# Example: DNS:server.example.com;DNS:server2.example.com
661# Following types are supported: EMAIL, DNS, URI
662# phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters
663# (string with field-value pairs, e.g., "peapver=0" or
664# "peapver=1 peaplabel=1")
665# 'peapver' can be used to force which PEAP version (0 or 1) is used.
666# 'peaplabel=1' can be used to force new label, "client PEAP encryption",
667# to be used during key derivation when PEAPv1 or newer. Most existing
668# PEAPv1 implementation seem to be using the old label, "client EAP
669# encryption", and wpa_supplicant is now using that as the default value.
670# Some servers, e.g., Radiator, may require peaplabel=1 configuration to
671# interoperate with PEAPv1; see eap_testing.txt for more details.
672# 'peap_outer_success=0' can be used to terminate PEAP authentication on
673# tunneled EAP-Success. This is required with some RADIUS servers that
674# implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g.,
675# Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode)
676# include_tls_length=1 can be used to force wpa_supplicant to include
677# TLS Message Length field in all TLS messages even if they are not
678# fragmented.
679# sim_min_num_chal=3 can be used to configure EAP-SIM to require three
680# challenges (by default, it accepts 2 or 3)
681# result_ind=1 can be used to enable EAP-SIM and EAP-AKA to use
682# protected result indication.
d6888f9e
JM
683# 'crypto_binding' option can be used to control PEAPv0 cryptobinding
684# behavior:
c31a11c9
JM
685# * 0 = do not use cryptobinding (default)
686# * 1 = use cryptobinding if server supports it
d6888f9e 687# * 2 = require cryptobinding
f855f923
JM
688# EAP-WSC (WPS) uses following options: pin=<Device Password> or
689# pbc=1.
6fc6879b
JM
690# phase2: Phase2 (inner authentication with TLS tunnel) parameters
691# (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or
692# "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS)
693# Following certificate/private key fields are used in inner Phase2
694# authentication when using EAP-TTLS or EAP-PEAP.
695# ca_cert2: File path to CA certificate file. This file can have one or more
696# trusted CA certificates. If ca_cert2 and ca_path2 are not included,
697# server certificate will not be verified. This is insecure and a trusted
698# CA certificate should always be configured.
699# ca_path2: Directory path for CA certificate files (PEM)
700# client_cert2: File path to client certificate file
701# private_key2: File path to client private key file
702# private_key2_passwd: Password for private key file
703# dh_file2: File path to DH/DSA parameters file (in PEM format)
704# subject_match2: Substring to be matched against the subject of the
705# authentication server certificate.
706# altsubject_match2: Substring to be matched against the alternative subject
707# name of the authentication server certificate.
708#
709# fragment_size: Maximum EAP fragment size in bytes (default 1398).
710# This value limits the fragment size for EAP methods that support
711# fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set
712# small enough to make the EAP messages fit in MTU of the network
713# interface used for EAPOL. The default value is suitable for most
714# cases.
715#
716# EAP-FAST variables:
717# pac_file: File path for the PAC entries. wpa_supplicant will need to be able
718# to create this file and write updates to it when PAC is being
719# provisioned or refreshed. Full path to the file should be used since
720# working directory may change when wpa_supplicant is run in the
721# background. Alternatively, a named configuration blob can be used by
722# setting this to blob://<blob name>
723# phase1: fast_provisioning option can be used to enable in-line provisioning
724# of EAP-FAST credentials (PAC):
725# 0 = disabled,
726# 1 = allow unauthenticated provisioning,
727# 2 = allow authenticated provisioning,
728# 3 = allow both unauthenticated and authenticated provisioning
729# fast_max_pac_list_len=<num> option can be used to set the maximum
730# number of PAC entries to store in a PAC list (default: 10)
731# fast_pac_format=binary option can be used to select binary format for
2e8c9a27 732# storing PAC entries in order to save some space (the default
6fc6879b
JM
733# text format uses about 2.5 times the size of minimal binary
734# format)
735#
736# wpa_supplicant supports number of "EAP workarounds" to work around
737# interoperability issues with incorrectly behaving authentication servers.
738# These are enabled by default because some of the issues are present in large
739# number of authentication servers. Strict EAP conformance mode can be
740# configured by disabling workarounds with eap_workaround=0.
741
07f53b8c
VT
742# Station inactivity limit
743#
744# If a station does not send anything in ap_max_inactivity seconds, an
745# empty data frame is sent to it in order to verify whether it is
746# still in range. If this frame is not ACKed, the station will be
747# disassociated and then deauthenticated. This feature is used to
748# clear station table of old entries when the STAs move out of the
749# range.
750#
751# The station can associate again with the AP if it is still in range;
752# this inactivity poll is just used as a nicer way of verifying
753# inactivity; i.e., client will not report broken connection because
754# disassociation frame is not sent immediately without first polling
755# the STA with a data frame.
756# default: 300 (i.e., 5 minutes)
757#ap_max_inactivity=300
758
fdfb1c8b
EL
759# DTIM period in Beacon intervals for AP mode (default: 2)
760#dtim_period=2
761
6fc6879b
JM
762# Example blocks:
763
764# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
765network={
766 ssid="simple"
767 psk="very secret passphrase"
768 priority=5
769}
770
771# Same as previous, but request SSID-specific scanning (for APs that reject
772# broadcast SSID)
773network={
774 ssid="second ssid"
775 scan_ssid=1
776 psk="very secret passphrase"
777 priority=2
778}
779
780# Only WPA-PSK is used. Any valid cipher combination is accepted.
781network={
782 ssid="example"
783 proto=WPA
784 key_mgmt=WPA-PSK
785 pairwise=CCMP TKIP
786 group=CCMP TKIP WEP104 WEP40
787 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
788 priority=2
789}
790
581a8cde
JM
791# WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying
792network={
793 ssid="example"
794 proto=WPA
795 key_mgmt=WPA-PSK
796 pairwise=TKIP
797 group=TKIP
798 psk="not so secure passphrase"
799 wpa_ptk_rekey=600
800}
801
6fc6879b
JM
802# Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104
803# or WEP40 as the group cipher will not be accepted.
804network={
805 ssid="example"
806 proto=RSN
807 key_mgmt=WPA-EAP
808 pairwise=CCMP TKIP
809 group=CCMP TKIP
810 eap=TLS
811 identity="user@example.com"
812 ca_cert="/etc/cert/ca.pem"
813 client_cert="/etc/cert/user.pem"
814 private_key="/etc/cert/user.prv"
815 private_key_passwd="password"
816 priority=1
817}
818
819# EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel
820# (e.g., Radiator)
821network={
822 ssid="example"
823 key_mgmt=WPA-EAP
824 eap=PEAP
825 identity="user@example.com"
826 password="foobar"
827 ca_cert="/etc/cert/ca.pem"
828 phase1="peaplabel=1"
829 phase2="auth=MSCHAPV2"
830 priority=10
831}
832
833# EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the
834# unencrypted use. Real identity is sent only within an encrypted TLS tunnel.
835network={
836 ssid="example"
837 key_mgmt=WPA-EAP
838 eap=TTLS
839 identity="user@example.com"
840 anonymous_identity="anonymous@example.com"
841 password="foobar"
842 ca_cert="/etc/cert/ca.pem"
843 priority=2
844}
845
846# EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted
847# use. Real identity is sent only within an encrypted TLS tunnel.
848network={
849 ssid="example"
850 key_mgmt=WPA-EAP
851 eap=TTLS
852 identity="user@example.com"
853 anonymous_identity="anonymous@example.com"
854 password="foobar"
855 ca_cert="/etc/cert/ca.pem"
856 phase2="auth=MSCHAPV2"
857}
858
859# WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner
860# authentication.
861network={
862 ssid="example"
863 key_mgmt=WPA-EAP
864 eap=TTLS
865 # Phase1 / outer authentication
866 anonymous_identity="anonymous@example.com"
867 ca_cert="/etc/cert/ca.pem"
868 # Phase 2 / inner authentication
869 phase2="autheap=TLS"
870 ca_cert2="/etc/cert/ca2.pem"
871 client_cert2="/etc/cer/user.pem"
872 private_key2="/etc/cer/user.prv"
873 private_key2_passwd="password"
874 priority=2
875}
876
877# Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and
878# group cipher.
879network={
880 ssid="example"
881 bssid=00:11:22:33:44:55
882 proto=WPA RSN
883 key_mgmt=WPA-PSK WPA-EAP
884 pairwise=CCMP
885 group=CCMP
886 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
887}
888
889# Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP
890# and all valid ciphers.
891network={
892 ssid=00010203
893 psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
894}
895
896
897# EAP-SIM with a GSM SIM or USIM
898network={
899 ssid="eap-sim-test"
900 key_mgmt=WPA-EAP
901 eap=SIM
902 pin="1234"
903 pcsc=""
904}
905
906
907# EAP-PSK
908network={
909 ssid="eap-psk-test"
910 key_mgmt=WPA-EAP
911 eap=PSK
912 anonymous_identity="eap_psk_user"
913 password=06b4be19da289f475aa46a33cb793029
914 identity="eap_psk_user@example.com"
915}
916
917
918# IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using
919# EAP-TLS for authentication and key generation; require both unicast and
920# broadcast WEP keys.
921network={
922 ssid="1x-test"
923 key_mgmt=IEEE8021X
924 eap=TLS
925 identity="user@example.com"
926 ca_cert="/etc/cert/ca.pem"
927 client_cert="/etc/cert/user.pem"
928 private_key="/etc/cert/user.prv"
929 private_key_passwd="password"
930 eapol_flags=3
931}
932
933
934# LEAP with dynamic WEP keys
935network={
936 ssid="leap-example"
937 key_mgmt=IEEE8021X
938 eap=LEAP
939 identity="user"
940 password="foobar"
941}
942
943# EAP-IKEv2 using shared secrets for both server and peer authentication
944network={
945 ssid="ikev2-example"
946 key_mgmt=WPA-EAP
947 eap=IKEV2
948 identity="user"
949 password="foobar"
950}
951
952# EAP-FAST with WPA (WPA or WPA2)
953network={
954 ssid="eap-fast-test"
955 key_mgmt=WPA-EAP
956 eap=FAST
957 anonymous_identity="FAST-000102030405"
958 identity="username"
959 password="password"
960 phase1="fast_provisioning=1"
961 pac_file="/etc/wpa_supplicant.eap-fast-pac"
962}
963
964network={
965 ssid="eap-fast-test"
966 key_mgmt=WPA-EAP
967 eap=FAST
968 anonymous_identity="FAST-000102030405"
969 identity="username"
970 password="password"
971 phase1="fast_provisioning=1"
972 pac_file="blob://eap-fast-pac"
973}
974
975# Plaintext connection (no WPA, no IEEE 802.1X)
976network={
977 ssid="plaintext-test"
978 key_mgmt=NONE
979}
980
981
982# Shared WEP key connection (no WPA, no IEEE 802.1X)
983network={
984 ssid="static-wep-test"
985 key_mgmt=NONE
986 wep_key0="abcde"
987 wep_key1=0102030405
988 wep_key2="1234567890123"
989 wep_tx_keyidx=0
990 priority=5
991}
992
993
994# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
995# IEEE 802.11 authentication
996network={
997 ssid="static-wep-test2"
998 key_mgmt=NONE
999 wep_key0="abcde"
1000 wep_key1=0102030405
1001 wep_key2="1234567890123"
1002 wep_tx_keyidx=0
1003 priority=5
1004 auth_alg=SHARED
1005}
1006
1007
1008# IBSS/ad-hoc network with WPA-None/TKIP.
1009network={
1010 ssid="test adhoc"
1011 mode=1
1012 frequency=2412
1013 proto=WPA
1014 key_mgmt=WPA-NONE
1015 pairwise=NONE
1016 group=TKIP
1017 psk="secret passphrase"
1018}
1019
1020
1021# Catch all example that allows more or less all configuration modes
1022network={
1023 ssid="example"
1024 scan_ssid=1
1025 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
1026 pairwise=CCMP TKIP
1027 group=CCMP TKIP WEP104 WEP40
1028 psk="very secret passphrase"
1029 eap=TTLS PEAP TLS
1030 identity="user@example.com"
1031 password="foobar"
1032 ca_cert="/etc/cert/ca.pem"
1033 client_cert="/etc/cert/user.pem"
1034 private_key="/etc/cert/user.prv"
1035 private_key_passwd="password"
1036 phase1="peaplabel=0"
1037}
1038
1039# Example of EAP-TLS with smartcard (openssl engine)
1040network={
1041 ssid="example"
1042 key_mgmt=WPA-EAP
1043 eap=TLS
1044 proto=RSN
1045 pairwise=CCMP TKIP
1046 group=CCMP TKIP
1047 identity="user@example.com"
1048 ca_cert="/etc/cert/ca.pem"
1049 client_cert="/etc/cert/user.pem"
1050
1051 engine=1
1052
1053 # The engine configured here must be available. Look at
1054 # OpenSSL engine support in the global section.
1055 # The key available through the engine must be the private key
1056 # matching the client certificate configured above.
1057
1058 # use the opensc engine
1059 #engine_id="opensc"
1060 #key_id="45"
1061
1062 # use the pkcs11 engine
1063 engine_id="pkcs11"
1064 key_id="id_45"
1065
1066 # Optional PIN configuration; this can be left out and PIN will be
1067 # asked through the control interface
1068 pin="1234"
1069}
1070
1071# Example configuration showing how to use an inlined blob as a CA certificate
1072# data instead of using external file
1073network={
1074 ssid="example"
1075 key_mgmt=WPA-EAP
1076 eap=TTLS
1077 identity="user@example.com"
1078 anonymous_identity="anonymous@example.com"
1079 password="foobar"
1080 ca_cert="blob://exampleblob"
1081 priority=20
1082}
1083
1084blob-base64-exampleblob={
1085SGVsbG8gV29ybGQhCg==
1086}
1087
1088
1089# Wildcard match for SSID (plaintext APs only). This example select any
1090# open AP regardless of its SSID.
1091network={
1092 key_mgmt=NONE
1093}