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