xref: /freebsd/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 (revision f0a75d274af375d15b97b830966b99a02b7db911)
1.\" Copyright (c) 2005 Sam Leffler <sam@errno.com>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd February 14, 2006
28.Dt WPA_SUPPLICANT.CONF 5
29.Os
30.Sh NAME
31.Nm wpa_supplicant.conf
32.Nd configuration file for
33.Xr wpa_supplicant 8
34.Sh DESCRIPTION
35The
36.Xr wpa_supplicant 8
37utility is an implementation of the WPA Supplicant component,
38i.e., the part that runs in the client stations.
39It implements WPA key negotiation with a WPA Authenticator
40and EAP authentication with Authentication Server using
41configuration information stored in a text file.
42.Pp
43The configuration file consists of optional global parameter
44settings and one or more network blocks, e.g.\&
45one for each used SSID.
46The
47.Xr wpa_supplicant 8
48utility
49will automatically select the best network based on the order of
50the network blocks in the configuration file, network security level
51(WPA/WPA2 is preferred), and signal strength.
52Comments are indicated with the
53.Ql #
54character; all text to the
55end of the line will be ignored.
56.Sh GLOBAL PARAMETERS
57Default parameters used by
58.Xr wpa_supplicant 8
59may be overridden by specifying
60.Pp
61.Dl parameter=value
62.Pp
63in the configuration file (note no spaces are allowed).
64Values with embedded spaces must be enclosed in quote marks.
65.Pp
66The following parameters are recognized:
67.Bl -tag -width indent
68.It Va ctrl_interface
69The pathname of the directory in which
70.Xr wpa_supplicant 8
71creates
72.Ux
73domain socket files for communication
74with frontend programs such as
75.Xr wpa_cli 8 .
76.It Va ctrl_interface_group
77A group name or group ID to use in setting protection on the
78control interface file.
79This can be set to allow non-root users to access the
80control interface files.
81If no group is specified, the group ID of the control interface
82is not modified and will, typically, be the
83group ID of the directory in which the socket is created.
84.It Va eapol_version
85The IEEE 802.1x/EAPOL protocol version to use; either 1 (default) or 2.
86The
87.Xr wpa_supplicant 8
88utility
89is implemented according to IEEE 802-1X-REV-d8 which defines
90EAPOL version to be 2.
91However, some access points do not work when presented with
92this version so by default
93.Xr wpa_supplicant 8
94will announce that it is using EAPOL version 1.
95If version 2 must be announced for correct operation with an
96access point, this value may be set to 2.
97.It Va ap_scan
98Access point scanning and selection control; one of 0, 1 (default), or 2.
99Only setting 1 should be used with the
100.Xr wlan 4
101module; the other settings are for use on other operating systems.
102.It Va fast_reauth
103EAP fast re-authentication; either 1 (default) or 0.
104Control fast re-authentication support in EAP methods that support it.
105.El
106.Sh NETWORK BLOCKS
107Each potential network/access point should have a
108.Dq "network block"
109that describes how to identify it and how to set up security.
110When multiple network blocks are listed in a configuration file,
111the highest priority one is selected for use or, if multiple networks
112with the same priority are identified, the first one listed in the
113configuration file is used.
114.Pp
115A network block description is of the form:
116.Bd -literal -offset indent
117network={
118	parameter=value
119	...
120}
121.Ed
122.Pp
123(note the leading
124.Qq Li "network={"
125may have no spaces).
126The block specification contains one or more parameters
127from the following list:
128.Bl -tag -width indent
129.It Va ssid No (required)
130Network name (as announced by the access point).
131An
132.Tn ASCII
133or hex string enclosed in quotation marks.
134.It Va scan_ssid
135SSID scan technique; 0 (default) or 1.
136Technique 0 scans for the SSID using a broadcast Probe Request
137frame while 1 uses a directed Probe Request frame.
138Access points that cloak themselves by not broadcasting their SSID
139require technique 1, but beware that this scheme can cause scanning
140to take longer to complete.
141.It Va bssid
142Network BSSID (typically the MAC address of the access point).
143.It Va priority
144The priority of a network when selecting among multiple networks;
145a higher value means a network is more desirable.
146By default networks have priority 0.
147When multiple networks with the same priority are considered
148for selection, other information such as security policy and
149signal strength are used to select one.
150.It Va mode
151IEEE 802.11 operation mode; either 0 (infrastructure, default) or 1 (IBSS).
152Note that IBSS (adhoc) mode can only be used with
153.Va key_mgmt
154set to
155.Li NONE
156(plaintext and static WEP).
157.It Va proto
158List of acceptable protocols; one or more of:
159.Li WPA
160(IEEE 802.11i/D3.0)
161and
162.Li RSN
163(IEEE 802.11i).
164.Li WPA2
165is another name for
166.Li RSN .
167If not set this defaults to
168.Qq Li "WPA RSN" .
169.It Va key_mgmt
170List of acceptable key management protocols; one or more of:
171.Li WPA-PSK
172(WPA pre-shared key),
173.Li WPA-EAP
174(WPA using EAP authentication),
175.Li IEEE8021X
176(IEEE 802.1x using EAP authentication and,
177optionally, dynamically generated WEP keys),
178.Li NONE
179(plaintext or static WEP keys).
180If not set this defaults to
181.Qq Li "WPA-PSK WPA-EAP" .
182.It Va auth_alg
183List of allowed IEEE 802.11 authentication algorithms; one or more of:
184.Li OPEN
185(Open System authentication, required for WPA/WPA2),
186.Li SHARED
187(Shared Key authentication),
188.Li LEAP
189(LEAP/Network EAP).
190If not set automatic selection is used (Open System with LEAP
191enabled if LEAP is allowed as one of the EAP methods).
192.It Va pairwise
193List of acceptable pairwise (unicast) ciphers for WPA; one or more of:
194.Li CCMP
195(AES in Counter mode with CBC-MAC, RFC 3610, IEEE 802.11i/D7.0),
196.Li TKIP
197(Temporal Key Integrity Protocol, IEEE 802.11i/D7.0),
198.Li NONE
199(deprecated).
200If not set this defaults to
201.Qq Li "CCMP TKIP" .
202.It Va group
203List of acceptable group (multicast) ciphers for WPA; one or more of:
204.Li CCMP
205(AES in Counter mode with CBC-MAC, RFC 3610, IEEE 802.11i/D7.0),
206.Li TKIP
207(Temporal Key Integrity Protocol, IEEE 802.11i/D7.0),
208.Li WEP104
209(WEP with 104-bit key),
210.Li WEP40
211(WEP with 40-bit key).
212If not set this defaults to
213.Qq Li "CCMP TKIP WEP104 WEP40" .
214.It Va psk
215WPA preshared key used in WPA-PSK mode.
216The key is specified as 64 hex digits or as
217an 8-63 character
218.Tn ASCII
219passphrase.
220.Tn ASCII
221passphrases are dynamically converted to a 256-bit key at runtime
222using the network SSID, or they can be statically converted at
223configuration time using
224the
225.Xr wpa_passphrase 8
226utility.
227.It Va eapol_flags
228Dynamic WEP key usage for non-WPA mode, specified as a bit field.
229Bit 0 (1) forces dynamically generated unicast WEP keys to be used.
230Bit 1 (2) forces dynamically generated broadcast WEP keys to be used.
231By default this is set to 3 (use both).
232.It Va eap
233List of acceptable EAP methods; one or more of:
234.Li MD5
235(EAP-MD5, cannot be used with WPA,
236used only as a Phase 2 method with EAP-PEAP or EAP-TTLS),
237.Li MSCHAPV2
238(EAP-MSCHAPV2, cannot be used with WPA;
239used only as a Phase 2 method with EAP-PEAP or EAP-TTLS),
240.Li OTP
241(EAP-OTP, cannot be used with WPA;
242used only as a Phase 2 metod with EAP-PEAP or EAP-TTLS),
243.Li GTC
244(EAP-GTC, cannot be used with WPA;
245used only as a Phase 2 metod with EAP-PEAP or EAP-TTLS),
246.Li TLS
247(EAP-TLS, client and server certificate),
248.Li PEAP
249(EAP-PEAP, with tunneled EAP authentication),
250.Li TTLS
251(EAP-TTLS, with tunneled EAP or PAP/CHAP/MSCHAP/MSCHAPV2 authentication).
252If not set this defaults to all available methods compiled in to
253.Xr wpa_supplicant 8 .
254Note that by default
255.Xr wpa_supplicant 8
256is compiled with EAP support; see
257.Xr make.conf 5
258for the
259.Va NO_WPA_SUPPLICANT_EAPOL
260configuration variable that can be used to disable EAP support.
261.It Va identity
262Identity string for EAP.
263.It Va anonymous_identity
264Anonymous identity string for EAP (to be used as the unencrypted identity
265with EAP types that support different tunneled identities; e.g.\& EAP-TTLS).
266.It Va password
267Password string for EAP.
268.It Va ca_cert
269Pathname to CA certificate file.
270This file can have one or more trusted CA certificates.
271If
272.Va ca_cert
273is not included, server certificates will not be verified (not recommended).
274.It Va client_cert
275Pathname to client certificate file (PEM/DER).
276.It Va private_key
277Pathname to a client private key file (PEM/DER/PFX).
278When a PKCS#12/PFX file is used, then
279.Va client_cert
280should not be specified as both the private key and certificate will be
281read from PKCS#12 file.
282.It Va private_key_passwd
283Password for any private key file.
284.It Va dh_file
285Pathname to a file holding DH/DSA parameters (in PEM format).
286This file holds parameters for an ephemeral DH key exchange.
287In most cases, the default RSA authentication does not use this configuration.
288However, it is possible to set up RSA to use an ephemeral DH key exchange.
289In addition, ciphers with
290DSA keys always use ephemeral DH keys.
291This can be used to achieve forward secrecy.
292If the
293.Va dh_file
294is in DSA parameters format, it will be automatically converted
295into DH params.
296.It Va subject_match
297Substring to be matched against the subject of the
298authentication server certificate.
299If this string is set, the server
300certificate is only accepted if it contains this string in the subject.
301The subject string is in following format:
302.Pp
303.Dl "/C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com"
304.It Va phase1
305Phase1 (outer authentication, i.e., TLS tunnel) parameters
306(string with field-value pairs, e.g.,
307.Qq Li peapver=0
308or
309.Qq Li "peapver=1 peaplabel=1" ) .
310.Bl -inset
311.It Li peapver
312can be used to force which PEAP version (0 or 1) is used.
313.It Li peaplabel=1
314can be used to force new label,
315.Dq "client PEAP encryption" ,
316to be used during key derivation when PEAPv1 or newer.
317Most existing PEAPv1 implementations seem to be using the old label,
318.Dq Li "client EAP encryption" ,
319and
320.Xr wpa_supplicant 8
321is now using that as the
322default value.
323Some servers, e.g.,
324.Tn Radiator ,
325may require
326.Li peaplabel=1
327configuration to interoperate with PEAPv1; see
328.Pa eap_testing.txt
329for more details.
330.It Li peap_outer_success=0
331can be used to terminate PEAP authentication on
332tunneled EAP-Success.
333This is required with some RADIUS servers that
334implement
335.Pa draft-josefsson-pppext-eap-tls-eap-05.txt
336(e.g.,
337.Tn Lucent NavisRadius v4.4.0
338with PEAP in
339.Dq "IETF Draft 5"
340mode).
341.It Li include_tls_length=1
342can be used to force
343.Xr wpa_supplicant 8
344to include
345TLS Message Length field in all TLS messages even if they are not
346fragmented.
347.It Li sim_min_num_chal=3
348can be used to configure EAP-SIM to require three
349challenges (by default, it accepts 2 or 3)
350.It Li fast_provisioning=1
351option enables in-line provisioning of EAP-FAST
352credentials (PAC).
353.El
354.It Va phase2
355phase2: Phase2 (inner authentication with TLS tunnel) parameters
356(string with field-value pairs, e.g.,
357.Qq Li "auth=MSCHAPV2"
358for EAP-PEAP or
359.Qq Li "autheap=MSCHAPV2 autheap=MD5"
360for EAP-TTLS).
361.It Va ca_cert2
362Like
363.Va ca_cert
364but for EAP inner Phase 2.
365.It Va client_cert2
366Like
367.Va client_cert
368but for EAP inner Phase 2.
369.It Va private_key2
370Like
371.Va private_key
372but for EAP inner Phase 2.
373.It Va private_key2_passwd
374Like
375.Va private_key_passwd
376but for EAP inner Phase 2.
377.It Va dh_file2
378Like
379.Va dh_file
380but for EAP inner Phase 2.
381.It Va subject_match2
382Like
383.Va subject_match
384but for EAP inner Phase 2.
385.It Va eappsk
38616-byte pre-shared key in hex format for use with EAP-PSK.
387.It Va nai
388User NAI for use with EAP-PSK.
389.It Va server_nai
390Authentication Server NAI for use with EAP-PSK.
391.It Va pac_file
392Pathname to the file to use for PAC entries with EAP-FAST.
393The
394.Xr wpa_supplicant 8
395utility
396must be able to create this file and write updates to it when
397PAC is being provisioned or refreshed.
398.It Va eap_workaround
399Enable/disable EAP workarounds for various interoperability issues
400with misbehaving authentication servers.
401By default these workarounds are enabled.
402String EAP conformance can be configured by setting this to 0.
403.El
404.Sh CERTIFICATES
405Some EAP authentication methods require use of certificates.
406EAP-TLS uses both server- and client-side certificates,
407whereas EAP-PEAP and EAP-TTLS only require a server-side certificate.
408When a client certificate is used, a matching private key file must
409also be included in configuration.
410If the private key uses a passphrase, this
411has to be configured in the
412.Nm
413file as
414.Va private_key_passwd .
415.Pp
416The
417.Xr wpa_supplicant 8
418utility
419supports X.509 certificates in PEM and DER formats.
420User certificate and private key can be included in the same file.
421.Pp
422If the user certificate and private key is received in PKCS#12/PFX
423format, they need to be converted to a suitable PEM/DER format for
424use by
425.Xr wpa_supplicant 8 .
426This can be done using the
427.Xr openssl 1
428program, e.g.\& with the following commands:
429.Bd -literal
430# convert client certificate and private key to PEM format
431openssl pkcs12 -in example.pfx -out user.pem -clcerts
432# convert CA certificate (if included in PFX file) to PEM format
433openssl pkcs12 -in example.pfx -out ca.pem -cacerts -nokeys
434.Ed
435.Sh EXAMPLES
436WPA-Personal (PSK) as a home network and WPA-Enterprise with EAP-TLS
437as a work network:
438.Bd -literal
439# allow frontend (e.g., wpa_cli) to be used by all users in 'wheel' group
440ctrl_interface=/var/run/wpa_supplicant
441ctrl_interface_group=wheel
442#
443# home network; allow all valid ciphers
444network={
445        ssid="home"
446        scan_ssid=1
447        key_mgmt=WPA-PSK
448        psk="very secret passphrase"
449}
450#
451# work network; use EAP-TLS with WPA; allow only CCMP and TKIP ciphers
452network={
453        ssid="work"
454        scan_ssid=1
455        key_mgmt=WPA-EAP
456        pairwise=CCMP TKIP
457        group=CCMP TKIP
458        eap=TLS
459        identity="user@example.com"
460        ca_cert="/etc/cert/ca.pem"
461        client_cert="/etc/cert/user.pem"
462        private_key="/etc/cert/user.prv"
463        private_key_passwd="password"
464}
465.Ed
466.Pp
467WPA-RADIUS/EAP-PEAP/MSCHAPv2 with RADIUS servers that use old peaplabel
468(e.g., Funk Odyssey and SBR, Meetinghouse Aegis, Interlink RAD-Series):
469.Bd -literal
470ctrl_interface=/var/run/wpa_supplicant
471ctrl_interface_group=wheel
472network={
473        ssid="example"
474        scan_ssid=1
475        key_mgmt=WPA-EAP
476        eap=PEAP
477        identity="user@example.com"
478        password="foobar"
479        ca_cert="/etc/cert/ca.pem"
480        phase1="peaplabel=0"
481        phase2="auth=MSCHAPV2"
482}
483.Ed
484.Pp
485EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the
486unencrypted use.
487Real identity is sent only within an encrypted TLS tunnel.
488.Bd -literal
489ctrl_interface=/var/run/wpa_supplicant
490ctrl_interface_group=wheel
491network={
492        ssid="example"
493        scan_ssid=1
494        key_mgmt=WPA-EAP
495        eap=TTLS
496        identity="user@example.com"
497        anonymous_identity="anonymous@example.com"
498        password="foobar"
499        ca_cert="/etc/cert/ca.pem"
500        phase2="auth=MD5"
501}
502.Ed
503.Pp
504Traditional WEP configuration with 104 bit key specified in hexadecimal.
505Note the WEP key is not quoted.
506.Bd -literal
507ctrl_interface=/var/run/wpa_supplicant
508ctrl_interface_group=wheel
509network={
510        ssid="example"
511        scan_ssid=1
512        key_mgmt=NONE
513        wep_tx_keyidx=0
514        wep_key0=42FEEDDEAFBABEDEAFBEEFAA55
515}
516.Ed
517.Sh SEE ALSO
518.Xr wpa_cli 8 ,
519.Xr wpa_passphrase 8 ,
520.Xr wpa_supplicant 8
521.Sh HISTORY
522The
523.Nm
524manual page and
525.Xr wpa_supplicant 8
526functionality first appeared in
527.Fx 6.0 .
528.Sh AUTHORS
529This manual page is derived from the
530.Pa README
531and
532.Pa wpa_supplicant.conf
533files in the
534.Nm wpa_supplicant
535distribution provided by
536.An Jouni Malinen Aq jkmaline@cc.hut.fi .
537