~ubuntu-branches/ubuntu/lucid/wpasupplicant/lucid-updates

« back to all changes in this revision

Viewing changes to debian/README.modes

  • Committer: Bazaar Package Importer
  • Author(s): Kel Modderman
  • Date: 2006-10-05 08:04:01 UTC
  • mfrom: (1.1.5 upstream) (3 etch)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20061005080401-r8lqlix4390yos7b
Tags: 0.5.5-2
* Update madwifi headers to latest SVN. (Closes: #388316)
* Remove failed attempt at action locking. [debian/functions.sh,
  debian/wpa_action.sh]
* Add hysteresis checking functions, to avoid "event loops" while
  using wpa-roam. [debian/functions.sh, debian/wpa_action.sh]
* Change of co-maintainer email address.
* Add ishex() function to functions.sh to determine wpa-psk value type in
  plaintext or hex. This effectively eliminates the need for the bogus and
  somewhat confusing wpa-passphrase contruct specific to our scripts and
  allows wpa-psk to work with either a 8 to 63 character long plaintext
  string or 64 character long hex string.
* Adjust README.modes to not refer to the redundant wpa-passphrase stuff.
* Add big fat NOTE about acceptable wpa-psk's to top of example gallery.
* Strip surrounding quotes from wpa-ssid if present, instead of just whining
  about them.
* Update email address in copyright blurb of functions.sh, ifupdown.sh and
  wpa_action.sh.  

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 
14
14
2. Mode #1: Managed Mode
15
15
        - Examples
 
16
        - Table of Common Options
 
17
        - Important Notes About Managed Mode
16
18
        - How It Works
17
 
        - Table of Common Options
18
 
        - Notes About Managed Mode
19
19
 
20
20
3. Mode #2: Roaming Mode
21
21
        - wpa_supplicant.conf
29
29
4. Troubleshooting
30
30
        - Hidden ssids
31
31
 
 
32
5. Security Considerations
 
33
        - Configuration File Permissions
 
34
 
32
35
 
33
36
1. Specifying the wpa_supplicant driver backend
34
37
===============================================
60
63
The Intel Pro Wireless adapters (ipw2100, ipw2200 and ipw3945) all use the
61
64
'wext' backend, unless your kernel is older than 2.6.14.
62
65
 
63
 
Madwifi supports both the 'wext' and 'madwifi' driver backends, but 'wext' is
64
 
preferred.
 
66
Madwifi supports both the 'wext' and 'madwifi' driver backends. 'wext' is
 
67
preferred, however 'madwifi' may work better in some circumstances.
65
68
 
66
69
Ndiswrapper NO LONGER SUPPORTS the 'ndiswrapper' driver backend as of version
67
 
1.16. Therefore, 'wext' must be used unless you use an outdated ndiswrapper
 
70
1.16. Therefore, 'wext' must be used unless you use an antiquated ndiswrapper
68
71
release.
69
72
 
70
73
Set the driver type in the interfaces(5) stanza for your device with the
86
89
Examples
87
90
========
88
91
 
 
92
NOTE: the 'wpa-psk' value is only valid if:
 
93
        1) It is a plaintext (ascii) string between 8 and 63 characters in
 
94
           length
 
95
        2) It is a hexadecimal string of 64 characters
 
96
 
 
97
# Connect to access point of ssid 'NETBEER' with an encryption type of
 
98
# WPA-PSK/WPA2-PSK. It assumes the driver will use the 'wext' driver backend
 
99
# of wpa_supplicant because no wpa-driver option has been specified. 
 
100
# The passphrase is given as a ASCII (plaintext) string. DHCP is used to
 
101
# obtain a network address.
 
102
#
 
103
iface wlan0 inet dhcp
 
104
        wpa-ssid NETBEER
 
105
        # plaintext passphrase
 
106
        wpa-psk PlainTextSecret
 
107
 
89
108
# Connect to access point of ssid 'homezone' with an encryption type of
90
 
# WPA-PSK/WPA2-PSK, using the the 'wext' driver backend of wpa_supplicant 
91
 
# The psk is given as a hexadecimal string, without quotes. DHCP is used to
92
 
# obtain a network address.
 
109
# WPA-PSK/WPA2-PSK, using the 'wext' driver backend of wpa_supplicant.
 
110
# The psk is given as an encoded hexadecimal string. DHCP is used to obtain
 
111
# a network address.
 
112
#
93
113
iface wlan0 inet dhcp
94
114
        wpa-driver wext
95
115
        wpa-ssid homezone
 
116
        # hexadecimal psk is encoded from a plaintext passphrase
96
117
        wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
97
118
 
98
119
# Connect to access point of ssid 'HotSpot1' and bssid of '00:1a:2b:3c:4d:5e'
99
120
# with an encryption type of WPA-PSK/WPA2-PSK, using the the 'madwifi' driver
100
 
# backend of wpa_supplicant. The passphrase is given as a plaintext string,
101
 
# without quotes. A static network address assignment is used.
 
121
# backend of wpa_supplicant. The passphrase is given as a plaintext string.
 
