]> git.ipfire.org Git - thirdparty/strongswan.git/blame - conf/options/charon.opt
ike: Optionally allow private algorithms for IKE/CHILD_SAs
[thirdparty/strongswan.git] / conf / options / charon.opt
CommitLineData
5da20b3d
TB
1charon {}
2 Options for the charon IKE daemon.
3
4 Options for the charon IKE daemon.
5
6 **Note**: Many of the options in this section also apply to **charon-cmd**
7 and other **charon** derivatives. Just use their respective name (e.g.
8 **charon-cmd** instead of **charon**). For many options defaults can be
9 defined in the **libstrongswan** section.
10
05e373ae
TE
11charon.accept_private_algs = no
12 Deliberately violate the IKE standard's requirement and allow the use of
13 private algorithm identifiers, even if the peer implementation is unknown.
14
c4c9d291
MW
15charon.accept_unencrypted_mainmode_messages = no
16 Accept unencrypted ID and HASH payloads in IKEv1 Main Mode.
17
18 Accept unencrypted ID and HASH payloads in IKEv1 Main Mode.
19
20 Some implementations send the third Main Mode message unencrypted, probably
21 to find the PSKs for the specified ID for authentication. This is very
22 similar to Aggressive Mode, and has the same security implications: A
23 passive attacker can sniff the negotiated Identity, and start brute forcing
24 the PSK using the HASH payload.
25
26 It is recommended to keep this option to no, unless you know exactly
27 what the implications are and require compatibility to such devices (for
28 example, some SonicWall boxes).
29
5da20b3d
TB
30charon.block_threshold = 5
31 Maximum number of half-open IKE_SAs for a single peer IP.
32
33charon.cert_cache = yes
34 Whether relations in validated certificate chains should be cached in
35 memory.
36
2a2669ee 37charon.cache_crls = no
2db6d5b8 38 Whether Certificate Revocation Lists (CRLs) fetched via HTTP or LDAP should
2a2669ee
AS
39 be saved under a unique file name derived from the public key of the
40 Certification Authority (CA) to **/etc/ipsec.d/crls** (stroke) or
41 **/etc/swanctl/x509crl** (vici), respectively.
42
5da20b3d
TB
43charon.cisco_unity = no
44 Send Cisco Unity vendor ID payload (IKEv1 only).
45
46charon.close_ike_on_child_failure = no
47 Close the IKE_SA if setup of the CHILD_SA along with IKE_AUTH failed.
48
49charon.cookie_threshold = 10
50 Number of half-open IKE_SAs that activate the cookie mechanism.
51
52charon.crypto_test.bench = no
53 Benchmark crypto algorithms and order them by efficiency.
54
55charon.crypto_test.bench_size = 1024
56 Buffer size used for crypto benchmark.
57
58charon.crypto_test.bench_time = 50
a4617539 59 Time in ms during which crypto algorithm performance is measured.
5da20b3d
TB
60
61charon.crypto_test.on_add = no
62 Test crypto algorithms during registration (requires test vectors provided
63 by the _test-vectors_ plugin).
64
65charon.crypto_test.on_create = no
66 Test crypto algorithms on each crypto primitive instantiation.
67
68charon.crypto_test.required = no
69 Strictly require at least one test vector to enable an algorithm.
70
71charon.crypto_test.rng_true = no
72 Whether to test RNG with TRUE quality; requires a lot of entropy.
73
2f3c08d2
TB
74charon.delete_rekeyed = no
75 Delete CHILD_SAs right after they got successfully rekeyed (IKEv1 only).
76
77 Delete CHILD_SAs right after they got successfully rekeyed (IKEv1 only).
78 Reduces the number of stale CHILD_SAs in scenarios with a lot of rekeyings.
79 However, this might cause problems with implementations that continue to
80 use rekeyed SAs until they expire.
81
44107cb7
TB
82charon.delete_rekeyed_delay = 5
83 Delay in seconds until inbound IPsec SAs are deleted after rekeyings (IKEv2
84 only).
85
86 Delay in seconds until inbound IPsec SAs are deleted after rekeyings (IKEv2
87 only). To process delayed packets the inbound part of a CHILD_SA is kept
88 installed up to the configured number of seconds after it got replaced
89 during a rekeying. If set to 0 the CHILD_SA will be kept installed until it
90 expires (if no lifetime is set it will be destroyed immediately).
91
5da20b3d
TB
92charon.dh_exponent_ansi_x9_42 = yes
93 Use ANSI X9.42 DH exponent size or optimum size matched to cryptographic
94 strength.
95
305c4aa8 96charon.dlopen_use_rtld_now = no
50e4aeb2
TB
97 Use RTLD_NOW with dlopen when loading plugins and IMV/IMCs to reveal missing
98 symbols immediately.
305c4aa8 99
5da20b3d
TB
100charon.dns1
101 DNS server assigned to peer via configuration payload (CP).
102
103charon.dns2
104 DNS server assigned to peer via configuration payload (CP).
105
106charon.dos_protection = yes
107 Enable Denial of Service protection using cookies and aggressiveness checks.
108
109charon.ecp_x_coordinate_only = yes
110 Compliance with the errata for RFC 4753.
111
5da20b3d
TB
112charon.flush_auth_cfg = no
113 Free objects during authentication (might conflict with plugins).
114
115 If enabled objects used during authentication (certificates, identities
116 etc.) are released to free memory once an IKE_SA is established. Enabling
117 this might conflict with plugins that later need access to e.g. the used
118 certificates.
119
489d154e
TB
120charon.follow_redirects = yes
121 Whether to follow IKEv2 redirects (RFC 5685).
122
0642f42b 123charon.fragment_size = 1280
9d75a288 124 Maximum size (complete IP datagram size in bytes) of a sent IKE fragment
0642f42b
TB
125 when using proprietary IKEv1 or standardized IKEv2 fragmentation, defaults
126 to 1280 (use 0 for address family specific default values, which uses a
127 lower value for IPv4). If specified this limit is used for both IPv4 and
128 IPv6.
5da20b3d
TB
129
130charon.group
131 Name of the group the daemon changes to after startup.
132
133charon.half_open_timeout = 30
134 Timeout in seconds for connecting IKE_SAs (also see IKE_SA_INIT DROPPING).
135
136charon.hash_and_url = no
137 Enable hash and URL support.
138
139charon.host_resolver.max_threads = 3
140 Maximum number of concurrent resolver threads (they are terminated if
141 unused).
142
143charon.host_resolver.min_threads = 0
144 Minimum number of resolver threads to keep around.
145
146charon.i_dont_care_about_security_and_use_aggressive_mode_psk = no
147 Allow IKEv1 Aggressive Mode with pre-shared keys as responder.
148
149 If enabled responders are allowed to use IKEv1 Aggressive Mode with
150 pre-shared keys, which is discouraged due to security concerns (offline
151 attacks on the openly transmitted hash of the PSK).
152
153charon.ignore_routing_tables
154 A space-separated list of routing tables to be excluded from route lookups.
155
7fa03b30
TB
156charon.ignore_acquire_ts = no
157 Whether to ignore the traffic selectors from the kernel's acquire events for
158 IKEv2 connections (they are not used for IKEv1).
159
160 If this is disabled the traffic selectors from the kernel's acquire events,
161 which are derived from the triggering packet, are prepended to the traffic
162 selectors from the configuration for IKEv2 connection. By enabling this,
163 such specific traffic selectors will be ignored and only the ones in the
164 config will be sent. This always happens for IKEv1 connections as the
165 protocol only supports one set of traffic selectors per CHILD_SA.
166
5da20b3d
TB
167charon.ikesa_limit = 0
168 Maximum number of IKE_SAs that can be established at the same time before
169 new connection attempts are blocked.
170
171charon.ikesa_table_segments = 1
172 Number of exclusively locked segments in the hash table.
173
174charon.ikesa_table_size = 1
175 Size of the IKE_SA hash table.
176
177charon.inactivity_close_ike = no
178 Whether to close IKE_SA if the only CHILD_SA closed due to inactivity.
179
180charon.init_limit_half_open = 0
181 Limit new connections based on the current number of half open IKE_SAs, see
182 IKE_SA_INIT DROPPING in **strongswan.conf**(5).
183
184charon.init_limit_job_load = 0
185 Limit new connections based on the number of queued jobs.
186
187 Limit new connections based on the number of jobs currently queued for
188 processing (see IKE_SA_INIT DROPPING).
189
190charon.initiator_only = no
191 Causes charon daemon to ignore IKE initiation requests.
192
193charon.install_routes = yes
194 Install routes into a separate routing table for established IPsec tunnels.
195
196charon.install_virtual_ip = yes
197 Install virtual IP addresses.
198
199charon.install_virtual_ip_on
200 The name of the interface on which virtual IP addresses should be installed.
201
202 The name of the interface on which virtual IP addresses should be installed.
203 If not specified the addresses will be installed on the outbound interface.
204
205charon.integrity_test = no
206 Check daemon, libstrongswan and plugin integrity at startup.
207
208charon.interfaces_ignore
209 A comma-separated list of network interfaces that should be ignored, if
210 **interfaces_use** is specified this option has no effect.
211
212charon.interfaces_use
213 A comma-separated list of network interfaces that should be used by charon.
214 All other interfaces are ignored.
215
216charon.keep_alive = 20s
217 NAT keep alive interval.
218
219charon.leak_detective.detailed = yes
220 Includes source file names and line numbers in leak detective output.
221
222charon.leak_detective.usage_threshold = 10240
223 Threshold in bytes for leaks to be reported (0 to report all).
224
225charon.leak_detective.usage_threshold_count = 0
226 Threshold in number of allocations for leaks to be reported (0 to report
227 all).
228
229charon.load
230 Plugins to load in the IKE daemon charon.
231
232charon.load_modular = no
233 Determine plugins to load via each plugin's load option.
234
235 If enabled, the list of plugins to load is determined via the value of the
236 _charon.plugins.<name>.load_ options. In addition to a simple boolean flag
237 that option may take an integer value indicating the priority of a plugin,
238 which would influence the order of a plugin in the plugin list (the default
239 is 1). If two plugins have the same priority their order in the default
240 plugin list is preserved. Enabled plugins not found in that list are ordered
241 alphabetically before other plugins with the same priority.
242
0cb8752b
TB
243charon.max_ikev1_exchanges = 3
244 Maximum number of IKEv1 phase 2 exchanges per IKE_SA to keep state about and
245 track concurrently.
246
5da20b3d
TB
247charon.max_packet = 10000
248 Maximum packet size accepted by charon.
249
349f7f24
MW
250charon.make_before_break = no
251 Initiate IKEv2 reauthentication with a make-before-break scheme.
252
253 Initiate IKEv2 reauthentication with a make-before-break instead of a
254 break-before-make scheme. Make-before-break uses overlapping IKE and
255 CHILD_SA during reauthentication by first recreating all new SAs before
256 deleting the old ones. This behavior can be beneficial to avoid connectivity
257 gaps during reauthentication, but requires support for overlapping SAs by
258 the peer. strongSwan can handle such overlapping SAs since version 5.3.0.
259
5da20b3d
TB
260charon.multiple_authentication = yes
261 Enable multiple authentication exchanges (RFC 4739).
262
263charon.nbns1
264 WINS servers assigned to peer via configuration payload (CP).
265
266charon.nbns2
267 WINS servers assigned to peer via configuration payload (CP).
268
269charon.port = 500
270 UDP port used locally. If set to 0 a random port will be allocated.
271
272charon.port_nat_t = 4500
273 UDP port used locally in case of NAT-T. If set to 0 a random port will be
274 allocated. Has to be different from **charon.port**, otherwise a random
275 port will be allocated.
276
597e8c9e 277charon.prefer_best_path = no
ca280574 278 Whether to prefer updating SAs to the path with the best route.
597e8c9e
MW
279
280 By default, charon keeps SAs on the routing path with addresses it
281 previously used if that path is still usable. By setting this option to
282 yes, it tries more aggressively to update SAs with MOBIKE on routing
283 priority changes using the cheapest path. This adds more noise, but allows
284 to dynamically adapt SAs to routing priority changes. This option has no
285 effect if MOBIKE is not supported or disabled.
286
0a954d67
TB
287charon.prefer_configured_proposals = yes
288 Prefer locally configured proposals for IKE/IPsec over supplied ones as
289 responder (disabling this can avoid keying retries due to INVALID_KE_PAYLOAD
290 notifies).
291
3bf98189 292charon.prefer_temporary_addrs = no
9f12b8a6
TB
293 Controls whether permanent or temporary IPv6 addresses are used as source,
294 or announced as additional addresses if MOBIKE is used.
295
296 By default, permanent IPv6 source addresses are preferred over temporary
297 ones (RFC 4941), to make connections more stable. Enable this option to
298 reverse this.
299
300 It also affects which IPv6 addresses are announced as additional addresses
301 if MOBIKE is used. If the option is disabled, only permanent addresses are
302 sent, and only temporary ones if it is enabled.
3bf98189 303
5da20b3d
TB
304charon.process_route = yes
305 Process RTM_NEWROUTE and RTM_DELROUTE events.
306
307charon.processor.priority_threads {}
308 Section to configure the number of reserved threads per priority class
309 see JOB PRIORITY MANAGEMENT in **strongswan.conf**(5).
310
770f4cce
TB
311charon.rdn_matching = strict
312 How RDNs in subject DNs of certificates are matched against configured
313 identities (_strict_, _reordered_, or _relaxed_).
314
315 How RDNs in subject DNs of certificates are matched against configured
316 identities. Possible values are _strict_ (the default), _reordered_, and
317 _relaxed_. With _strict_ the number, type and order of all RDNs has to
318 match, wildcards (*) for the values of RDNs are allowed (that's the case
319 for all three variants). Using _reordered_ also matches DNs if the RDNs
320 appear in a different order, the number and type still has to match.
321 Finally, _relaxed_ also allows matches of DNs that contain more RDNs than
322 the configured identity (missing RDNs are treated like a wildcard match).
323
324 Note that _reordered_ and _relaxed_ impose a considerable overhead on memory
a9fcf280 325 usage and runtime, in particular, for mismatches, compared to _strict_.
770f4cce 326
5da20b3d
TB
327charon.receive_delay = 0
328 Delay in ms for receiving packets, to simulate larger RTT.
329
330charon.receive_delay_response = yes
331 Delay response messages.
332
333charon.receive_delay_request = yes
334 Delay request messages.
335
336charon.receive_delay_type = 0
337 Specific IKEv2 message type to delay, 0 for any.
338
339charon.replay_window = 32
340 Size of the AH/ESP replay window, in packets.
341
342charon.retransmit_base = 1.8
343 Base to use for calculating exponential back off, see IKEv2 RETRANSMISSION
344 in **strongswan.conf**(5).
345
346charon.retransmit_timeout = 4.0
347 Timeout in seconds before sending first retransmit.
348
349charon.retransmit_tries = 5
350 Number of times to retransmit a packet before giving up.
351
389e4b8e
TB
352charon.retransmit_jitter = 0
353 Maximum jitter in percent to apply randomly to calculated retransmission
354 timeout (0 to disable).
355
356charon.retransmit_limit = 0
357 Upper limit in seconds for calculated retransmission timeout (0 to disable).
358
5da20b3d 359charon.retry_initiate_interval = 0
99b1a1a1
TB
360 Interval in seconds to use when retrying to initiate an IKE_SA (e.g. if DNS
361 resolution failed), 0 to disable retries.
5da20b3d
TB
362
363charon.reuse_ikesa = yes
24ab8530 364 Initiate CHILD_SA within existing IKE_SAs (always enabled for IKEv1).
5da20b3d
TB
365
366charon.routing_table
367 Numerical routing table to install routes to.
368
369charon.routing_table_prio
370 Priority of the routing table.
371
6f97c0d5
TB
372charon.rsa_pss = no
373 Whether to use RSA with PSS padding instead of PKCS#1 padding by default.
374
5da20b3d
TB
375charon.send_delay = 0
376 Delay in ms for sending packets, to simulate larger RTT.
377
378charon.send_delay_response = yes
379 Delay response messages.
380
381charon.send_delay_request = yes
382 Delay request messages.
383
384charon.send_delay_type = 0
385 Specific IKEv2 message type to delay, 0 for any.
386
387charon.send_vendor_id = no
388 Send strongSwan vendor ID payload
389
fff3576b
TB
390charon.signature_authentication = yes
391 Whether to enable Signature Authentication as per RFC 7427.
392
b67ae0f8
TB
393charon.signature_authentication_constraints = yes
394 Whether to enable constraints against IKEv2 signature schemes.
395
396 If enabled, signature schemes configured in _rightauth_, in addition to
397 getting used as constraints against signature schemes employed in the
398 certificate chain, are also used as constraints against the signature scheme
399 used by peers during IKEv2.
400
62d43ea6
TB
401charon.spi_label = 0x0000000000000000
402 Value mixed into the local IKE SPIs after applying _spi_mask_.
403
404charon.spi_mask = 0x0000000000000000
405 Mask applied to local IKE SPIs before mixing in _spi_label_ (bits set will
406 be replaced with _spi_label_).
407
6d86d0f5
TB
408charon.spi_min = 0xc0000000
409 The lower limit for SPIs requested from the kernel for IPsec SAs.
410
db12675e
TB
411 The lower limit for SPIs requested from the kernel for IPsec SAs. Should not
412 be set lower than 0x00000100 (256), as SPIs between 1 and 255 are reserved
413 by IANA.
414
6d86d0f5
TB
415charon.spi_max = 0xcfffffff
416 The upper limit for SPIs requested from the kernel for IPsec SAs.
417
da7cb769
TB
418charon.start-scripts {}
419 Section containing a list of scripts (name = path) that are executed when
420 the daemon is started.
421
422charon.stop-scripts {}
423 Section containing a list of scripts (name = path) that are executed when
424 the daemon is terminated.
425
1b98f858 426charon.threads = 16
5da20b3d
TB
427 Number of worker threads in charon.
428
429 Number of worker threads in charon. Several of these are reserved for long
430 running tasks in internal modules and plugins. Therefore, make sure you
431 don't set this value too low. The number of idle worker threads listed in
432 _ipsec statusall_ might be used as indicator on the number of reserved
433 threads.
434
435charon.tls.cipher
436 List of TLS encryption ciphers.
437
438charon.tls.key_exchange
439 List of TLS key exchange methods.
440
441charon.tls.mac
442 List of TLS MAC algorithms.
443
444charon.tls.suites
445 List of TLS cipher suites.
446
447charon.user
448 Name of the user the daemon changes to after startup.
449
450charon.x509.enforce_critical = yes
451 Discard certificates with unsupported or unknown critical extensions.