More information about IKEv2 retransmissions added.
[strongswan.git] / man / strongswan.conf.5.in
1 .TH STRONGSWAN.CONF 5 "2010-09-09" "@IPSEC_VERSION@" "strongSwan"
2 .SH NAME
3 strongswan.conf \- strongSwan configuration file
4 .SH DESCRIPTION
5 While the
6 .IR ipsec.conf (5)
7 configuration file is well suited to define IPsec related configuration
8 parameters, it is not useful for other strongSwan applications to read options
9 from this file.
10 The file is hard to parse and only
11 .I ipsec starter
12 is capable of doing so. As the number of components of the strongSwan project
13 is continually growing, a more flexible configuration file was needed, one that
14 is easy to extend and can be used by all components. With strongSwan 4.2.1
15 .IR strongswan.conf (5)
16 was introduced which meets these requirements.
17
18 .SH SYNTAX
19 The format of the strongswan.conf file consists of hierarchical
20 .B sections
21 and a list of
22 .B key/value pairs
23 in each section. Each section has a name, followed by C-Style curly brackets
24 defining the section body. Each section body contains a set of subsections
25 and key/value pairs:
26 .PP
27 .EX
28         settings := (section|keyvalue)*
29         section  := name { settings }
30         keyvalue := key = value\\n
31 .EE
32 .PP
33 Values must be terminated by a newline.
34 .PP
35 Comments are possible using the \fB#\fP-character, but be careful: The parser
36 implementation is currently limited and does not like brackets in comments.
37 .PP
38 Section names and keys may contain any printable character except:
39 .PP
40 .EX
41         . { } # \\n \\t space
42 .EE
43 .PP
44 An example file in this format might look like this:
45 .PP
46 .EX
47         a = b
48         section-one {
49                 somevalue = asdf
50                 subsection {
51                         othervalue = xxx
52                 }
53                 # yei, a comment
54                 yetanother = zz
55         }
56         section-two {
57                 x = 12
58         }
59 .EE
60 .PP
61 Indentation is optional, you may use tabs or spaces.
62
63 .SH READING VALUES
64 Values are accessed using a dot-separated section list and a key.
65 With reference to the example above, accessing
66 .B section-one.subsection.othervalue
67 will return
68 .BR xxx .
69
70 .SH DEFINED KEYS
71 The following keys are currently defines (using dot notation). The default
72 value (if any) is listed in brackets after the key.
73
74 .SS charon section
75 .TP
76 .BR charon.block_threshold " [5]"
77 Maximum number of half-open IKE_SAs for a single peer IP
78 .TP
79 .BR charon.close_ike_on_child_failure " [no]"
80 Close the IKE_SA if setup of the CHILD_SA along with IKE_AUTH failed
81 .TP
82 .BR charon.cookie_threshold " [10]"
83 Number of half-open IKE_SAs that activate the cookie mechanism
84 .TP
85 .BR charon.dns1
86 .TQ
87 .BR charon.dns2
88 DNS servers assigned to peer via configuration payload (CP)
89 .TP
90 .BR charon.dos_protection " [yes]"
91 Enable Denial of Service protection using cookies and aggressiveness checks
92 .TP
93 .BR charon.hash_and_url " [no]"
94 Enable hash and URL support
95 .TP
96 .BR charon.ikesa_table_segments " [1]"
97 Number of exclusively locked segments in the hash table
98 .TP
99 .BR charon.ikesa_table_size " [1]"
100 Size of the IKE_SA hash table
101 .TP
102 .BR charon.inactivity_close_ike " [no]"
103 Whether to close IKE_SA if the only CHILD_SA closed due to inactivity
104 .TP
105 .BR charon.install_routes " [yes]"
106 Install routes into a separate routing table for established IPsec tunnels
107 .TP
108 .BR charon.keep_alive " [20s]"
109 NAT keep alive interval
110 .TP
111 .BR charon.load
112 Plugins to load in IKEv2 charon daemon
113 .TP
114 .BR charon.multiple_authentication " [yes]"
115 Enable multiple authentication exchanges (RFC 4739)
116 .TP
117 .BR charon.nbns1
118 .TQ
119 .BR charon.nbns2
120 WINS servers assigned to peer via configuration payload (CP)
121 .TP
122 .BR charon.process_route " [yes]"
123 Process RTM_NEWROUTE and RTM_DELROUTE events
124 .TP
125 .BR charon.retransmit_base " [1.8]"
126 Base to use for calculating exponential back off, see IKEv2 RETRANSMISSION below
127 .TP
128 .BR charon.retransmit_timeout " [4.0]
129 Timeout in seconds before sending first retransmit
130 .TP
131 .BR charon.retransmit_tries " [5]"
132 Number of times to retransmit a packet before giving up
133 .TP
134 .BR charon.reuse_ikesa " [yes]
135 Initiate CHILD_SA within existing IKE_SAs
136 .TP
137 .BR charon.routing_table
138 Numerical routing table to install routes to
139 .TP
140 .BR charon.routing_table_prio
141 Priority of the routing table
142 .TP
143 .BR charon.send_vendor_id " [no]
144 Send strongSwan vendor ID payload
145 .TP
146 .BR charon.threads " [16]"
147 Number of worker threads in charon
148 .SS charon.plugins subsection
149 .TP
150 .BR charon.plugins.dhcp.identity_lease " [no]"
151 Derive user-defined MAC address from hash of IKEv2 identity
152 .TP
153 .BR charon.plugins.dhcp.server " [255.255.255.255]"
154 DHCP server unicast or broadcast IP address
155 .TP
156 .BR charon.plugins.eap-aka.request_identity " [yes]"
157 .TP
158 .BR charon.plugins.eap-aka-3ggp2.seq_check
159 .TP
160 .BR charon.plugins.eap-gtc.pam_service " [login]"
161 PAM service to be used for authentication
162 .TP
163 .BR charon.plugins.eap-radius.secret
164 Shared secret between RADIUS and NAS
165 .TP
166 .BR charon.plugins.eap-radius.server
167 IP/Hostname of RADIUS server
168 .TP
169 .BR charon.plugins.eap-radius.port " [1812]"
170 Port of RADIUS server (authentication)
171 .TP
172 .BR charon.plugins.eap-radius.sockets " [5]"
173 Number of sockets (ports) to use, increase for high load
174 .TP
175 .BR charon.plugins.eap-radius.nas_identifier " [strongSwan]"
176 NAS-Identifier to include in RADIUS messages
177 .TP
178 .BR charon.plugins.eap-radius.eap_start " [no]"
179 Send EAP-Start instead of EAP-Identity to start RADIUS conversation
180 .TP
181 .BR charon.plugins.eap-radius.id_prefix
182 Prefix to EAP-Identity, some AAA servers use a IMSI prefix to select the EAP method
183 .TP
184 .BR charon.plugins.eap-sim.request_identity " [yes]"
185
186 .TP
187 .BR charon.plugins.eap-tls.fragment_size " [1024]"
188 Maximum size of an EAP-TLS packet
189 .TP
190 .BR charon.plugins.eap-tls.max_message_count " [32]"
191 Maximum number of processed EAP-TLS packets
192 .TP
193 .BR charon.plugins.eap-ttls.fragment_size " [1024]"
194 Maximum size of an EAP-TTLS packet
195 .TP
196 .BR charon.plugins.eap-ttls.max_message_count " [32]"
197 Maximum number of processed EAP-TTLS packets
198 .TP
199 .BR charon.plugins.eap-ttls.phase2_method " [md5]"
200 Phase2 EAP client authentication method
201 .TP
202 .BR charon.plugins.eap-ttls.phase2_piggyback " [no]"
203 Phase2 EAP Identity request piggybacked by server onto TLS Finished message
204 .TP
205 .BR charon.plugins.eap-ttls.request_peer_auth " [no]"
206 Request peer authentication based on a client certificate
207 .TP
208 .BR charon.plugins.ha.fifo_interface " [yes]"
209
210 .TP
211 .BR charon.plugins.ha.local
212
213 .TP
214 .BR charon.plugins.ha.monitor " [yes]"
215
216 .TP
217 .BR charon.plugins.ha.remote
218
219 .TP
220 .BR charon.plugins.ha.resync " [yes]"
221
222 .TP
223 .BR charon.plugins.ha.secret
224
225 .TP
226 .BR charon.plugins.ha.segment_count " [1]"
227
228 .TP
229 .BR charon.plugins.kernel-klips.ipsec_dev_mtu " [0]"
230 Set MTU of ipsecN device
231 .TP
232 .BR charon.plugins.load-tester.enable " [no]"
233 Enable the load testing plugin
234 .TP
235 .BR charon.plugins.load-tester.initiators " [0]"
236 Number of concurrent initiator threads to use in load test
237 .TP
238 .BR charon.plugins.load-tester.iterations " [1]"
239 Number of IKE_SAs to initate to self by each initiator in load test
240 .TP
241 .BR charon.plugins.load-tester.delay " [0]"
242 Delay between initiatons for each thread
243 .TP
244 .BR charon.plugins.load-tester.proposal " [aes128-sha1-modp1024]"
245 IKE proposal to use in load test
246 .TP
247 .BR charon.plugins.load-tester.initiator_auth " [pubkey]"
248 Authentication method(s) the intiator uses
249 .TP
250 .BR charon.plugins.load-tester.responder_auth " [pubkey]"
251 Authentication method(s) the responder uses
252 .TP
253 .BR charon.plugins.load-tester.fake_kernel " [no]"
254 Fake the kernel interface to allow load-testing against self
255 .TP
256 .BR charon.plugins.load-tester.delete_after_established " [no]"
257 Delete an IKE_SA as soon as it has been established
258 .TP
259 .BR charon.plugins.load-tester.request_virtual_ip " [no]"
260 Request an INTERNAL_IPV4_ADDR from the server
261 .TP
262 .BR charon.plugins.load-tester.pool
263 Provide INTERNAL_IPV4_ADDRs from a named pool
264 .TP
265 .BR charon.plugins.load-tester.remote " [127.0.0.1]"
266 Address to initiation connections to
267 .TP
268 .BR charon.plugins.load-tester.ike_rekey " [0]"
269 Seconds to start IKE_SA rekeying after setup
270 .TP
271 .BR charon.plugins.load-tester.child_rekey " [600]"
272 Seconds to start CHILD_SA rekeying after setup
273 .TP
274 .BR charon.plugins.resolve.file " [/etc/resolv.conf]"
275 File where to add DNS server entries
276 .TP
277 .BR charon.plugins.sql.database
278 Database URI for charons SQL plugin
279 .TP
280 .BR charon.plugins.sql.loglevel " [-1]"
281 Loglevel for logging to SQL database
282 .SS libstrongswan section
283 .TP
284 .BR libstrongswan.dh_exponent_ansi_x9_42 " [yes]"
285 Use ANSI X9.42 DH exponent size or optimum size matched to cryptographical strength
286 .TP
287 .BR libstrongswan.crypto_test.on_add " [no]"
288 Test crypto algorithms during registration
289 .TP
290 .BR libstrongswan.crypto_test.on_create " [no]"
291 Test crypto algorithms on each crypto primitive instantiation
292 .TP
293 .BR libstrongswan.crypto_test.required " [no]"
294 Strictly require at least one test vector to enable an algorithm
295 .TP
296 .BR libstrongswan.crypto_test.rng_true " [no]"
297 Whether to test RNG with TRUE quality; requires a lot of entropy
298 .TP
299 .BR libstrongswan.ecp_x_coordinate_only " [yes]"
300 Compliance with the errata for RFC 4753
301 .TP
302 .BR libstrongswan.integrity_test " [no]"
303 Check daemon, libstrongswan and plugin integrity at startup
304 .SS libstrongswan.plugins subsection
305 .TP
306 .BR libstrongswan.plugins.attr-sql.database
307 Database URI for attr-sql plugin used by charon and pluto
308 .TP
309 .BR libstrongswan.plugins.attr-sql.lease_history " [yes]"
310 Enable logging of SQL IP pool leases
311 .TP
312 .BR libstrongswan.plugins.gcrypt.quick_random " [no]"
313 Use faster random numbers in gcrypt; for testing only, produces weak keys!
314 .TP
315 .BR libstrongswan.plugins.openssl.engine_id " [pkcs11]"
316 ENGINE ID to use in the OpenSSL plugin
317 .TP
318 .BR libstrongswan.plugins.x509.enforce_critical " [no]"
319 Discard certificates with unsupported or unknown critical extensions
320 .SS libtls section
321 .TP
322 .BR libtls.cipher
323 List of TLS encryption ciphers
324 .TP
325 .BR libtls.key_exchange
326 List of TLS key exchange methods
327 .TP
328 .BR libtls.mac
329 List of TLS MAC algorithms
330 .SS manager section
331 .TP
332 .BR manager.database
333 Credential database URI for manager
334 .TP
335 .BR manager.debug " [no]"
336 Enable debugging in manager
337 .TP
338 .BR manager.load
339 Plugins to load in manager
340 .TP
341 .BR manager.socket
342 FastCGI socket of manager, to run it statically
343 .TP
344 .BR manager.threads " [10]"
345 Threads to use for request handling
346 .TP
347 .BR manager.timeout " [15m]"
348 Session timeout for manager
349 .SS mediation client section
350 .TP
351 .BR medcli.database
352 Mediation client database URI
353 .TP
354 .BR medcli.dpd " [5m]"
355 DPD timeout to use in mediation client plugin
356 .TP
357 .BR medcli.rekey " [20m]"
358 Rekeying time on mediation connections in mediation client plugin
359 .SS mediation server section
360 .TP
361 .BR medsrv.database
362 Mediation server database URI
363 .TP
364 .BR medsrv.debug " [no]"
365 Debugging in mediation server web application
366 .TP
367 .BR medsrv.dpd " [5m]"
368 DPD timeout to use in mediation server plugin
369 .TP
370 .BR medsrv.load
371 Plugins to load in mediation server plugin
372 .TP
373 .BR medsrv.password_length " [6]"
374 Minimum password length required for mediation server user accounts
375 .TP
376 .BR medsrv.rekey " [20m]"
377 Rekeying time on mediation connections in mediation server plugin
378 .TP
379 .BR medsrv.socket
380 Run Mediation server web application statically on socket
381 .TP
382 .BR medsrv.threads " [5]"
383 Number of thread for mediation service web application
384 .TP
385 .BR medsrv.timeout " [15m]"
386 Session timeout for mediation service
387 .SS openac section
388 .TP
389 .BR openac.load
390 Plugins to load in ipsec openac tool
391 .SS pki section
392 .TP
393 .BR pki.load
394 Plugins to load in ipsec pki tool
395 .SS pluto section
396 .TP
397 .BR pluto.dns1
398 .TQ
399 .BR pluto.dns2
400 DNS servers assigned to peer via configuration payload (CP)
401 .TP
402 .BR pluto.load
403 Plugins to load in IKEv1 pluto daemon
404 .TP
405 .BR pluto.nbns1
406 .TQ
407 .BR pluto.nbns2
408 WINS servers assigned to peer via configuration payload (CP)
409 .SS pool section
410 .TP
411 .BR pool.load
412 Plugins to load in ipsec pool tool
413 .SS scepclient section
414 .TP
415 .BR scepclient.load
416 Plugins to load in ipsec scepclient tool
417 .SS starter section
418 .TP
419 .BR starter.load_warning " [yes]"
420 Disable charon/pluto plugin load option warning
421
422 .SH IKEv2 RETRANSMISSION
423 Retransmission timeouts in the IKEv2 daemon charon can be configured globally
424 using the three keys listed below:
425 .PP
426 .RS
427 .nf
428 .BR charon.retransmit_base " [1.8]"
429 .BR charon.retransmit_timeout " [4.0]"
430 .BR charon.retransmit_tries " [5]"
431 .fi
432 .RE
433 .PP
434 The following algorithm is used to calculate the timeout:
435 .PP
436 .EX
437         relative timeout = retransmit_timeout * retransmit_base ^ (n-1)
438 .EE
439 .PP
440 Where
441 .I n
442 is the current retransmission count.
443 .PP
444 Using the default values, packets are retransmitted in:
445
446 .TS
447 l r r
448 ---
449 lB r r.
450 Retransmission  Relative Timeout        Absolute Timeout
451 1       4s      4s
452 2       7s      11s
453 3       13s     24s
454 4       23s     47s
455 5       42s     89s
456 giving up       76s     165s
457 .TE
458
459 .SH FILES
460 /etc/strongswan.conf
461
462 .SH SEE ALSO
463 ipsec.conf (5), ipsec.secrets (5)
464 .SH HISTORY
465 Written for the
466 .UR http://www.strongswan.org
467 strongSwan project
468 .UE
469 by Tobias Brunner, Andreas Steffen and Martin Willi.