122
# A static network address assignment is used.
 
123
#
102
124
iface ath0 inet static
103
125
        wpa-driver madwifi
104
126
        wpa-ssid HotSpot1
105
127
        wpa-bssid 00:1a:2b:3c:4d:5e
106
 
        wpa-passphrase madhotspot
 
128
        # plaintext passphrase
 
129
        wpa-psk madhotspot
107
130
        wpa-key-mgmt WPA-PSK
108
131
        wpa-pairwise TKIP CCMP
109
132
        wpa-group TKIP CCMP
110
133
        wpa-proto WPA RSN
 
134
        # static ip settings
111
135
        address 192.168.0.100
112
136
        netmask 255.255.255.0
113
137
        network 192.168.0.0
117
141
# User supplied wpa_supplicant.conf is used for eth1. All network information
118
142
# is contained within the user supplied wpa_supplicant.conf. No wpa-driver type
119
143
# is specified, so wext is used. DHCP is used to obtain a network address.
 
144
#
120
145
iface eth1 inet dhcp
121
146
        wpa-conf /path/to/wpa_supplicant.conf
122
147
 
123
 
How It Works
124
 
============
125
 
 
126
 
As mentioned earlier, each wpa_supplicant specific element is prefixed with
127
 
'wpa-'. Each element correlates to a property of wpa_supplicant described in
128
 
the wpa_supplicant.conf(5), wpa_supplicant(8) and wpa_cli(8) manpages. The
129
 
supplicant is launched without any pre-configuration whatsoever, and wpa_cli
130
 
forms a network configuration from the input provided by the 'wpa-*' lines.
131
 
Initially, wpa_supplicant/wpa_cli does not directly set the properties of the
132
 
device (like setting an essid with iwconfig, for example), rather it informs
133
 
the device of what access point is suitable to associate with. Once the device
134
 
has scanned the area, and found that the suitable access point is available for
135
 
use, these properties are set.
136
 
 
137
 
The script that does all the work is located at:
138
 
        
139
 
        /etc/wpa_supplicant/ifupdown.sh
140
 
 
141
 
It is executed by run-parts, which in turn is invoked by ifupdown during the
142
 
'pre-up', 'pre-down' and 'post-down' phases.
143
 
 
144
 
In the 'pre-up' phase, a wpa_supplicant daemon is launched, if wpa-roam is used
145
 
a wpa_cli daemon is lauched and then there is a series of wpa_cli commands that
146
 
set up a network configuration according to what 'wpa-' options were used in
147
 
/etc/network/interfaces for the physical device.
148
 
 
149
 
In the 'pre-down' phase, the wpa_cli daemon is killed if it exists.
150
 
 
151
 
In the 'post-down' phase, the wpa_supplicant daemon is killed.
152
 
 
153
148
Table of Common Options
154
149
=======================
155
150
 
156
151
A brief summary of common 'wpa-' options that may be used in the
157
 
/etc/network/interfaces stanza for a wireless device:
 
152
/etc/network/interfaces stanza for a wireless device. See the
 
153
'Important Notes About Managed Mode' section for information about
 
154
valid and invalid 'wpa-' values.
158
155
 
159
156
NOTE: ALL values are CASE SeNsItVe
160
157
 
164
161
wpa-bssid       00:1a:2b:3c:4d:5e       the bssid of your AP
165
162
wpa-psk         0123456789......        your preshared wpa key. Use
166
163
                                        wpa_passphrase(8) to generate your psk
167
 
                                        from a passphrase
168
 
wpa-passphrase  plaintextphrase         plaintext string, which is then
169
 
                                        converted to a  hexadecimal psk via
170
 
                                        wpa_passphrase logic
 
164
                                        from a passphrase and ssid pair
171
165
wpa-key-mgmt    NONE, WPA-PSK, WPA-EAP, list of accepted authenticated key
172
166
                IEEE8021X               management protocols
173
167
wpa-group       CCMP, TKIP, WEP104,     list of accepted group ciphers for WPA
189
183
missing is considered a bug and should be reported as such. Patches are always
190
184
welcome.
191
185
 
192
 
Notes About Managed Mode
193
 
========================
 
186
Important Notes About Managed Mode
 
187
==================================
194
188
 
195
189
Almost all 'wpa-' options require there is at least a ssid specified. Only a
196
190
handful of options have a global effect. These are: 'wpa-ap-scan' and
203
197
that is valid for each option. For example, it assumes that some input is
204
198
plaintext and wraps quotation marks around the input before passing it on
205
199
to wpa_cli, which then adds the input to the network block being formed via
206
 
the wpa_supplicant ctrl_interface socket. This can be a point of confusion, and
207
 
something that has tricked more than a few people in the past. For example:
208
 
 
209
 
        # Invalid, wpa-ssid expects unquoted plaintext ssid's only
210
 
        # If you need to use a hexadecimal ssid, please supply a
211
 
        # wpa_supplicant.conf, and use the 'wpa-conf' option.
