hostapd.conf revision 1.2 1 1.2 andvar # $NetBSD: hostapd.conf,v 1.2 2025/01/07 18:27:26 andvar Exp $
2 1.1 rpaulo #
3 1.1 rpaulo # hostapd example configuration file (adapted for NetBSD)
4 1.1 rpaulo #
5 1.1 rpaulo # Empty lines and lines starting with # are ignored
6 1.1 rpaulo
7 1.1 rpaulo # Interface name. Should be set in ``hostap'' mode.
8 1.1 rpaulo interface=if0
9 1.1 rpaulo
10 1.1 rpaulo # hostapd event logger configuration
11 1.1 rpaulo #
12 1.1 rpaulo # Two output method: syslog and stdout (only usable if not forking to
13 1.1 rpaulo # background).
14 1.1 rpaulo #
15 1.1 rpaulo # Module bitfield (ORed bitfield of modules that will be logged; -1 = all
16 1.1 rpaulo # modules):
17 1.1 rpaulo # bit 0 (1) = IEEE 802.11
18 1.1 rpaulo # bit 1 (2) = IEEE 802.1X
19 1.1 rpaulo # bit 2 (4) = RADIUS
20 1.1 rpaulo # bit 3 (8) = WPA
21 1.1 rpaulo # bit 4 (16) = driver interface
22 1.1 rpaulo # bit 5 (32) = IAPP
23 1.1 rpaulo #
24 1.1 rpaulo # Levels (minimum value for logged events):
25 1.1 rpaulo # 0 = verbose debugging
26 1.1 rpaulo # 1 = debugging
27 1.1 rpaulo # 2 = informational messages
28 1.1 rpaulo # 3 = notification
29 1.1 rpaulo # 4 = warning
30 1.1 rpaulo #
31 1.1 rpaulo logger_syslog=-1
32 1.1 rpaulo logger_syslog_level=2
33 1.1 rpaulo logger_stdout=-1
34 1.1 rpaulo logger_stdout_level=2
35 1.1 rpaulo
36 1.1 rpaulo # Debugging: 0 = no, 1 = minimal, 2 = verbose, 3 = msg dumps, 4 = excessive
37 1.1 rpaulo debug=0
38 1.1 rpaulo
39 1.1 rpaulo # Dump file for state information (on SIGUSR1)
40 1.1 rpaulo dump_file=/tmp/hostapd.dump
41 1.1 rpaulo
42 1.1 rpaulo # Interface for separate control program. If this is specified, hostapd
43 1.1 rpaulo # will create this directory and a UNIX domain socket for listening to requests
44 1.1 rpaulo # from external programs (CLI/GUI, etc.) for status information and
45 1.1 rpaulo # configuration. The socket file will be named based on the interface name, so
46 1.1 rpaulo # multiple hostapd processes/interfaces can be run at the same time if more
47 1.1 rpaulo # than one interface is used.
48 1.1 rpaulo # /var/run/hostapd is the recommended directory for sockets and by default,
49 1.1 rpaulo # hostapd_cli will use it when trying to connect with hostapd.
50 1.1 rpaulo ctrl_interface=/var/run/hostapd
51 1.1 rpaulo
52 1.1 rpaulo # Access control for the control interface can be configured by setting the
53 1.1 rpaulo # directory to allow only members of a group to use sockets. This way, it is
54 1.1 rpaulo # possible to run hostapd as root (since it needs to change network
55 1.1 rpaulo # configuration and open raw sockets) and still allow GUI/CLI components to be
56 1.1 rpaulo # run as non-root users. However, since the control interface can be used to
57 1.1 rpaulo # change the network configuration, this access needs to be protected in many
58 1.1 rpaulo # cases. By default, hostapd is configured to use gid 0 (root). If you
59 1.2 andvar # want to allow non-root users to use the control interface, add a new group
60 1.1 rpaulo # and change this value to match with that group. Add users that should have
61 1.1 rpaulo # control interface access to this group.
62 1.1 rpaulo #
63 1.1 rpaulo # This variable can be a group name or gid.
64 1.1 rpaulo ctrl_interface_group=wheel
65 1.1 rpaulo
66 1.1 rpaulo
67 1.1 rpaulo ##### IEEE 802.11 related configuration #######################################
68 1.1 rpaulo
69 1.1 rpaulo # SSID to be used in IEEE 802.11 management frames
70 1.1 rpaulo ssid=NetBSD
71 1.1 rpaulo
72 1.1 rpaulo # Station MAC address -based authentication
73 1.1 rpaulo # 0 = accept unless in deny list
74 1.1 rpaulo # 1 = deny unless in accept list
75 1.1 rpaulo # 2 = use external RADIUS server (accept/deny lists are searched first)
76 1.1 rpaulo macaddr_acl=0
77 1.1 rpaulo
78 1.1 rpaulo # Accept/deny lists are read from separate files (containing list of
79 1.1 rpaulo # MAC addresses, one per line). Use absolute path name to make sure that the
80 1.1 rpaulo # files can be read on SIGHUP configuration reloads.
81 1.1 rpaulo #accept_mac_file=/etc/hostapd.accept
82 1.1 rpaulo #deny_mac_file=/etc/hostapd.deny
83 1.1 rpaulo
84 1.1 rpaulo # IEEE 802.11 specifies two authentication algorithms. hostapd can be
85 1.1 rpaulo # configured to allow both of these or only one. Open system authentication
86 1.1 rpaulo # should be used with IEEE 802.1X.
87 1.1 rpaulo # Bit fields of allowed authentication algorithms:
88 1.1 rpaulo # bit 0 = Open System Authentication
89 1.1 rpaulo # bit 1 = Shared Key Authentication (requires WEP)
90 1.1 rpaulo auth_algs=3
91 1.1 rpaulo
92 1.1 rpaulo # Associate as a station to another AP while still acting as an AP on the same
93 1.1 rpaulo # channel.
94 1.1 rpaulo #assoc_ap_addr=00:12:34:56:78:9a
95 1.1 rpaulo
96 1.1 rpaulo
97 1.1 rpaulo ##### IEEE 802.1X-2004 related configuration ##################################
98 1.1 rpaulo
99 1.1 rpaulo # Require IEEE 802.1X authorization
100 1.1 rpaulo #ieee8021x=1
101 1.1 rpaulo
102 1.1 rpaulo # Optional displayable message sent with EAP Request-Identity. The first \0
103 1.1 rpaulo # in this string will be converted to ASCII-0 (nul). This can be used to
104 1.1 rpaulo # separate network info (comma separated list of attribute=value pairs); see,
105 1.1 rpaulo # e.g., draft-adrangi-eap-network-discovery-07.txt.
106 1.1 rpaulo #eap_message=hello
107 1.1 rpaulo #eap_message=hello\0networkid=netw,nasid=foo,portid=0,NAIRealms=example.com
108 1.1 rpaulo
109 1.1 rpaulo # WEP rekeying (disabled if key lengths are not set or are set to 0)
110 1.1 rpaulo # Key lengths for default/broadcast and individual/unicast keys:
111 1.1 rpaulo # 5 = 40-bit WEP (also known as 64-bit WEP with 40 secret bits)
112 1.1 rpaulo # 13 = 104-bit WEP (also known as 128-bit WEP with 104 secret bits)
113 1.1 rpaulo #wep_key_len_broadcast=5
114 1.1 rpaulo #wep_key_len_unicast=5
115 1.1 rpaulo # Rekeying period in seconds. 0 = do not rekey (i.e., set keys only once)
116 1.1 rpaulo #wep_rekey_period=300
117 1.1 rpaulo
118 1.1 rpaulo # EAPOL-Key index workaround (set bit7) for WinXP Supplicant (needed only if
119 1.1 rpaulo # only broadcast keys are used)
120 1.1 rpaulo #eapol_key_index_workaround=0
121 1.1 rpaulo
122 1.1 rpaulo # EAP reauthentication period in seconds (default: 3600 seconds; 0 = disable
123 1.1 rpaulo # reauthentication).
124 1.1 rpaulo #eap_reauth_period=3600
125 1.1 rpaulo
126 1.1 rpaulo # Use PAE group address (01:80:c2:00:00:03) instead of individual target
127 1.1 rpaulo # address when sending EAPOL frames with driver=wired. This is the most common
128 1.1 rpaulo # mechanism used in wired authentication, but it also requires that the port
129 1.1 rpaulo # is only used by one station.
130 1.1 rpaulo #use_pae_group_addr=1
131 1.1 rpaulo
132 1.1 rpaulo ##### Integrated EAP server ###################################################
133 1.1 rpaulo
134 1.1 rpaulo # Optionally, hostapd can be configured to use an integrated EAP server
135 1.1 rpaulo # to process EAP authentication locally without need for an external RADIUS
136 1.1 rpaulo # server. This functionality can be used both as a local authentication server
137 1.1 rpaulo # for IEEE 802.1X/EAPOL and as a RADIUS server for other devices.
138 1.1 rpaulo
139 1.1 rpaulo # Use integrated EAP server instead of external RADIUS authentication
140 1.1 rpaulo # server. This is also needed if hostapd is configured to act as a RADIUS
141 1.1 rpaulo # authentication server.
142 1.1 rpaulo #eap_server=0
143 1.1 rpaulo
144 1.1 rpaulo # Path for EAP server user database
145 1.1 rpaulo #eap_user_file=/etc/hostapd.eap_user
146 1.1 rpaulo
147 1.1 rpaulo # CA certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS
148 1.1 rpaulo #ca_cert=/etc/hostapd.ca.pem
149 1.1 rpaulo
150 1.1 rpaulo # Server certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS
151 1.1 rpaulo #server_cert=/etc/hostapd.server.pem
152 1.1 rpaulo
153 1.1 rpaulo # Private key matching with the server certificate for EAP-TLS/PEAP/TTLS
154 1.1 rpaulo # This may point to the same file as server_cert if both certificate and key
155 1.1 rpaulo # are included in a single file. PKCS#12 (PFX) file (.p12/.pfx) can also be
156 1.1 rpaulo # used by commenting out server_cert and specifying the PFX file as the
157 1.1 rpaulo # private_key.
158 1.1 rpaulo #private_key=/etc/hostapd.server.prv
159 1.1 rpaulo
160 1.1 rpaulo # Passphrase for private key
161 1.1 rpaulo #private_key_passwd=secret passphrase
162 1.1 rpaulo
163 1.1 rpaulo # Enable CRL verification.
164 1.1 rpaulo # Note: hostapd does not yet support CRL downloading based on CDP. Thus, a
165 1.1 rpaulo # valid CRL signed by the CA is required to be included in the ca_cert file.
166 1.1 rpaulo # This can be done by using PEM format for CA certificate and CRL and
167 1.1 rpaulo # concatenating these into one file. Whenever CRL changes, hostapd needs to be
168 1.1 rpaulo # restarted to take the new CRL into use.
169 1.1 rpaulo # 0 = do not verify CRLs (default)
170 1.1 rpaulo # 1 = check the CRL of the user certificate
171 1.1 rpaulo # 2 = check all CRLs in the certificate path
172 1.1 rpaulo #check_crl=1
173 1.1 rpaulo
174 1.1 rpaulo # Configuration data for EAP-SIM database/authentication gateway interface.
175 1.1 rpaulo # This is a text string in implementation specific format. The example
176 1.1 rpaulo # implementation in eap_sim_db.c uses this as the file name for the GSM
177 1.1 rpaulo # authentication triplets.
178 1.1 rpaulo #eap_sim_db=/etc/hostapd.sim_db
179 1.1 rpaulo
180 1.1 rpaulo
181 1.1 rpaulo ##### IEEE 802.11f - Inter-Access Point Protocol (IAPP) #######################
182 1.1 rpaulo
183 1.1 rpaulo # Interface to be used for IAPP broadcast packets
184 1.1 rpaulo #iapp_interface=if1
185 1.1 rpaulo
186 1.1 rpaulo
187 1.1 rpaulo ##### RADIUS client configuration #############################################
188 1.1 rpaulo # for IEEE 802.1X with external Authentication Server, IEEE 802.11
189 1.1 rpaulo # authentication with external ACL for MAC addresses, and accounting
190 1.1 rpaulo
191 1.1 rpaulo # The own IP address of the access point (used as NAS-IP-Address)
192 1.1 rpaulo #own_ip_addr=127.0.0.1
193 1.1 rpaulo
194 1.1 rpaulo # Optional NAS-Identifier string for RADIUS messages. When used, this should be
195 1.1 rpaulo # a unique to the NAS within the scope of the RADIUS server. For example, a
196 1.1 rpaulo # fully qualified domain name can be used here.
197 1.1 rpaulo #nas_identifier=ap.example.com
198 1.1 rpaulo
199 1.1 rpaulo # RADIUS authentication server
200 1.1 rpaulo #auth_server_addr=127.0.0.1
201 1.1 rpaulo #auth_server_port=1812
202 1.1 rpaulo #auth_server_shared_secret=secret
203 1.1 rpaulo
204 1.1 rpaulo # RADIUS accounting server
205 1.1 rpaulo #acct_server_addr=127.0.0.1
206 1.1 rpaulo #acct_server_port=1813
207 1.1 rpaulo #acct_server_shared_secret=secret
208 1.1 rpaulo
209 1.1 rpaulo # Secondary RADIUS servers; to be used if primary one does not reply to
210 1.1 rpaulo # RADIUS packets. These are optional and there can be more than one secondary
211 1.1 rpaulo # server listed.
212 1.1 rpaulo #auth_server_addr=127.0.0.2
213 1.1 rpaulo #auth_server_port=1812
214 1.1 rpaulo #auth_server_shared_secret=secret2
215 1.1 rpaulo #
216 1.1 rpaulo #acct_server_addr=127.0.0.2
217 1.1 rpaulo #acct_server_port=1813
218 1.1 rpaulo #acct_server_shared_secret=secret2
219 1.1 rpaulo
220 1.1 rpaulo # Retry interval for trying to return to the primary RADIUS server (in
221 1.1 rpaulo # seconds). RADIUS client code will automatically try to use the next server
222 1.1 rpaulo # when the current server is not replying to requests. If this interval is set,
223 1.1 rpaulo # primary server will be retried after configured amount of time even if the
224 1.1 rpaulo # currently used secondary server is still working.
225 1.1 rpaulo #radius_retry_primary_interval=600
226 1.1 rpaulo
227 1.1 rpaulo
228 1.1 rpaulo # Interim accounting update interval
229 1.1 rpaulo # If this is set (larger than 0) and acct_server is configured, hostapd will
230 1.1 rpaulo # send interim accounting updates every N seconds. Note: if set, this overrides
231 1.1 rpaulo # possible Acct-Interim-Interval attribute in Access-Accept message. Thus, this
232 1.1 rpaulo # value should not be configured in hostapd.conf, if RADIUS server is used to
233 1.1 rpaulo # control the interim interval.
234 1.1 rpaulo # This value should not be less 600 (10 minutes) and must not be less than
235 1.1 rpaulo # 60 (1 minute).
236 1.1 rpaulo #radius_acct_interim_interval=600
237 1.1 rpaulo
238 1.1 rpaulo
239 1.1 rpaulo ##### RADIUS authentication server configuration ##############################
240 1.1 rpaulo
241 1.1 rpaulo # hostapd can be used as a RADIUS authentication server for other hosts. This
242 1.1 rpaulo # requires that the integrated EAP authenticator is also enabled and both
243 1.1 rpaulo # authentication services are sharing the same configuration.
244 1.1 rpaulo
245 1.1 rpaulo # File name of the RADIUS clients configuration for the RADIUS server. If this
246 1.1 rpaulo # commented out, RADIUS server is disabled.
247 1.1 rpaulo #radius_server_clients=/etc/hostapd.radius_clients
248 1.1 rpaulo
249 1.1 rpaulo # The UDP port number for the RADIUS authentication server
250 1.1 rpaulo #radius_server_auth_port=1812
251 1.1 rpaulo
252 1.1 rpaulo # Use IPv6 with RADIUS server (IPv4 will also be supported using IPv6 API)
253 1.1 rpaulo #radius_server_ipv6=1
254 1.1 rpaulo
255 1.1 rpaulo
256 1.1 rpaulo ##### WPA/IEEE 802.11i configuration ##########################################
257 1.1 rpaulo
258 1.1 rpaulo # Enable WPA. Setting this variable configures the AP to require WPA (either
259 1.1 rpaulo # WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either
260 1.1 rpaulo # wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK.
261 1.1 rpaulo # For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys),
262 1.1 rpaulo # RADIUS authentication server must be configured, and WPA-EAP must be included
263 1.1 rpaulo # in wpa_key_mgmt.
264 1.1 rpaulo # This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0)
265 1.1 rpaulo # and/or WPA2 (full IEEE 802.11i/RSN):
266 1.1 rpaulo # bit0 = WPA
267 1.1 rpaulo # bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled)
268 1.1 rpaulo #wpa=1
269 1.1 rpaulo
270 1.1 rpaulo # WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit
271 1.1 rpaulo # secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase
272 1.1 rpaulo # (8..63 characters) that will be converted to PSK. This conversion uses SSID
273 1.1 rpaulo # so the PSK changes when ASCII passphrase is used and the SSID is changed.
274 1.1 rpaulo # wpa_psk (dot11RSNAConfigPSKValue)
275 1.1 rpaulo # wpa_passphrase (dot11RSNAConfigPSKPassPhrase)
276 1.1 rpaulo #wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
277 1.1 rpaulo #wpa_passphrase=secret passphrase
278 1.1 rpaulo
279 1.1 rpaulo # Optionally, WPA PSKs can be read from a separate text file (containing list
280 1.1 rpaulo # of (PSK,MAC address) pairs. This allows more than one PSK to be configured.
281 1.1 rpaulo # Use absolute path name to make sure that the files can be read on SIGHUP
282 1.1 rpaulo # configuration reloads.
283 1.1 rpaulo #wpa_psk_file=/etc/hostapd.wpa_psk
284 1.1 rpaulo
285 1.1 rpaulo # Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The
286 1.1 rpaulo # entries are separated with a space.
287 1.1 rpaulo # (dot11RSNAConfigAuthenticationSuitesTable)
288 1.1 rpaulo #wpa_key_mgmt=WPA-PSK WPA-EAP
289 1.1 rpaulo
290 1.1 rpaulo # Set of accepted cipher suites (encryption algorithms) for pairwise keys
291 1.1 rpaulo # (unicast packets). This is a space separated list of algorithms:
292 1.1 rpaulo # CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
293 1.1 rpaulo # TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
294 1.1 rpaulo # Group cipher suite (encryption algorithm for broadcast and multicast frames)
295 1.1 rpaulo # is automatically selected based on this configuration. If only CCMP is
296 1.1 rpaulo # allowed as the pairwise cipher, group cipher will also be CCMP. Otherwise,
297 1.1 rpaulo # TKIP will be used as the group cipher.
298 1.1 rpaulo # (dot11RSNAConfigPairwiseCiphersTable)
299 1.1 rpaulo #wpa_pairwise=TKIP CCMP
300 1.1 rpaulo
301 1.1 rpaulo # Time interval for rekeying GTK (broadcast/multicast encryption keys) in
302 1.1 rpaulo # seconds. (dot11RSNAConfigGroupRekeyTime)
303 1.1 rpaulo #wpa_group_rekey=600
304 1.1 rpaulo
305 1.1 rpaulo # Rekey GTK when any STA that possesses the current GTK is leaving the BSS.
306 1.1 rpaulo # (dot11RSNAConfigGroupRekeyStrict)
307 1.1 rpaulo #wpa_strict_rekey=1
308 1.1 rpaulo
309 1.1 rpaulo # Time interval for rekeying GMK (master key used internally to generate GTKs
310 1.1 rpaulo # (in seconds).
311 1.1 rpaulo #wpa_gmk_rekey=86400
312 1.1 rpaulo
313 1.1 rpaulo # Enable IEEE 802.11i/RSN/WPA2 pre-authentication. This is used to speed up
314 1.1 rpaulo # roaming be pre-authenticating IEEE 802.1X/EAP part of the full RSN
315 1.1 rpaulo # authentication and key handshake before actually associating with a new AP.
316 1.1 rpaulo # (dot11RSNAPreauthenticationEnabled)
317 1.1 rpaulo #rsn_preauth=1
318 1.1 rpaulo #
319 1.1 rpaulo # Space separated list of interfaces from which pre-authentication frames are
320 1.1 rpaulo # accepted (e.g., 'eth0' or 'eth0 wlan0wds0'. This list should include all
321 1.1 rpaulo # interface that are used for connections to other APs. This could include
322 1.1 rpaulo # wired interfaces and WDS links. The normal wireless data interface towards
323 1.1 rpaulo # associated stations (e.g., wlan0) should not be added, since
324 1.1 rpaulo # pre-authentication is only used with APs other than the currently associated
325 1.1 rpaulo # one.
326 1.1 rpaulo #rsn_preauth_interfaces=eth0
327