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. 24update_config=1 25 26# global configuration (shared by all network blocks) 27# 28# Parameters for the control interface. If this is specified, wpa_supplicant 29# will open a control interface that is available for external programs to 30# manage wpa_supplicant. The meaning of this string depends on which control 31# interface mechanism is used. For all cases, the existance of this parameter 32# in configuration is used to determine whether the control interface is 33# enabled. 34# 35# For UNIX domain sockets (default on Linux and BSD): This is a directory that 36# will be created for UNIX domain sockets for listening to requests from 37# external programs (CLI/GUI, etc.) for status information and configuration. 38# The socket file will be named based on the interface name, so multiple 39# wpa_supplicant processes can be run at the same time if more than one 40# interface is used. 41# /var/run/wpa_supplicant is the recommended directory for sockets and by 42# default, wpa_cli will use it when trying to connect with wpa_supplicant. 43# 44# Access control for the control interface can be configured by setting the 45# directory to allow only members of a group to use sockets. This way, it is 46# possible to run wpa_supplicant as root (since it needs to change network 47# configuration and open raw sockets) and still allow GUI/CLI components to be 48# run as non-root users. However, since the control interface can be used to 49# change the network configuration, this access needs to be protected in many 50# cases. By default, wpa_supplicant is configured to use gid 0 (root). If you 51# want to allow non-root users to use the control interface, add a new group 52# and change this value to match with that group. Add users that should have 53# control interface access to this group. If this variable is commented out or 54# not included in the configuration file, group will not be changed from the 55# value it got by default when the directory or socket was created. 56# 57# When configuring both the directory and group, use following format: 58# DIR=/var/run/wpa_supplicant GROUP=wheel 59# DIR=/var/run/wpa_supplicant GROUP=0 60# (group can be either group name or gid) 61# 62# For UDP connections (default on Windows): The value will be ignored. This 63# variable is just used to select that the control interface is to be created. 64# The value can be set to, e.g., udp (ctrl_interface=udp) 65# 66# For Windows Named Pipe: This value can be used to set the security descriptor 67# for controlling access to the control interface. Security descriptor can be 68# set using Security Descriptor String Format (see http://msdn.microsoft.com/ 69# library/default.asp?url=/library/en-us/secauthz/security/ 70# security_descriptor_string_format.asp). The descriptor string needs to be 71# prefixed with SDDL=. For example, ctrl_interface=SDDL=D: would set an empty 72# DACL (which will reject all connections). See README-Windows.txt for more 73# information about SDDL string format. 74# 75ctrl_interface=wlan0 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. 92# 1: wpa_supplicant initiates scanning and AP selection 93# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association 94# parameters (e.g., WPA IE generation); this mode can also be used with 95# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with 96# APs (i.e., external program needs to control association). This mode must 97# also be used when using wired Ethernet drivers. 98# 2: like 0, but associate with APs using security policy and SSID (but not 99# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to 100# enable operation with hidden SSIDs and optimized roaming; in this mode, 101# the network blocks in the configuration file are tried one by one until 102# the driver reports successful association; each network block should have 103# explicit security policy (i.e., only one option in the lists) for 104# key_mgmt, pairwise, group, proto variables 105ap_scan=1 106 107# EAP fast re-authentication 108# By default, fast re-authentication is enabled for all EAP methods that 109# support it. This variable can be used to disable fast re-authentication. 110# Normally, there is no need to disable this. 111fast_reauth=1 112 113# OpenSSL Engine support 114# These options can be used to load OpenSSL engines. 115# The two engines that are supported currently are shown below: 116# They are both from the opensc project (http://www.opensc.org/) 117# By default no engines are loaded. 118# make the opensc engine available 119#opensc_engine_path=/usr/lib/opensc/engine_opensc.so 120# make the pkcs11 engine available 121#pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so 122# configure the path to the pkcs11 module required by the pkcs11 engine 123#pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so 124 125# Dynamic EAP methods 126# If EAP methods were built dynamically as shared object files, they need to be 127# loaded here before being used in the network blocks. By default, EAP methods 128# are included statically in the build, so these lines are not needed 129#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so 130#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so 131 132# Driver interface parameters 133# This field can be used to configure arbitrary driver interace parameters. The 134# format is specific to the selected driver interface. This field is not used 135# in most cases. 136#driver_param="field=value" 137 138# Country code 139# The ISO/IEC alpha2 country code for the country in which this device is 140# currently operating. 141#country=US 142 143# Maximum lifetime for PMKSA in seconds; default 43200 144#dot11RSNAConfigPMKLifetime=43200 145# Threshold for reauthentication (percentage of PMK lifetime); default 70 146#dot11RSNAConfigPMKReauthThreshold=70 147# Timeout for security association negotiation in seconds; default 60 148#dot11RSNAConfigSATimeout=60 149 150# Wi-Fi Protected Setup (WPS) parameters 151 152# Universally Unique IDentifier (UUID; see RFC 4122) of the device 153# If not configured, UUID will be generated based on the local MAC address. 154#uuid=12345678-9abc-def0-1234-56789abcdef0 155 156# Device Name 157# User-friendly description of device; up to 32 octets encoded in UTF-8 158#device_name=Wireless Client 159 160# Manufacturer 161# The manufacturer of the device (up to 64 ASCII characters) 162#manufacturer=Company 163 164# Model Name 165# Model of the device (up to 32 ASCII characters) 166#model_name=cmodel 167 168# Model Number 169# Additional device description (up to 32 ASCII characters) 170#model_number=123 171 172# Serial Number 173# Serial number of the device (up to 32 characters) 174#serial_number=12345 175 176# Primary Device Type 177# Used format: <categ>-<OUI>-<subcateg> 178# categ = Category as an integer value 179# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for 180# default WPS OUI 181# subcateg = OUI-specific Sub Category as an integer value 182# Examples: 183# 1-0050F204-1 (Computer / PC) 184# 1-0050F204-2 (Computer / Server) 185# 5-0050F204-1 (Storage / NAS) 186# 6-0050F204-1 (Network Infrastructure / AP) 187#device_type=1-0050F204-1 188 189# OS Version 190# 4-octet operating system version number (hex string) 191#os_version=01020300 192 193# Credential processing 194# 0 = process received credentials internally (default) 195# 1 = do not process received credentials; just pass them over ctrl_iface to 196# external program(s) 197# 2 = process received credentials internally and pass them over ctrl_iface 198# to external program(s) 199#wps_cred_processing=0 200 201# network block 202# 203# Each network (usually AP's sharing the same SSID) is configured as a separate 204# block in this configuration file. The network blocks are in preference order 205# (the first match is used). 206# 207# network block fields: 208# 209# disabled: 210# 0 = this network can be used (default) 211# 1 = this network block is disabled (can be enabled through ctrl_iface, 212# e.g., with wpa_cli or wpa_gui) 213# 214# id_str: Network identifier string for external scripts. This value is passed 215# to external action script through wpa_cli as WPA_ID_STR environment 216# variable to make it easier to do network specific configuration. 217# 218# ssid: SSID (mandatory); either as an ASCII string with double quotation or 219# as hex string; network name 220# 221# scan_ssid: 222# 0 = do not scan this SSID with specific Probe Request frames (default) 223# 1 = scan with SSID-specific Probe Request frames (this can be used to 224# find APs that do not accept broadcast SSID or use multiple SSIDs; 225# this will add latency to scanning, so enable this only when needed) 226# 227# bssid: BSSID (optional); if set, this network block is used only when 228# associating with the AP using the configured BSSID 229# 230# priority: priority group (integer) 231# By default, all networks will get same priority group (0). If some of the 232# networks are more desirable, this field can be used to change the order in 233# which wpa_supplicant goes through the networks when selecting a BSS. The 234# priority groups will be iterated in decreasing priority (i.e., the larger the 235# priority value, the sooner the network is matched against the scan results). 236# Within each priority group, networks will be selected based on security 237# policy, signal strength, etc. 238# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not 239# using this priority to select the order for scanning. Instead, they try the 240# networks in the order that used in the configuration file. 241# 242# mode: IEEE 802.11 operation mode 243# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default) 244# 1 = IBSS (ad-hoc, peer-to-peer) 245# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP) 246# and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). In addition, ap_scan has 247# to be set to 2 for IBSS. WPA-None requires following network block options: 248# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not 249# both), and psk must also be set. 250# 251# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g., 252# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial 253# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode. 254# In addition, this value is only used by the station that creates the IBSS. If 255# an IBSS network with the configured SSID is already present, the frequency of 256# the network will be used instead of this configured value. 257# 258# proto: list of accepted protocols 259# WPA = WPA/IEEE 802.11i/D3.0 260# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN) 261# If not set, this defaults to: WPA RSN 262# 263# key_mgmt: list of accepted authenticated key management protocols 264# WPA-PSK = WPA pre-shared key (this requires 'psk' field) 265# WPA-EAP = WPA using EAP authentication 266# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically 267# generated WEP keys 268# NONE = WPA is not used; plaintext or static WEP could be used 269# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms 270# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms 271# If not set, this defaults to: WPA-PSK WPA-EAP 272# 273# auth_alg: list of allowed IEEE 802.11 authentication algorithms 274# OPEN = Open System authentication (required for WPA/WPA2) 275# SHARED = Shared Key authentication (requires static WEP keys) 276# LEAP = LEAP/Network EAP (only used with LEAP) 277# If not set, automatic selection is used (Open System with LEAP enabled if 278# LEAP is allowed as one of the EAP methods). 279# 280# pairwise: list of accepted pairwise (unicast) ciphers for WPA 281# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] 282# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] 283# NONE = Use only Group Keys (deprecated, should not be included if APs support 284# pairwise keys) 285# If not set, this defaults to: CCMP TKIP 286# 287# group: list of accepted group (broadcast/multicast) ciphers for WPA 288# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] 289# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] 290# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key 291# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11] 292# If not set, this defaults to: CCMP TKIP WEP104 WEP40 293# 294# psk: WPA preshared key; 256-bit pre-shared key 295# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e., 296# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be 297# generated using the passphrase and SSID). ASCII passphrase must be between 298# 8 and 63 characters (inclusive). 299# This field is not needed, if WPA-EAP is used. 300# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys 301# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant 302# startup and reconfiguration time can be optimized by generating the PSK only 303# only when the passphrase or SSID has actually changed. 304# 305# eapol_flags: IEEE 802.1X/EAPOL options (bit field) 306# Dynamic WEP key required for non-WPA mode 307# bit0 (1): require dynamically generated unicast WEP key 308# bit1 (2): require dynamically generated broadcast WEP key 309# (3 = require both keys; default) 310# Note: When using wired authentication, eapol_flags must be set to 0 for the 311# authentication to be completed successfully. 312# 313# mixed_cell: This option can be used to configure whether so called mixed 314# cells, i.e., networks that use both plaintext and encryption in the same 315# SSID, are allowed when selecting a BSS form scan results. 316# 0 = disabled (default) 317# 1 = enabled 318# 319# proactive_key_caching: 320# Enable/disable opportunistic PMKSA caching for WPA2. 321# 0 = disabled (default) 322# 1 = enabled 323# 324# wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or 325# hex without quotation, e.g., 0102030405) 326# wep_tx_keyidx: Default WEP key index (TX) (0..3) 327# 328# peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is 329# allowed. This is only used with RSN/WPA2. 330# 0 = disabled (default) 331# 1 = enabled 332#peerkey=1 333# 334# wpa_ptk_rekey: Maximum lifetime for PTK in seconds. This can be used to 335# enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies. 336# 337# Following fields are only used with internal EAP implementation. 338# eap: space-separated list of accepted EAP methods 339# MD5 = EAP-MD5 (unsecure and does not generate keying material -> 340# cannot be used with WPA; to be used as a Phase 2 method 341# with EAP-PEAP or EAP-TTLS) 342# MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used 343# as a Phase 2 method with EAP-PEAP or EAP-TTLS) 344# OTP = EAP-OTP (cannot be used separately with WPA; to be used 345# as a Phase 2 method with EAP-PEAP or EAP-TTLS) 346# GTC = EAP-GTC (cannot be used separately with WPA; to be used 347# as a Phase 2 method with EAP-PEAP or EAP-TTLS) 348# TLS = EAP-TLS (client and server certificate) 349# PEAP = EAP-PEAP (with tunnelled EAP authentication) 350# TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2 351# authentication) 352# If not set, all compiled in methods are allowed. 353# 354# identity: Identity string for EAP 355# This field is also used to configure user NAI for 356# EAP-PSK/PAX/SAKE/GPSK. 357# anonymous_identity: Anonymous identity string for EAP (to be used as the 358# unencrypted identity with EAP types that support different tunnelled 359# identity, e.g., EAP-TTLS) 360# password: Password string for EAP. This field can include either the 361# plaintext password (using ASCII or hex string) or a NtPasswordHash 362# (16-byte MD4 hash of password) in hash:<32 hex digits> format. 363# NtPasswordHash can only be used when the password is for MSCHAPv2 or 364# MSCHAP (EAP-MSCHAPv2, EAP-TTLS/MSCHAPv2, EAP-TTLS/MSCHAP, LEAP). 365# EAP-PSK (128-bit PSK), EAP-PAX (128-bit PSK), and EAP-SAKE (256-bit 366# PSK) is also configured using this field. For EAP-GPSK, this is a 367# variable length PSK. 368# ca_cert: File path to CA certificate file (PEM/DER). This file can have one 369# or more trusted CA certificates. If ca_cert and ca_path are not 370# included, server certificate will not be verified. This is insecure and 371# a trusted CA certificate should always be configured when using 372# EAP-TLS/TTLS/PEAP. Full path should be used since working directory may 373# change when wpa_supplicant is run in the background. 374# On Windows, trusted CA certificates can be loaded from the system 375# certificate store by setting this to cert_store://<name>, e.g., 376# ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT". 377# Note that when running wpa_supplicant as an application, the user 378# certificate store (My user account) is used, whereas computer store 379# (Computer account) is used when running wpasvc as a service. 380# ca_path: Directory path for CA certificate files (PEM). This path may 381# contain multiple CA certificates in OpenSSL format. Common use for this 382# is to point to system trusted CA list which is often installed into 383# directory like /etc/ssl/certs. If configured, these certificates are 384# added to the list of trusted CAs. ca_cert may also be included in that 385# case, but it is not required. 386# client_cert: File path to client certificate file (PEM/DER) 387# Full path should be used since working directory may change when 388# wpa_supplicant is run in the background. 389# Alternatively, a named configuration blob can be used by setting this 390# to blob://<blob name>. 391# private_key: File path to client private key file (PEM/DER/PFX) 392# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be 393# commented out. Both the private key and certificate will be read from 394# the PKCS#12 file in this case. Full path should be used since working 395# directory may change when wpa_supplicant is run in the background. 396# Windows certificate store can be used by leaving client_cert out and 397# configuring private_key in one of the following formats: 398# cert://substring_to_match 399# hash://certificate_thumbprint_in_hex 400# for example: private_key="hash://63093aa9c47f56ae88334c7b65a4" 401# Note that when running wpa_supplicant as an application, the user 402# certificate store (My user account) is used, whereas computer store 403# (Computer account) is used when running wpasvc as a service. 404# Alternatively, a named configuration blob can be used by setting this 405# to blob://<blob name>. 406# private_key_passwd: Password for private key file (if left out, this will be 407# asked through control interface) 408# dh_file: File path to DH/DSA parameters file (in PEM format) 409# This is an optional configuration file for setting parameters for an 410# ephemeral DH key exchange. In most cases, the default RSA 411# authentication does not use this configuration. However, it is possible 412# setup RSA to use ephemeral DH key exchange. In addition, ciphers with 413# DSA keys always use ephemeral DH keys. This can be used to achieve 414# forward secrecy. If the file is in DSA parameters format, it will be 415# automatically converted into DH params. 416# subject_match: Substring to be matched against the subject of the 417# authentication server certificate. If this string is set, the server 418# sertificate is only accepted if it contains this string in the subject. 419# The subject string is in following format: 420# /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com 421# altsubject_match: Semicolon separated string of entries to be matched against 422# the alternative subject name of the authentication server certificate. 423# If this string is set, the server sertificate is only accepted if it 424# contains one of the entries in an alternative subject name extension. 425# altSubjectName string is in following format: TYPE:VALUE 426# Example: EMAIL:server@example.com 427# Example: DNS:server.example.com;DNS:server2.example.com 428# Following types are supported: EMAIL, DNS, URI 429# phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters 430# (string with field-value pairs, e.g., "peapver=0" or 431# "peapver=1 peaplabel=1") 432# 'peapver' can be used to force which PEAP version (0 or 1) is used. 433# 'peaplabel=1' can be used to force new label, "client PEAP encryption", 434# to be used during key derivation when PEAPv1 or newer. Most existing 435# PEAPv1 implementation seem to be using the old label, "client EAP 436# encryption", and wpa_supplicant is now using that as the default value. 437# Some servers, e.g., Radiator, may require peaplabel=1 configuration to 438# interoperate with PEAPv1; see eap_testing.txt for more details. 439# 'peap_outer_success=0' can be used to terminate PEAP authentication on 440# tunneled EAP-Success. This is required with some RADIUS servers that 441# implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g., 442# Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode) 443# include_tls_length=1 can be used to force wpa_supplicant to include 444# TLS Message Length field in all TLS messages even if they are not 445# fragmented. 446# sim_min_num_chal=3 can be used to configure EAP-SIM to require three 447# challenges (by default, it accepts 2 or 3) 448# result_ind=1 can be used to enable EAP-SIM and EAP-AKA to use 449# protected result indication. 450# 'crypto_binding' option can be used to control PEAPv0 cryptobinding 451# behavior: 452# * 0 = do not use cryptobinding (default) 453# * 1 = use cryptobinding if server supports it 454# * 2 = require cryptobinding 455# EAP-WSC (WPS) uses following options: pin=<Device Password> or 456# pbc=1. 457# phase2: Phase2 (inner authentication with TLS tunnel) parameters 458# (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or 459# "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS) 460# Following certificate/private key fields are used in inner Phase2 461# authentication when using EAP-TTLS or EAP-PEAP. 462# ca_cert2: File path to CA certificate file. This file can have one or more 463# trusted CA certificates. If ca_cert2 and ca_path2 are not included, 464# server certificate will not be verified. This is insecure and a trusted 465# CA certificate should always be configured. 466# ca_path2: Directory path for CA certificate files (PEM) 467# client_cert2: File path to client certificate file 468# private_key2: File path to client private key file 469# private_key2_passwd: Password for private key file 470# dh_file2: File path to DH/DSA parameters file (in PEM format) 471# subject_match2: Substring to be matched against the subject of the 472# authentication server certificate. 473# altsubject_match2: Substring to be matched against the alternative subject 474# name of the authentication server certificate. 475# 476# fragment_size: Maximum EAP fragment size in bytes (default 1398). 477# This value limits the fragment size for EAP methods that support 478# fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set 479# small enough to make the EAP messages fit in MTU of the network 480# interface used for EAPOL. The default value is suitable for most 481# cases. 482# 483# EAP-FAST variables: 484# pac_file: File path for the PAC entries. wpa_supplicant will need to be able 485# to create this file and write updates to it when PAC is being 486# provisioned or refreshed. Full path to the file should be used since 487# working directory may change when wpa_supplicant is run in the 488# background. Alternatively, a named configuration blob can be used by 489# setting this to blob://<blob name> 490# phase1: fast_provisioning option can be used to enable in-line provisioning 491# of EAP-FAST credentials (PAC): 492# 0 = disabled, 493# 1 = allow unauthenticated provisioning, 494# 2 = allow authenticated provisioning, 495# 3 = allow both unauthenticated and authenticated provisioning 496# fast_max_pac_list_len=<num> option can be used to set the maximum 497# number of PAC entries to store in a PAC list (default: 10) 498# fast_pac_format=binary option can be used to select binary format for 499# storing PAC entries in order to save some space (the default 500# text format uses about 2.5 times the size of minimal binary 501# format) 502# 503# wpa_supplicant supports number of "EAP workarounds" to work around 504# interoperability issues with incorrectly behaving authentication servers. 505# These are enabled by default because some of the issues are present in large 506# number of authentication servers. Strict EAP conformance mode can be 507# configured by disabling workarounds with eap_workaround=0. 508 509# Example blocks: 510 511# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers 512network={ 513 ssid="simple" 514 psk="very secret passphrase" 515 priority=5 516} 517 518# Same as previous, but request SSID-specific scanning (for APs that reject 519# broadcast SSID) 520network={ 521 ssid="second ssid" 522 scan_ssid=1 523 psk="very secret passphrase" 524 priority=2 525} 526 527# Only WPA-PSK is used. Any valid cipher combination is accepted. 528network={ 529 ssid="example" 530 proto=WPA 531 key_mgmt=WPA-PSK 532 pairwise=CCMP TKIP 533 group=CCMP TKIP WEP104 WEP40 534 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb 535 priority=2 536} 537 538# WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying 539network={ 540 ssid="example" 541 proto=WPA 542 key_mgmt=WPA-PSK 543 pairwise=TKIP 544 group=TKIP 545 psk="not so secure passphrase" 546 wpa_ptk_rekey=600 547} 548 549# Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104 550# or WEP40 as the group cipher will not be accepted. 551network={ 552 ssid="example" 553 proto=RSN 554 key_mgmt=WPA-EAP 555 pairwise=CCMP TKIP 556 group=CCMP TKIP 557 eap=TLS 558 identity="user@example.com" 559 ca_cert="/etc/cert/ca.pem" 560 client_cert="/etc/cert/user.pem" 561 private_key="/etc/cert/user.prv" 562 private_key_passwd="password" 563 priority=1 564} 565 566# EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel 567# (e.g., Radiator) 568network={ 569 ssid="example" 570 key_mgmt=WPA-EAP 571 eap=PEAP 572 identity="user@example.com" 573 password="foobar" 574 ca_cert="/etc/cert/ca.pem" 575 phase1="peaplabel=1" 576 phase2="auth=MSCHAPV2" 577 priority=10 578} 579 580# EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the 581# unencrypted use. Real identity is sent only within an encrypted TLS tunnel. 582network={ 583 ssid="example" 584 key_mgmt=WPA-EAP 585 eap=TTLS 586 identity="user@example.com" 587 anonymous_identity="anonymous@example.com" 588 password="foobar" 589 ca_cert="/etc/cert/ca.pem" 590 priority=2 591} 592 593# EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted 594# use. Real identity is sent only within an encrypted TLS tunnel. 595network={ 596 ssid="example" 597 key_mgmt=WPA-EAP 598 eap=TTLS 599 identity="user@example.com" 600 anonymous_identity="anonymous@example.com" 601 password="foobar" 602 ca_cert="/etc/cert/ca.pem" 603 phase2="auth=MSCHAPV2" 604} 605 606# WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner 607# authentication. 608network={ 609 ssid="example" 610 key_mgmt=WPA-EAP 611 eap=TTLS 612 # Phase1 / outer authentication 613 anonymous_identity="anonymous@example.com" 614 ca_cert="/etc/cert/ca.pem" 615 # Phase 2 / inner authentication 616 phase2="autheap=TLS" 617 ca_cert2="/etc/cert/ca2.pem" 618 client_cert2="/etc/cer/user.pem" 619 private_key2="/etc/cer/user.prv" 620 private_key2_passwd="password" 621 priority=2 622} 623 624# Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and 625# group cipher. 626network={ 627 ssid="example" 628 bssid=00:11:22:33:44:55 629 proto=WPA RSN 630 key_mgmt=WPA-PSK WPA-EAP 631 pairwise=CCMP 632 group=CCMP 633 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb 634} 635 636# Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP 637# and all valid ciphers. 638network={ 639 ssid=00010203 640 psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 641} 642 643 644# EAP-SIM with a GSM SIM or USIM 645network={ 646 ssid="eap-sim-test" 647 key_mgmt=WPA-EAP 648 eap=SIM 649 pin="1234" 650 pcsc="" 651} 652 653 654# EAP-PSK 655network={ 656 ssid="eap-psk-test" 657 key_mgmt=WPA-EAP 658 eap=PSK 659 anonymous_identity="eap_psk_user" 660 password=06b4be19da289f475aa46a33cb793029 661 identity="eap_psk_user@example.com" 662} 663 664 665# IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using 666# EAP-TLS for authentication and key generation; require both unicast and 667# broadcast WEP keys. 668network={ 669 ssid="1x-test" 670 key_mgmt=IEEE8021X 671 eap=TLS 672 identity="user@example.com" 673 ca_cert="/etc/cert/ca.pem" 674 client_cert="/etc/cert/user.pem" 675 private_key="/etc/cert/user.prv" 676 private_key_passwd="password" 677 eapol_flags=3 678} 679 680 681# LEAP with dynamic WEP keys 682network={ 683 ssid="leap-example" 684 key_mgmt=IEEE8021X 685 eap=LEAP 686 identity="user" 687 password="foobar" 688} 689 690# EAP-IKEv2 using shared secrets for both server and peer authentication 691network={ 692 ssid="ikev2-example" 693 key_mgmt=WPA-EAP 694 eap=IKEV2 695 identity="user" 696 password="foobar" 697} 698 699# EAP-FAST with WPA (WPA or WPA2) 700network={ 701 ssid="eap-fast-test" 702 key_mgmt=WPA-EAP 703 eap=FAST 704 anonymous_identity="FAST-000102030405" 705 identity="username" 706 password="password" 707 phase1="fast_provisioning=1" 708 pac_file="/etc/wpa_supplicant.eap-fast-pac" 709} 710 711network={ 712 ssid="eap-fast-test" 713 key_mgmt=WPA-EAP 714 eap=FAST 715 anonymous_identity="FAST-000102030405" 716 identity="username" 717 password="password" 718 phase1="fast_provisioning=1" 719 pac_file="blob://eap-fast-pac" 720} 721 722# Plaintext connection (no WPA, no IEEE 802.1X) 723network={ 724 ssid="plaintext-test" 725 key_mgmt=NONE 726} 727 728 729# Shared WEP key connection (no WPA, no IEEE 802.1X) 730network={ 731 ssid="static-wep-test" 732 key_mgmt=NONE 733 wep_key0="abcde" 734 wep_key1=0102030405 735 wep_key2="1234567890123" 736 wep_tx_keyidx=0 737 priority=5 738} 739 740 741# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key 742# IEEE 802.11 authentication 743network={ 744 ssid="static-wep-test2" 745 key_mgmt=NONE 746 wep_key0="abcde" 747 wep_key1=0102030405 748 wep_key2="1234567890123" 749 wep_tx_keyidx=0 750 priority=5 751 auth_alg=SHARED 752} 753 754 755# IBSS/ad-hoc network with WPA-None/TKIP. 756network={ 757 ssid="test adhoc" 758 mode=1 759 frequency=2412 760 proto=WPA 761 key_mgmt=WPA-NONE 762 pairwise=NONE 763 group=TKIP 764 psk="secret passphrase" 765} 766 767 768# Catch all example that allows more or less all configuration modes 769network={ 770 ssid="example" 771 scan_ssid=1 772 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE 773 pairwise=CCMP TKIP 774 group=CCMP TKIP WEP104 WEP40 775 psk="very secret passphrase" 776 eap=TTLS PEAP TLS 777 identity="user@example.com" 778 password="foobar" 779 ca_cert="/etc/cert/ca.pem" 780 client_cert="/etc/cert/user.pem" 781 private_key="/etc/cert/user.prv" 782 private_key_passwd="password" 783 phase1="peaplabel=0" 784} 785 786# Example of EAP-TLS with smartcard (openssl engine) 787network={ 788 ssid="example" 789 key_mgmt=WPA-EAP 790 eap=TLS 791 proto=RSN 792 pairwise=CCMP TKIP 793 group=CCMP TKIP 794 identity="user@example.com" 795 ca_cert="/etc/cert/ca.pem" 796 client_cert="/etc/cert/user.pem" 797 798 engine=1 799 800 # The engine configured here must be available. Look at 801 # OpenSSL engine support in the global section. 802 # The key available through the engine must be the private key 803 # matching the client certificate configured above. 804 805 # use the opensc engine 806 #engine_id="opensc" 807 #key_id="45" 808 809 # use the pkcs11 engine 810 engine_id="pkcs11" 811 key_id="id_45" 812 813 # Optional PIN configuration; this can be left out and PIN will be 814 # asked through the control interface 815 pin="1234" 816} 817 818# Example configuration showing how to use an inlined blob as a CA certificate 819# data instead of using external file 820network={ 821 ssid="example" 822 key_mgmt=WPA-EAP 823 eap=TTLS 824 identity="user@example.com" 825 anonymous_identity="anonymous@example.com" 826 password="foobar" 827 ca_cert="blob://exampleblob" 828 priority=20 829} 830 831blob-base64-exampleblob={ 832SGVsbG8gV29ybGQhCg== 833} 834 835 836# Wildcard match for SSID (plaintext APs only). This example select any 837# open AP regardless of its SSID. 838network={ 839 key_mgmt=NONE 840} 841