212
 
        wpa-ssid "hostpot12345678"
 
200
the wpa_supplicant ctrl_interface socket. Running ifup manually with the 
 
201
'--verbose' option will reveal all of the commands used to form the network
 
202
block via wpa_cli. If the value you used for any wpa-* option in
 
203
/etc/network/interfaces is surrounded by double quotes, than it has been
 
204
assumed to be of "plaintext" or "ascii" type input.
 
205
 
 
206
Some input is assumed to be a hexadecimal string (eg. wpa-wep-key*). The value
 
207
'type' of the wpa-psk option however, is determined via a simple check for more
 
208
than one non hexadecimal character.
 
209
 
 
210
 
 
211
How It Works
 
212
============
 
213
 
 
214
As mentioned earlier, each wpa_supplicant specific element is prefixed with
 
215
'wpa-'. Each element correlates to a property of wpa_supplicant described in
 
216
the wpa_supplicant.conf(5), wpa_supplicant(8) and wpa_cli(8) manpages. The
 
217
supplicant is launched without any pre-configuration whatsoever, and wpa_cli
 
218
forms a network configuration from the input provided by the 'wpa-*' lines.
 
219
Initially, wpa_supplicant/wpa_cli does not directly set the properties of the
 
220
device (like setting an essid with iwconfig, for example), rather it informs
 
221
the device of what access point is suitable to associate with. Once the device
 
222
has scanned the area, and found that the suitable access point is available for
 
223
use, these properties are set.
 
224
 
 
225
The script that does all the work is located at:
213
226
        
214
 
        # Valid, unquoted plaintext string
215
 
        wpa-ssid hostpot12345678
216
 
 
217
 
        # Invalid, wpa-psk expects hexadecimal strings only
218
 
        wpa-psk plaintextpassword
219
 
 
220
 
        # NOTE: wpa-psk will accept a plaintext string enclosed in quotation
221
 
        # marks this is equivalent to the 'wpa-passphrase' option
222
 
        wpa-psk "plaintextpassword"
223
 
 
224
 
        # Invalid, wpa-passphrase accepts only plaintext strings, as it
225
 
        # automatically quotes the input
226
 
        wpa-passphrase "invalidinput"
227
 
 
228
 
        # Valid, unquoted plaintext string
229
 
        wpa-passphrase validinput
 
227
        /etc/wpa_supplicant/ifupdown.sh
 
228
 
 
229
It is executed by run-parts, which in turn is invoked by ifupdown during the
 
230
'pre-up', 'pre-down' and 'post-down' phases.
 
231
 
 
232
In the 'pre-up' phase, a wpa_supplicant daemon is launched followed by a series
 
233
of wpa_cli commands that set up a network configuration according to what
 
234
'wpa-' options were used in /etc/network/interfaces for the physical device.
 
235
 
 
236
If wpa-roam is used, a wpa_cli daemon is lauched in the 'post-up' phase.
 
237
 
 
238
In the 'pre-down' phase, the wpa_cli daemon is killed if it exists.
 
239
 
 
240
In the 'post-down' phase, the wpa_supplicant daemon is killed.
230
241
 
231
242
 
232
243
3. Mode #2: Roaming Mode
248
259
is required to provide a wpa_supplicant.conf. A good starting point is provided
249
260
by an example configuration file:
250
261
 
251
 
cp /usr/share/doc/wpasupplicant/examples/wpa_connect_open_ap.conf \
 
262
cp /usr/share/doc/wpasupplicant/examples/wpa_supplicant.conf.template \
252
263
        /etc/wpa_supplicant/wpa_supplicant.conf
253
264
 
254
265
It is required to edit this configuration file, and add the network blocks for
290
301
/etc/network/interfaces
291
302
=======================
292
303
# the roaming interface MUST use the manual inet method
 
304
# 'allow-hotplug' or 'auto' ensures the daemon starts automatically
 
305
allow-hotplug eth1
293
306
iface eth1 inet manual
294
307
        wpa-driver wext
295
308
        wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
410
423
/etc/network/interfaces with external mapping
411
424
=============================================
412
425
 
 
426
allow-hotplug wlan0
413
427
iface wlan0 inet manual
414
428
        wpa-driver wext
415
429
        wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
486
500
secured networks. In some cases, setting the parameter 'ap_scan=2' in the
487
501
config file, (or using a 'wpa-ap-scan 2' stanza, which is equivalent) can
488
502
greatly help to speed up association.
 
503
 
 
504
 
 
505
5. Security Considerations
 
506
==========================
 
507
 
 
508
Configuration File Permissions
 
509
==============================
 
510
It is important to keep PSK's and other sensitive information concerning your
 
511
network settings private, therefore ensure that important configuration files
 
512
containing such data are only readable by their owner. For example:
 
513
 
 
514
        chmod 0600 /etc/network/interfaces
 
515
        # substitute the path of your wpa_supplicant.conf file
 
516
        chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf
 
517
 
 
518
By default, /etc/network/interfaces is world readable, and thus unsuitable for
 
519
containing secret keys and passwords.