]> git.ipfire.org Git - thirdparty/hostap.git/blame - wpa_supplicant/wpa_supplicant.conf
Interworking: Add support for using Roaming Consortium OI for matching
[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
258
46ee0427
JM
259# Interworking (IEEE 802.11u)
260
261# Enable Interworking
262# interworking=1
263
264# Homogenous ESS identifier
265# If this is set, scans will be used to request response only from BSSes
266# belonging to the specified Homogeneous ESS. This is used only if interworking
267# is enabled.
268# hessid=00:11:22:33:44:55
269
400020cb
JM
270# credential block
271#
272# Each credential used for automatic network selection is configured as a set
273# of parameters that are compared to the information advertised by the APs when
274# interworking_select and interworking_connect commands are used.
275#
276# credential fields:
277#
278# priority: Priority group
279# By default, all networks and credentials get the same priority group
280# (0). This field can be used to give higher priority for credentials
281# (and similarly in struct wpa_ssid for network blocks) to change the
282# Interworking automatic networking selection behavior. The matching
283# network (based on either an enabled network block or a credential)
284# with the highest priority value will be selected.
285#
d7b01abd
JM
286# pcsc: Use PC/SC and SIM/USIM card
287#
400020cb
JM
288# realm: Home Realm for Interworking
289#
290# username: Username for Interworking network selection
291#
292# password: Password for Interworking network selection
293#
294# ca_cert: CA certificate for Interworking network selection
295#
296# client_cert: File path to client certificate file (PEM/DER)
297# This field is used with Interworking networking selection for a case
298# where client certificate/private key is used for authentication
299# (EAP-TLS). Full path to the file should be used since working
300# directory may change when wpa_supplicant is run in the background.
301#
302# Alternatively, a named configuration blob can be used by setting
303# this to blob://blob_name.
304#
305# private_key: File path to client private key file (PEM/DER/PFX)
306# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be
307# commented out. Both the private key and certificate will be read
308# from the PKCS#12 file in this case. Full path to the file should be
309# used since working directory may change when wpa_supplicant is run
310# in the background.
311#
312# Windows certificate store can be used by leaving client_cert out and
313# configuring private_key in one of the following formats:
314#
315# cert://substring_to_match
316#
317# hash://certificate_thumbprint_in_hex
318#
319# For example: private_key="hash://63093aa9c47f56ae88334c7b65a4"
320#
321# Note that when running wpa_supplicant as an application, the user
322# certificate store (My user account) is used, whereas computer store
323# (Computer account) is used when running wpasvc as a service.
324#
325# Alternatively, a named configuration blob can be used by setting
326# this to blob://blob_name.
327#
328# private_key_passwd: Password for private key file
329#
330# imsi: IMSI in <MCC> | <MNC> | '-' | <MSIN> format
331#
332# milenage: Milenage parameters for SIM/USIM simulator in <Ki>:<OPc>:<SQN>
333# format
334#
335# domain: Home service provider FQDN
336# This is used to compare against the Domain Name List to figure out
337# whether the AP is operated by the Home SP.
338#
955567bc
JM
339# roaming_consortium: Roaming Consortium OI
340# If roaming_consortium_len is non-zero, this field contains the
341# Roaming Consortium OI that can be used to determine which access
342# points support authentication with this credential. This is an
343# alternative to the use of the realm parameter. When using Roaming
344# Consortium to match the network, the EAP parameters need to be
345# pre-configured with the credential since the NAI Realm information
346# may not be available or fetched.
347#
8ca93c59
JM
348# eap: Pre-configured EAP method
349# This optional field can be used to specify which EAP method will be
350# used with this credential. If not set, the EAP method is selected
351# automatically based on ANQP information (e.g., NAI Realm).
352#
353# phase1: Pre-configure Phase 1 (outer authentication) parameters
354# This optional field is used with like the 'eap' parameter.
355#
356# phase2: Pre-configure Phase 2 (inner authentication) parameters
357# This optional field is used with like the 'eap' parameter.
358#
400020cb
JM
359# for example:
360#
361#cred={
362# realm="example.com"
363# username="user@example.com"
364# password="password"
365# ca_cert="/etc/wpa_supplicant/ca.pem"
366# domain="example.com"
367#}
368#
369#cred={
370# imsi="310026-000000000"
817bb3e1 371# milenage="90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82"
400020cb 372#}
955567bc
JM
373#
374#cred={
375# realm="example.com"
376# username="user"
377# password="password"
378# ca_cert="/etc/wpa_supplicant/ca.pem"
379# domain="example.com"
380# roaming_consortium=223344
381# eap=TTLS
382# phase2="auth=MSCHAPV2"
383#}
2a4b98a9 384
66aadbd7
JK
385# Hotspot 2.0
386# hs20=1
387
6fc6879b
JM
388# network block
389#
390# Each network (usually AP's sharing the same SSID) is configured as a separate
391# block in this configuration file. The network blocks are in preference order
392# (the first match is used).
393#
394# network block fields:
395#
396# disabled:
397# 0 = this network can be used (default)
398# 1 = this network block is disabled (can be enabled through ctrl_iface,
399# e.g., with wpa_cli or wpa_gui)
400#
401# id_str: Network identifier string for external scripts. This value is passed
402# to external action script through wpa_cli as WPA_ID_STR environment
403# variable to make it easier to do network specific configuration.
404#
405# ssid: SSID (mandatory); either as an ASCII string with double quotation or
406# as hex string; network name
407#
408# scan_ssid:
409# 0 = do not scan this SSID with specific Probe Request frames (default)
410# 1 = scan with SSID-specific Probe Request frames (this can be used to
411# find APs that do not accept broadcast SSID or use multiple SSIDs;
412# this will add latency to scanning, so enable this only when needed)
413#
414# bssid: BSSID (optional); if set, this network block is used only when
415# associating with the AP using the configured BSSID
416#
417# priority: priority group (integer)
418# By default, all networks will get same priority group (0). If some of the
419# networks are more desirable, this field can be used to change the order in
420# which wpa_supplicant goes through the networks when selecting a BSS. The
421# priority groups will be iterated in decreasing priority (i.e., the larger the
422# priority value, the sooner the network is matched against the scan results).
423# Within each priority group, networks will be selected based on security
424# policy, signal strength, etc.
425# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not
426# using this priority to select the order for scanning. Instead, they try the
427# networks in the order that used in the configuration file.
428#
429# mode: IEEE 802.11 operation mode
430# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default)
431# 1 = IBSS (ad-hoc, peer-to-peer)
1581b38b 432# 2 = AP (access point)
6fc6879b 433# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP)
b55aaa5f
JM
434# and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). WPA-None requires
435# following network block options:
6fc6879b
JM
436# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not
437# both), and psk must also be set.
438#
439# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g.,
440# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial
441# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode.
442# In addition, this value is only used by the station that creates the IBSS. If
443# an IBSS network with the configured SSID is already present, the frequency of
444# the network will be used instead of this configured value.
445#
d3a98225
JM
446# scan_freq: List of frequencies to scan
447# Space-separated list of frequencies in MHz to scan when searching for this
448# BSS. If the subset of channels used by the network is known, this option can
449# be used to optimize scanning to not occur on channels that the network does
450# not use. Example: scan_freq=2412 2437 2462
451#
b766a9a2
JM
452# freq_list: Array of allowed frequencies
453# Space-separated list of frequencies in MHz to allow for selecting the BSS. If
454# set, scan results that do not match any of the specified frequencies are not
455# considered when selecting a BSS.
456#
6fc6879b
JM
457# proto: list of accepted protocols
458# WPA = WPA/IEEE 802.11i/D3.0
459# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
460# If not set, this defaults to: WPA RSN
461#
462# key_mgmt: list of accepted authenticated key management protocols
463# WPA-PSK = WPA pre-shared key (this requires 'psk' field)
f6190d37 464# WPA-EAP = WPA using EAP authentication
6fc6879b
JM
465# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
466# generated WEP keys
467# NONE = WPA is not used; plaintext or static WEP could be used
56586197
JM
468# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms
469# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms
6fc6879b
JM
470# If not set, this defaults to: WPA-PSK WPA-EAP
471#
4732ee3a
JM
472# ieee80211w: whether management frame protection is enabled
473# 0 = disabled (default)
474# 1 = optional
475# 2 = required
476# The most common configuration options for this based on the PMF (protected
477# management frames) certification program are:
478# PMF enabled: ieee80211w=1 and key_mgmt=WPA-EAP WPA-EAP-SHA256
479# PMF required: ieee80211w=2 and key_mgmt=WPA-EAP-SHA256
480# (and similarly for WPA-PSK and WPA-WPSK-SHA256 if WPA2-Personal is used)
481#
6fc6879b
JM
482# auth_alg: list of allowed IEEE 802.11 authentication algorithms
483# OPEN = Open System authentication (required for WPA/WPA2)
484# SHARED = Shared Key authentication (requires static WEP keys)
485# LEAP = LEAP/Network EAP (only used with LEAP)
486# If not set, automatic selection is used (Open System with LEAP enabled if
487# LEAP is allowed as one of the EAP methods).
488#
489# pairwise: list of accepted pairwise (unicast) ciphers for WPA
490# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
491# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
492# NONE = Use only Group Keys (deprecated, should not be included if APs support
493# pairwise keys)
494# If not set, this defaults to: CCMP TKIP
495#
496# group: list of accepted group (broadcast/multicast) ciphers for WPA
497# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
498# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
499# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
500# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]
501# If not set, this defaults to: CCMP TKIP WEP104 WEP40
502#
503# psk: WPA preshared key; 256-bit pre-shared key
504# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e.,
505# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be
506# generated using the passphrase and SSID). ASCII passphrase must be between
507# 8 and 63 characters (inclusive).
508# This field is not needed, if WPA-EAP is used.
509# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys
510# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant
511# startup and reconfiguration time can be optimized by generating the PSK only
512# only when the passphrase or SSID has actually changed.
513#
514# eapol_flags: IEEE 802.1X/EAPOL options (bit field)
515# Dynamic WEP key required for non-WPA mode
516# bit0 (1): require dynamically generated unicast WEP key
517# bit1 (2): require dynamically generated broadcast WEP key
518# (3 = require both keys; default)
519# Note: When using wired authentication, eapol_flags must be set to 0 for the
520# authentication to be completed successfully.
521#
522# mixed_cell: This option can be used to configure whether so called mixed
523# cells, i.e., networks that use both plaintext and encryption in the same
ffbf1eaa 524# SSID, are allowed when selecting a BSS from scan results.
6fc6879b
JM
525# 0 = disabled (default)
526# 1 = enabled
527#
528# proactive_key_caching:
529# Enable/disable opportunistic PMKSA caching for WPA2.
530# 0 = disabled (default)
531# 1 = enabled
532#
533# wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or
534# hex without quotation, e.g., 0102030405)
535# wep_tx_keyidx: Default WEP key index (TX) (0..3)
536#
537# peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is
538# allowed. This is only used with RSN/WPA2.
539# 0 = disabled (default)
540# 1 = enabled
541#peerkey=1
542#
581a8cde
JM
543# wpa_ptk_rekey: Maximum lifetime for PTK in seconds. This can be used to
544# enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies.
545#
6fc6879b
JM
546# Following fields are only used with internal EAP implementation.
547# eap: space-separated list of accepted EAP methods
548# MD5 = EAP-MD5 (unsecure and does not generate keying material ->
549# cannot be used with WPA; to be used as a Phase 2 method
550# with EAP-PEAP or EAP-TTLS)
551# MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used
552# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
553# OTP = EAP-OTP (cannot be used separately with WPA; to be used
554# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
555# GTC = EAP-GTC (cannot be used separately with WPA; to be used
556# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
557# TLS = EAP-TLS (client and server certificate)
558# PEAP = EAP-PEAP (with tunnelled EAP authentication)
559# TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2
560# authentication)
561# If not set, all compiled in methods are allowed.
562#
563# identity: Identity string for EAP
564# This field is also used to configure user NAI for
565# EAP-PSK/PAX/SAKE/GPSK.
566# anonymous_identity: Anonymous identity string for EAP (to be used as the
567# unencrypted identity with EAP types that support different tunnelled
568# identity, e.g., EAP-TTLS)
569# password: Password string for EAP. This field can include either the
570# plaintext password (using ASCII or hex string) or a NtPasswordHash
571# (16-byte MD4 hash of password) in hash:<32 hex digits> format.
572# NtPasswordHash can only be used when the password is for MSCHAPv2 or
573# MSCHAP (EAP-MSCHAPv2, EAP-TTLS/MSCHAPv2, EAP-TTLS/MSCHAP, LEAP).
574# EAP-PSK (128-bit PSK), EAP-PAX (128-bit PSK), and EAP-SAKE (256-bit
575# PSK) is also configured using this field. For EAP-GPSK, this is a
9474b3a4 576# variable length PSK.
6fc6879b
JM
577# ca_cert: File path to CA certificate file (PEM/DER). This file can have one
578# or more trusted CA certificates. If ca_cert and ca_path are not
579# included, server certificate will not be verified. This is insecure and
580# a trusted CA certificate should always be configured when using
581# EAP-TLS/TTLS/PEAP. Full path should be used since working directory may
582# change when wpa_supplicant is run in the background.
00468b46
JM
583#
584# Alternatively, this can be used to only perform matching of the server
585# certificate (SHA-256 hash of the DER encoded X.509 certificate). In
586# this case, the possible CA certificates in the server certificate chain
587# are ignored and only the server certificate is verified. This is
588# configured with the following format:
589# hash:://server/sha256/cert_hash_in_hex
590# For example: "hash://server/sha256/
591# 5a1bc1296205e6fdbe3979728efe3920798885c1c4590b5f90f43222d239ca6a"
592#
6fc6879b
JM
593# On Windows, trusted CA certificates can be loaded from the system
594# certificate store by setting this to cert_store://<name>, e.g.,
595# ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT".
596# Note that when running wpa_supplicant as an application, the user
597# certificate store (My user account) is used, whereas computer store
598# (Computer account) is used when running wpasvc as a service.
599# ca_path: Directory path for CA certificate files (PEM). This path may
600# contain multiple CA certificates in OpenSSL format. Common use for this
601# is to point to system trusted CA list which is often installed into
602# directory like /etc/ssl/certs. If configured, these certificates are
603# added to the list of trusted CAs. ca_cert may also be included in that
604# case, but it is not required.
605# client_cert: File path to client certificate file (PEM/DER)
606# Full path should be used since working directory may change when
607# wpa_supplicant is run in the background.
608# Alternatively, a named configuration blob can be used by setting this
609# to blob://<blob name>.
610# private_key: File path to client private key file (PEM/DER/PFX)
611# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be
612# commented out. Both the private key and certificate will be read from
613# the PKCS#12 file in this case. Full path should be used since working
614# directory may change when wpa_supplicant is run in the background.
615# Windows certificate store can be used by leaving client_cert out and
616# configuring private_key in one of the following formats:
617# cert://substring_to_match
618# hash://certificate_thumbprint_in_hex
619# for example: private_key="hash://63093aa9c47f56ae88334c7b65a4"
620# Note that when running wpa_supplicant as an application, the user
621# certificate store (My user account) is used, whereas computer store
622# (Computer account) is used when running wpasvc as a service.
623# Alternatively, a named configuration blob can be used by setting this
624# to blob://<blob name>.
625# private_key_passwd: Password for private key file (if left out, this will be
626# asked through control interface)
627# dh_file: File path to DH/DSA parameters file (in PEM format)
628# This is an optional configuration file for setting parameters for an
629# ephemeral DH key exchange. In most cases, the default RSA
630# authentication does not use this configuration. However, it is possible
631# setup RSA to use ephemeral DH key exchange. In addition, ciphers with
632# DSA keys always use ephemeral DH keys. This can be used to achieve
633# forward secrecy. If the file is in DSA parameters format, it will be
634# automatically converted into DH params.
635# subject_match: Substring to be matched against the subject of the
636# authentication server certificate. If this string is set, the server
637# sertificate is only accepted if it contains this string in the subject.
638# The subject string is in following format:
639# /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com
640# altsubject_match: Semicolon separated string of entries to be matched against
641# the alternative subject name of the authentication server certificate.
642# If this string is set, the server sertificate is only accepted if it
643# contains one of the entries in an alternative subject name extension.
644# altSubjectName string is in following format: TYPE:VALUE
645# Example: EMAIL:server@example.com
646# Example: DNS:server.example.com;DNS:server2.example.com
647# Following types are supported: EMAIL, DNS, URI
648# phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters
649# (string with field-value pairs, e.g., "peapver=0" or
650# "peapver=1 peaplabel=1")
651# 'peapver' can be used to force which PEAP version (0 or 1) is used.
652# 'peaplabel=1' can be used to force new label, "client PEAP encryption",
653# to be used during key derivation when PEAPv1 or newer. Most existing
654# PEAPv1 implementation seem to be using the old label, "client EAP
655# encryption", and wpa_supplicant is now using that as the default value.
656# Some servers, e.g., Radiator, may require peaplabel=1 configuration to
657# interoperate with PEAPv1; see eap_testing.txt for more details.
658# 'peap_outer_success=0' can be used to terminate PEAP authentication on
659# tunneled EAP-Success. This is required with some RADIUS servers that
660# implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g.,
661# Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode)
662# include_tls_length=1 can be used to force wpa_supplicant to include
663# TLS Message Length field in all TLS messages even if they are not
664# fragmented.
665# sim_min_num_chal=3 can be used to configure EAP-SIM to require three
666# challenges (by default, it accepts 2 or 3)
667# result_ind=1 can be used to enable EAP-SIM and EAP-AKA to use
668# protected result indication.
d6888f9e
JM
669# 'crypto_binding' option can be used to control PEAPv0 cryptobinding
670# behavior:
c31a11c9
JM
671# * 0 = do not use cryptobinding (default)
672# * 1 = use cryptobinding if server supports it
d6888f9e 673# * 2 = require cryptobinding
f855f923
JM
674# EAP-WSC (WPS) uses following options: pin=<Device Password> or
675# pbc=1.
6fc6879b
JM
676# phase2: Phase2 (inner authentication with TLS tunnel) parameters
677# (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or
678# "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS)
679# Following certificate/private key fields are used in inner Phase2
680# authentication when using EAP-TTLS or EAP-PEAP.
681# ca_cert2: File path to CA certificate file. This file can have one or more
682# trusted CA certificates. If ca_cert2 and ca_path2 are not included,
683# server certificate will not be verified. This is insecure and a trusted
684# CA certificate should always be configured.
685# ca_path2: Directory path for CA certificate files (PEM)
686# client_cert2: File path to client certificate file
687# private_key2: File path to client private key file
688# private_key2_passwd: Password for private key file
689# dh_file2: File path to DH/DSA parameters file (in PEM format)
690# subject_match2: Substring to be matched against the subject of the
691# authentication server certificate.
692# altsubject_match2: Substring to be matched against the alternative subject
693# name of the authentication server certificate.
694#
695# fragment_size: Maximum EAP fragment size in bytes (default 1398).
696# This value limits the fragment size for EAP methods that support
697# fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set
698# small enough to make the EAP messages fit in MTU of the network
699# interface used for EAPOL. The default value is suitable for most
700# cases.
701#
702# EAP-FAST variables:
703# pac_file: File path for the PAC entries. wpa_supplicant will need to be able
704# to create this file and write updates to it when PAC is being
705# provisioned or refreshed. Full path to the file should be used since
706# working directory may change when wpa_supplicant is run in the
707# background. Alternatively, a named configuration blob can be used by
708# setting this to blob://<blob name>
709# phase1: fast_provisioning option can be used to enable in-line provisioning
710# of EAP-FAST credentials (PAC):
711# 0 = disabled,
712# 1 = allow unauthenticated provisioning,
713# 2 = allow authenticated provisioning,
714# 3 = allow both unauthenticated and authenticated provisioning
715# fast_max_pac_list_len=<num> option can be used to set the maximum
716# number of PAC entries to store in a PAC list (default: 10)
717# fast_pac_format=binary option can be used to select binary format for
2e8c9a27 718# storing PAC entries in order to save some space (the default
6fc6879b
JM
719# text format uses about 2.5 times the size of minimal binary
720# format)
721#
722# wpa_supplicant supports number of "EAP workarounds" to work around
723# interoperability issues with incorrectly behaving authentication servers.
724# These are enabled by default because some of the issues are present in large
725# number of authentication servers. Strict EAP conformance mode can be
726# configured by disabling workarounds with eap_workaround=0.
727
07f53b8c
VT
728# Station inactivity limit
729#
730# If a station does not send anything in ap_max_inactivity seconds, an
731# empty data frame is sent to it in order to verify whether it is
732# still in range. If this frame is not ACKed, the station will be
733# disassociated and then deauthenticated. This feature is used to
734# clear station table of old entries when the STAs move out of the
735# range.
736#
737# The station can associate again with the AP if it is still in range;
738# this inactivity poll is just used as a nicer way of verifying
739# inactivity; i.e., client will not report broken connection because
740# disassociation frame is not sent immediately without first polling
741# the STA with a data frame.
742# default: 300 (i.e., 5 minutes)
743#ap_max_inactivity=300
744
fdfb1c8b
EL
745# DTIM period in Beacon intervals for AP mode (default: 2)
746#dtim_period=2
747
6fc6879b
JM
748# Example blocks:
749
750# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
751network={
752 ssid="simple"
753 psk="very secret passphrase"
754 priority=5
755}
756
757# Same as previous, but request SSID-specific scanning (for APs that reject
758# broadcast SSID)
759network={
760 ssid="second ssid"
761 scan_ssid=1
762 psk="very secret passphrase"
763 priority=2
764}
765
766# Only WPA-PSK is used. Any valid cipher combination is accepted.
767network={
768 ssid="example"
769 proto=WPA
770 key_mgmt=WPA-PSK
771 pairwise=CCMP TKIP
772 group=CCMP TKIP WEP104 WEP40
773 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
774 priority=2
775}
776
581a8cde
JM
777# WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying
778network={
779 ssid="example"
780 proto=WPA
781 key_mgmt=WPA-PSK
782 pairwise=TKIP
783 group=TKIP
784 psk="not so secure passphrase"
785 wpa_ptk_rekey=600
786}
787
6fc6879b
JM
788# Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104
789# or WEP40 as the group cipher will not be accepted.
790network={
791 ssid="example"
792 proto=RSN
793 key_mgmt=WPA-EAP
794 pairwise=CCMP TKIP
795 group=CCMP TKIP
796 eap=TLS
797 identity="user@example.com"
798 ca_cert="/etc/cert/ca.pem"
799 client_cert="/etc/cert/user.pem"
800 private_key="/etc/cert/user.prv"
801 private_key_passwd="password"
802 priority=1
803}
804
805# EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel
806# (e.g., Radiator)
807network={
808 ssid="example"
809 key_mgmt=WPA-EAP
810 eap=PEAP
811 identity="user@example.com"
812 password="foobar"
813 ca_cert="/etc/cert/ca.pem"
814 phase1="peaplabel=1"
815 phase2="auth=MSCHAPV2"
816 priority=10
817}
818
819# EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the
820# unencrypted use. Real identity is sent only within an encrypted TLS tunnel.
821network={
822 ssid="example"
823 key_mgmt=WPA-EAP
824 eap=TTLS
825 identity="user@example.com"
826 anonymous_identity="anonymous@example.com"
827 password="foobar"
828 ca_cert="/etc/cert/ca.pem"
829 priority=2
830}
831
832# EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted
833# use. Real identity is sent only within an encrypted TLS tunnel.
834network={
835 ssid="example"
836 key_mgmt=WPA-EAP
837 eap=TTLS
838 identity="user@example.com"
839 anonymous_identity="anonymous@example.com"
840 password="foobar"
841 ca_cert="/etc/cert/ca.pem"
842 phase2="auth=MSCHAPV2"
843}
844
845# WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner
846# authentication.
847network={
848 ssid="example"
849 key_mgmt=WPA-EAP
850 eap=TTLS
851 # Phase1 / outer authentication
852 anonymous_identity="anonymous@example.com"
853 ca_cert="/etc/cert/ca.pem"
854 # Phase 2 / inner authentication
855 phase2="autheap=TLS"
856 ca_cert2="/etc/cert/ca2.pem"
857 client_cert2="/etc/cer/user.pem"
858 private_key2="/etc/cer/user.prv"
859 private_key2_passwd="password"
860 priority=2
861}
862
863# Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and
864# group cipher.
865network={
866 ssid="example"
867 bssid=00:11:22:33:44:55
868 proto=WPA RSN
869 key_mgmt=WPA-PSK WPA-EAP
870 pairwise=CCMP
871 group=CCMP
872 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
873}
874
875# Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP
876# and all valid ciphers.
877network={
878 ssid=00010203
879 psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
880}
881
882
883# EAP-SIM with a GSM SIM or USIM
884network={
885 ssid="eap-sim-test"
886 key_mgmt=WPA-EAP
887 eap=SIM
888 pin="1234"
889 pcsc=""
890}
891
892
893# EAP-PSK
894network={
895 ssid="eap-psk-test"
896 key_mgmt=WPA-EAP
897 eap=PSK
898 anonymous_identity="eap_psk_user"
899 password=06b4be19da289f475aa46a33cb793029
900 identity="eap_psk_user@example.com"
901}
902
903
904# IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using
905# EAP-TLS for authentication and key generation; require both unicast and
906# broadcast WEP keys.
907network={
908 ssid="1x-test"
909 key_mgmt=IEEE8021X
910 eap=TLS
911 identity="user@example.com"
912 ca_cert="/etc/cert/ca.pem"
913 client_cert="/etc/cert/user.pem"
914 private_key="/etc/cert/user.prv"
915 private_key_passwd="password"
916 eapol_flags=3
917}
918
919
920# LEAP with dynamic WEP keys
921network={
922 ssid="leap-example"
923 key_mgmt=IEEE8021X
924 eap=LEAP
925 identity="user"
926 password="foobar"
927}
928
929# EAP-IKEv2 using shared secrets for both server and peer authentication
930network={
931 ssid="ikev2-example"
932 key_mgmt=WPA-EAP
933 eap=IKEV2
934 identity="user"
935 password="foobar"
936}
937
938# EAP-FAST with WPA (WPA or WPA2)
939network={
940 ssid="eap-fast-test"
941 key_mgmt=WPA-EAP
942 eap=FAST
943 anonymous_identity="FAST-000102030405"
944 identity="username"
945 password="password"
946 phase1="fast_provisioning=1"
947 pac_file="/etc/wpa_supplicant.eap-fast-pac"
948}
949
950network={
951 ssid="eap-fast-test"
952 key_mgmt=WPA-EAP
953 eap=FAST
954 anonymous_identity="FAST-000102030405"
955 identity="username"
956 password="password"
957 phase1="fast_provisioning=1"
958 pac_file="blob://eap-fast-pac"
959}
960
961# Plaintext connection (no WPA, no IEEE 802.1X)
962network={
963 ssid="plaintext-test"
964 key_mgmt=NONE
965}
966
967
968# Shared WEP key connection (no WPA, no IEEE 802.1X)
969network={
970 ssid="static-wep-test"
971 key_mgmt=NONE
972 wep_key0="abcde"
973 wep_key1=0102030405
974 wep_key2="1234567890123"
975 wep_tx_keyidx=0
976 priority=5
977}
978
979
980# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
981# IEEE 802.11 authentication
982network={
983 ssid="static-wep-test2"
984 key_mgmt=NONE
985 wep_key0="abcde"
986 wep_key1=0102030405
987 wep_key2="1234567890123"
988 wep_tx_keyidx=0
989 priority=5
990 auth_alg=SHARED
991}
992
993
994# IBSS/ad-hoc network with WPA-None/TKIP.
995network={
996 ssid="test adhoc"
997 mode=1
998 frequency=2412
999 proto=WPA
1000 key_mgmt=WPA-NONE
1001 pairwise=NONE
1002 group=TKIP
1003 psk="secret passphrase"
1004}
1005
1006
1007# Catch all example that allows more or less all configuration modes
1008network={
1009 ssid="example"
1010 scan_ssid=1
1011 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
1012 pairwise=CCMP TKIP
1013 group=CCMP TKIP WEP104 WEP40
1014 psk="very secret passphrase"
1015 eap=TTLS PEAP TLS
1016 identity="user@example.com"
1017 password="foobar"
1018 ca_cert="/etc/cert/ca.pem"
1019 client_cert="/etc/cert/user.pem"
1020 private_key="/etc/cert/user.prv"
1021 private_key_passwd="password"
1022 phase1="peaplabel=0"
1023}
1024
1025# Example of EAP-TLS with smartcard (openssl engine)
1026network={
1027 ssid="example"
1028 key_mgmt=WPA-EAP
1029 eap=TLS
1030 proto=RSN
1031 pairwise=CCMP TKIP
1032 group=CCMP TKIP
1033 identity="user@example.com"
1034 ca_cert="/etc/cert/ca.pem"
1035 client_cert="/etc/cert/user.pem"
1036
1037 engine=1
1038
1039 # The engine configured here must be available. Look at
1040 # OpenSSL engine support in the global section.
1041 # The key available through the engine must be the private key
1042 # matching the client certificate configured above.
1043
1044 # use the opensc engine
1045 #engine_id="opensc"
1046 #key_id="45"
1047
1048 # use the pkcs11 engine
1049 engine_id="pkcs11"
1050 key_id="id_45"
1051
1052 # Optional PIN configuration; this can be left out and PIN will be
1053 # asked through the control interface
1054 pin="1234"
1055}
1056
1057# Example configuration showing how to use an inlined blob as a CA certificate
1058# data instead of using external file
1059network={
1060 ssid="example"
1061 key_mgmt=WPA-EAP
1062 eap=TTLS
1063 identity="user@example.com"
1064 anonymous_identity="anonymous@example.com"
1065 password="foobar"
1066 ca_cert="blob://exampleblob"
1067 priority=20
1068}
1069
1070blob-base64-exampleblob={
1071SGVsbG8gV29ybGQhCg==
1072}
1073
1074
1075# Wildcard match for SSID (plaintext APs only). This example select any
1076# open AP regardless of its SSID.
1077network={
1078 key_mgmt=NONE
1079}