]>
Commit | Line | Data |
---|---|---|
5da20b3d TB |
1 | charon {} |
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 |
11 | charon.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 |
15 | charon.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 |
30 | charon.block_threshold = 5 |
31 | Maximum number of half-open IKE_SAs for a single peer IP. | |
32 | ||
33 | charon.cert_cache = yes | |
34 | Whether relations in validated certificate chains should be cached in | |
35 | memory. | |
36 | ||
2a2669ee | 37 | charon.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 |
43 | charon.cisco_unity = no |
44 | Send Cisco Unity vendor ID payload (IKEv1 only). | |
45 | ||
46 | charon.close_ike_on_child_failure = no | |
47 | Close the IKE_SA if setup of the CHILD_SA along with IKE_AUTH failed. | |
48 | ||
49 | charon.cookie_threshold = 10 | |
50 | Number of half-open IKE_SAs that activate the cookie mechanism. | |
51 | ||
52 | charon.crypto_test.bench = no | |
53 | Benchmark crypto algorithms and order them by efficiency. | |
54 | ||
55 | charon.crypto_test.bench_size = 1024 | |
56 | Buffer size used for crypto benchmark. | |
57 | ||
58 | charon.crypto_test.bench_time = 50 | |
a4617539 | 59 | Time in ms during which crypto algorithm performance is measured. |
5da20b3d TB |
60 | |
61 | charon.crypto_test.on_add = no | |
62 | Test crypto algorithms during registration (requires test vectors provided | |
63 | by the _test-vectors_ plugin). | |
64 | ||
65 | charon.crypto_test.on_create = no | |
66 | Test crypto algorithms on each crypto primitive instantiation. | |
67 | ||
68 | charon.crypto_test.required = no | |
69 | Strictly require at least one test vector to enable an algorithm. | |
70 | ||
71 | charon.crypto_test.rng_true = no | |
72 | Whether to test RNG with TRUE quality; requires a lot of entropy. | |
73 | ||
2f3c08d2 TB |
74 | charon.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 |
82 | charon.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 |
92 | charon.dh_exponent_ansi_x9_42 = yes |
93 | Use ANSI X9.42 DH exponent size or optimum size matched to cryptographic | |
94 | strength. | |
95 | ||
305c4aa8 | 96 | charon.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 |
100 | charon.dns1 |
101 | DNS server assigned to peer via configuration payload (CP). | |
102 | ||
103 | charon.dns2 | |
104 | DNS server assigned to peer via configuration payload (CP). | |
105 | ||
106 | charon.dos_protection = yes | |
107 | Enable Denial of Service protection using cookies and aggressiveness checks. | |
108 | ||
109 | charon.ecp_x_coordinate_only = yes | |
110 | Compliance with the errata for RFC 4753. | |
111 | ||
5da20b3d TB |
112 | charon.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 |
120 | charon.follow_redirects = yes |
121 | Whether to follow IKEv2 redirects (RFC 5685). | |
122 | ||
0642f42b | 123 | charon.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 | |
130 | charon.group | |
131 | Name of the group the daemon changes to after startup. | |
132 | ||
133 | charon.half_open_timeout = 30 | |
134 | Timeout in seconds for connecting IKE_SAs (also see IKE_SA_INIT DROPPING). | |
135 | ||
136 | charon.hash_and_url = no | |
137 | Enable hash and URL support. | |
138 | ||
139 | charon.host_resolver.max_threads = 3 | |
140 | Maximum number of concurrent resolver threads (they are terminated if | |
141 | unused). | |
142 | ||
143 | charon.host_resolver.min_threads = 0 | |
144 | Minimum number of resolver threads to keep around. | |
145 | ||
146 | charon.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 | ||
153 | charon.ignore_routing_tables | |
154 | A space-separated list of routing tables to be excluded from route lookups. | |
155 | ||
7fa03b30 TB |
156 | charon.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 |
167 | charon.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 | ||
171 | charon.ikesa_table_segments = 1 | |
172 | Number of exclusively locked segments in the hash table. | |
173 | ||
174 | charon.ikesa_table_size = 1 | |
175 | Size of the IKE_SA hash table. | |
176 | ||
177 | charon.inactivity_close_ike = no | |
178 | Whether to close IKE_SA if the only CHILD_SA closed due to inactivity. | |
179 | ||
180 | charon.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 | ||
184 | charon.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 | ||
190 | charon.initiator_only = no | |
191 | Causes charon daemon to ignore IKE initiation requests. | |
192 | ||
193 | charon.install_routes = yes | |
194 | Install routes into a separate routing table for established IPsec tunnels. | |
195 | ||
196 | charon.install_virtual_ip = yes | |
197 | Install virtual IP addresses. | |
198 | ||
199 | charon.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 | ||
205 | charon.integrity_test = no | |
206 | Check daemon, libstrongswan and plugin integrity at startup. | |
207 | ||
208 | charon.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 | ||
212 | charon.interfaces_use | |
213 | A comma-separated list of network interfaces that should be used by charon. | |
214 | All other interfaces are ignored. | |
215 | ||
216 | charon.keep_alive = 20s | |
217 | NAT keep alive interval. | |
218 | ||
219 | charon.leak_detective.detailed = yes | |
220 | Includes source file names and line numbers in leak detective output. | |
221 | ||
222 | charon.leak_detective.usage_threshold = 10240 | |
223 | Threshold in bytes for leaks to be reported (0 to report all). | |
224 | ||
225 | charon.leak_detective.usage_threshold_count = 0 | |
226 | Threshold in number of allocations for leaks to be reported (0 to report | |
227 | all). | |
228 | ||
229 | charon.load | |
230 | Plugins to load in the IKE daemon charon. | |
231 | ||
232 | charon.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 |
243 | charon.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 |
247 | charon.max_packet = 10000 |
248 | Maximum packet size accepted by charon. | |
249 | ||
349f7f24 MW |
250 | charon.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 |
260 | charon.multiple_authentication = yes |
261 | Enable multiple authentication exchanges (RFC 4739). | |
262 | ||
263 | charon.nbns1 | |
264 | WINS servers assigned to peer via configuration payload (CP). | |
265 | ||
266 | charon.nbns2 | |
267 | WINS servers assigned to peer via configuration payload (CP). | |
268 | ||
269 | charon.port = 500 | |
270 | UDP port used locally. If set to 0 a random port will be allocated. | |
271 | ||
272 | charon.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 | 277 | charon.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 |
287 | charon.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 | 292 | charon.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 |
304 | charon.process_route = yes |
305 | Process RTM_NEWROUTE and RTM_DELROUTE events. | |
306 | ||
307 | charon.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 |
311 | charon.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 |
327 | charon.receive_delay = 0 |
328 | Delay in ms for receiving packets, to simulate larger RTT. | |
329 | ||
330 | charon.receive_delay_response = yes | |
331 | Delay response messages. | |
332 | ||
333 | charon.receive_delay_request = yes | |
334 | Delay request messages. | |
335 | ||
336 | charon.receive_delay_type = 0 | |
337 | Specific IKEv2 message type to delay, 0 for any. | |
338 | ||
339 | charon.replay_window = 32 | |
340 | Size of the AH/ESP replay window, in packets. | |
341 | ||
342 | charon.retransmit_base = 1.8 | |
343 | Base to use for calculating exponential back off, see IKEv2 RETRANSMISSION | |
344 | in **strongswan.conf**(5). | |
345 | ||
346 | charon.retransmit_timeout = 4.0 | |
347 | Timeout in seconds before sending first retransmit. | |
348 | ||
349 | charon.retransmit_tries = 5 | |
350 | Number of times to retransmit a packet before giving up. | |
351 | ||
389e4b8e TB |
352 | charon.retransmit_jitter = 0 |
353 | Maximum jitter in percent to apply randomly to calculated retransmission | |
354 | timeout (0 to disable). | |
355 | ||
356 | charon.retransmit_limit = 0 | |
357 | Upper limit in seconds for calculated retransmission timeout (0 to disable). | |
358 | ||
5da20b3d | 359 | charon.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 | |
363 | charon.reuse_ikesa = yes | |
24ab8530 | 364 | Initiate CHILD_SA within existing IKE_SAs (always enabled for IKEv1). |
5da20b3d TB |
365 | |
366 | charon.routing_table | |
367 | Numerical routing table to install routes to. | |
368 | ||
369 | charon.routing_table_prio | |
370 | Priority of the routing table. | |
371 | ||
6f97c0d5 TB |
372 | charon.rsa_pss = no |
373 | Whether to use RSA with PSS padding instead of PKCS#1 padding by default. | |
374 | ||
5da20b3d TB |
375 | charon.send_delay = 0 |
376 | Delay in ms for sending packets, to simulate larger RTT. | |
377 | ||
378 | charon.send_delay_response = yes | |
379 | Delay response messages. | |
380 | ||
381 | charon.send_delay_request = yes | |
382 | Delay request messages. | |
383 | ||
384 | charon.send_delay_type = 0 | |
385 | Specific IKEv2 message type to delay, 0 for any. | |
386 | ||
387 | charon.send_vendor_id = no | |
388 | Send strongSwan vendor ID payload | |
389 | ||
fff3576b TB |
390 | charon.signature_authentication = yes |
391 | Whether to enable Signature Authentication as per RFC 7427. | |
392 | ||
b67ae0f8 TB |
393 | charon.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 |
401 | charon.spi_label = 0x0000000000000000 |
402 | Value mixed into the local IKE SPIs after applying _spi_mask_. | |
403 | ||
404 | charon.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 |
408 | charon.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 |
415 | charon.spi_max = 0xcfffffff |
416 | The upper limit for SPIs requested from the kernel for IPsec SAs. | |
417 | ||
da7cb769 TB |
418 | charon.start-scripts {} |
419 | Section containing a list of scripts (name = path) that are executed when | |
420 | the daemon is started. | |
421 | ||
422 | charon.stop-scripts {} | |
423 | Section containing a list of scripts (name = path) that are executed when | |
424 | the daemon is terminated. | |
425 | ||
1b98f858 | 426 | charon.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 | ||
435 | charon.tls.cipher | |
436 | List of TLS encryption ciphers. | |
437 | ||
438 | charon.tls.key_exchange | |
439 | List of TLS key exchange methods. | |
440 | ||
441 | charon.tls.mac | |
442 | List of TLS MAC algorithms. | |
443 | ||
444 | charon.tls.suites | |
445 | List of TLS cipher suites. | |
446 | ||
447 | charon.user | |
448 | Name of the user the daemon changes to after startup. | |
449 | ||
450 | charon.x509.enforce_critical = yes | |
451 | Discard certificates with unsupported or unknown critical extensions. |