1SWANCTL.CONF(5) strongSwan SWANCTL.CONF(5)
2
3
4
6 swanctl.conf - swanctl configuration file
7
9 swanctl.conf is the configuration file used by the swanctl(8) tool to
10 load configurations and credentials into the strongSwan IKE daemon.
11
12 For a description of the basic file syntax, including number/time for‐
13 mats, or how to reference sections or split the configuration in multi‐
14 ple files by including other files, refer to strongswan.conf(5).
15
16
18 The following settings can be used to configure connections, creden‐
19 tials and pools.
20
21 connections
22 Section defining IKE connection configurations.
23
24 The connections section defines IKE connection configurations,
25 each in its own subsections. In the keyword description below,
26 the connection is named <conn>, but an arbitrary yet unique con‐
27 nection name can be chosen for each connection subsection.
28
29
30 connections.<conn>
31 Section for an IKE connection named <conn>.
32
33
34 connections.<conn>.version [0]
35 IKE major version to use for connection. 1 uses IKEv1 aka
36 ISAKMP, 2 uses IKEv2. A connection using the default of 0 ac‐
37 cepts both IKEv1 and IKEv2 as responder, and initiates the con‐
38 nection actively with IKEv2.
39
40
41 connections.<conn>.local_addrs [%any]
42 Local address(es) to use for IKE communication, comma separated.
43 Takes single IPv4/IPv6 addresses, DNS names, CIDR subnets or IP
44 address ranges.
45
46 As initiator, the first non-range/non-subnet is used to initiate
47 the connection from. As responder, the local destination address
48 must match at least to one of the specified addresses, subnets
49 or ranges.
50
51 If FQDNs are assigned they are resolved every time a configura‐
52 tion lookup is done. If DNS resolution times out, the lookup is
53 delayed for that time.
54
55
56 connections.<conn>.remote_addrs [%any]
57 Remote address(es) to use for IKE communication, comma sepa‐
58 rated. Takes single IPv4/IPv6 addresses, DNS names, CIDR subnets
59 or IP address ranges.
60
61 As initiator, the first non-range/non-subnet is used to initiate
62 the connection to. As responder, the initiator source address
63 must match at least to one of the specified addresses, subnets
64 or ranges.
65
66 If FQDNs are assigned they are resolved every time a configura‐
67 tion lookup is done. If DNS resolution times out, the lookup is
68 delayed for that time.
69
70 To initiate a connection, at least one specific address or DNS
71 name must be specified.
72
73
74 connections.<conn>.local_port [500]
75 Local UDP port for IKE communication. By default the port of the
76 socket backend is used, which is usually 500. If port 500 is
77 used, automatic IKE port floating to port 4500 is used to work
78 around NAT issues.
79
80 Using a non-default local IKE port requires support from the
81 socket backend in use (socket-dynamic).
82
83
84 connections.<conn>.remote_port [500]
85 Remote UDP port for IKE communication. If the default of port
86 500 is used, automatic IKE port floating to port 4500 is used to
87 work around NAT issues.
88
89
90 connections.<conn>.proposals [default]
91 A proposal is a set of algorithms. For non-AEAD algorithms, this
92 includes for IKE an encryption algorithm, an integrity algo‐
93 rithm, a pseudo random function and a Diffie-Hellman group. For
94 AEAD algorithms, instead of encryption and integrity algorithms,
95 a combined algorithm is used.
96
97 In IKEv2, multiple algorithms of the same kind can be specified
98 in a single proposal, from which one gets selected. In IKEv1,
99 only one algorithm per kind is allowed per proposal, more algo‐
100 rithms get implicitly stripped. Use multiple proposals to offer
101 different algorithms combinations in IKEv1.
102
103 Algorithm keywords get separated using dashes. Multiple propos‐
104 als may be separated by commas. The special value default forms
105 a default proposal of supported algorithms considered safe, and
106 is usually a good choice for interoperability.
107
108
109 connections.<conn>.vips []
110 Comma separated list of virtual IPs to request in IKEv2 configu‐
111 ration payloads or IKEv1 Mode Config. The wildcard addresses
112 0.0.0.0 and :: request an arbitrary address, specific addresses
113 may be defined. The responder may return a different address,
114 though, or none at all.
115
116
117 connections.<conn>.aggressive [no]
118 Enables Aggressive Mode instead of Main Mode with Identity Pro‐
119 tection. Aggressive Mode is considered less secure, because the
120 ID and HASH payloads are exchanged unprotected. This allows a
121 passive attacker to snoop peer identities, and even worse, start
122 dictionary attacks on the Preshared Key.
123
124
125 connections.<conn>.pull [yes]
126 If the default of yes is used, Mode Config works in pull mode,
127 where the initiator actively requests a virtual IP. With no,
128 push mode is used, where the responder pushes down a virtual IP
129 to the initiating peer.
130
131 Push mode is currently supported for IKEv1, but not in IKEv2. It
132 is used by a few implementations only, pull mode is recommended.
133
134
135 connections.<conn>.dscp [000000]
136 Differentiated Services Field Codepoint to set on outgoing IKE
137 packets for this connection. The value is a six digit binary en‐
138 coded string specifying the Codepoint to set, as defined in RFC
139 2474.
140
141
142 connections.<conn>.encap [no]
143 To enforce UDP encapsulation of ESP packets, the IKE daemon can
144 fake the NAT detection payloads. This makes the peer believe
145 that NAT takes place on the path, forcing it to encapsulate ESP
146 packets in UDP.
147
148 Usually this is not required, but it can help to work around
149 connectivity issues with too restrictive intermediary firewalls.
150
151
152 connections.<conn>.mobike [yes]
153 Enables MOBIKE on IKEv2 connections. MOBIKE is enabled by de‐
154 fault on IKEv2 connections, and allows mobility of clients and
155 multi-homing on servers by migrating active IPsec tunnels.
156
157 Usually keeping MOBIKE enabled is unproblematic, as it is not
158 used if the peer does not indicate support for it. However, due
159 to the design of MOBIKE, IKEv2 always floats to port 4500 start‐
160 ing from the second exchange. Some implementations don't like
161 this behavior, hence it can be disabled.
162
163
164 connections.<conn>.dpd_delay [0s]
165 Interval to check the liveness of a peer actively using IKEv2
166 INFORMATIONAL exchanges or IKEv1 R_U_THERE messages. Active DPD
167 checking is only enforced if no IKE or ESP/AH packet has been
168 received for the configured DPD delay.
169
170
171 connections.<conn>.dpd_timeout [0s]
172 Charon by default uses the normal retransmission mechanism and
173 timeouts to check the liveness of a peer, as all messages are
174 used for liveness checking. For compatibility reasons, with
175 IKEv1 a custom interval may be specified; this option has no ef‐
176 fect on connections using IKE2.
177
178
179 connections.<conn>.fragmentation [yes]
180 Use IKE fragmentation (proprietary IKEv1 extension or RFC 7383
181 IKEv2 fragmentation). Acceptable values are yes (the
182 default), accept, force and no. If set to yes, and the peer
183 supports it, oversized IKE messages will be sent in fragments.
184 If set to accept, support for fragmentation is announced to the
185 peer but the daemon does not send its own messages in fragments.
186 If set to force (only supported for IKEv1) the initial IKE mes‐
187 sage will already be fragmented if required. Finally, setting
188 the option to no will disable announcing support for this fea‐
189 ture.
190
191 Note that fragmented IKE messages sent by a peer are always ac‐
192 cepted irrespective of the value of this option (even when set
193 to no).
194
195
196
197 connections.<conn>.childless [allow]
198 Use childless IKE_SA initiation (RFC 6023) for IKEv2. Accept‐
199 able values are allow (the default), force and never. If set to
200 allow, responders will accept childless IKE_SAs (as indicated
201 via notify in the IKE_SA_INIT response) while initiators con‐
202 tinue to create regular IKE_SAs with the first CHILD_SA created
203 during IKE_AUTH, unless the IKE_SA is initiated explicitly with‐
204 out any children (which will fail if the responder does not sup‐
205 port or has disabled this extension). If set to force, only
206 childless initiation is accepted and the first CHILD_SA is cre‐
207 ated with a separate CREATE_CHILD_SA exchange (e.g. to use an
208 independent DH exchange for all CHILD_SAs). Finally, setting
209 the option to never disables support for childless IKE_SAs as
210 responder.
211
212
213 connections.<conn>.send_certreq [yes]
214 Send certificate request payloads to offer trusted root CA cer‐
215 tificates to the peer. Certificate requests help the peer to
216 choose an appropriate certificate/private key for authentication
217 and are enabled by default.
218
219 Disabling certificate requests can be useful if too many trusted
220 root CA certificates are installed, as each certificate request
221 increases the size of the initial IKE packets.
222
223
224 connections.<conn>.send_cert [ifasked]
225 Send certificate payloads when using certificate authentication.
226 With the default of ifasked the daemon sends certificate pay‐
227 loads only if certificate requests have been received. never
228 disables sending of certificate payloads altogether, always
229 causes certificate payloads to be sent unconditionally whenever
230 certificate authentication is used.
231
232
233 connections.<conn>.ppk_id []
234 String identifying the Postquantum Preshared Key (PPK) to be
235 used.
236
237
238 connections.<conn>.ppk_required [no]
239 Whether a Postquantum Preshared Key (PPK) is required for this
240 connection.
241
242
243 connections.<conn>.keyingtries [1]
244 Number of retransmission sequences to perform during initial
245 connect. Instead of giving up initiation after the first re‐
246 transmission sequence with the default value of 1, additional
247 sequences may be started according to the configured value. A
248 value of 0 initiates a new sequence until the connection estab‐
249 lishes or fails with a permanent error.
250
251
252 connections.<conn>.unique [no]
253 Connection uniqueness policy to enforce. To avoid multiple con‐
254 nections from the same user, a uniqueness policy can be en‐
255 forced. The value never does never enforce such a policy, even
256 if a peer included INITIAL_CONTACT notification messages,
257 whereas no replaces existing connections for the same identity
258 if a new one has the INITIAL_CONTACT notify. keep rejects new
259 connection attempts if the same user already has an active con‐
260 nection, replace deletes any existing connection if a new one
261 for the same user gets established.
262
263 To compare connections for uniqueness, the remote IKE identity
264 is used. If EAP or XAuth authentication is involved, the
265 EAP-Identity or XAuth username is used to enforce the uniqueness
266 policy instead.
267
268 On initiators this setting specifies whether an INITIAL_CONTACT
269 notify is sent during IKE_AUTH if no existing connection is
270 found with the remote peer (determined by the identities of the
271 first authentication round). Unless set to never the client will
272 send a notify.
273
274
275 connections.<conn>.reauth_time [0s]
276 Time to schedule IKE reauthentication. IKE reauthentication
277 recreates the IKE/ISAKMP SA from scratch and re-evaluates the
278 credentials. In asymmetric configurations (with EAP or configu‐
279 ration payloads) it might not be possible to actively reauthen‐
280 ticate as responder. The IKEv2 reauthentication lifetime negoti‐
281 ation can instruct the client to perform reauthentication.
282
283 Reauthentication is disabled by default. Enabling it usually may
284 lead to small connection interruptions, as strongSwan uses a
285 break-before-make policy with IKEv2 to avoid any conflicts with
286 associated tunnel resources.
287
288
289 connections.<conn>.rekey_time [4h]
290 IKE rekeying refreshes key material using a Diffie-Hellman ex‐
291 change, but does not re-check associated credentials. It is sup‐
292 ported in IKEv2 only, IKEv1 performs a reauthentication proce‐
293 dure instead.
294
295 With the default value IKE rekeying is scheduled every 4 hours,
296 minus the configured rand_time. If a reauth_time is configured,
297 rekey_time defaults to zero disabling rekeying; explicitly set
298 both to enforce rekeying and reauthentication.
299
300
301 connections.<conn>.over_time [10% of rekey_time/reauth_time]
302 Hard IKE_SA lifetime if rekey/reauth does not complete, as time.
303 To avoid having an IKE/ISAKMP kept alive if IKE reauthentication
304 or rekeying fails perpetually, a maximum hard lifetime may be
305 specified. If the IKE_SA fails to rekey or reauthenticate within
306 the specified time, the IKE_SA gets closed.
307
308 In contrast to CHILD_SA rekeying, over_time is relative in time
309 to the rekey_time and reauth_time values, as it applies to both.
310
311 The default is 10% of the longer of rekey_time and reauth_time.
312
313
314
315 connections.<conn>.rand_time [over_time]
316 Time range from which to choose a random value to subtract from
317 rekey/reauth times. To avoid having both peers initiating the
318 rekey/reauth procedure simultaneously, a random time gets sub‐
319 tracted from the rekey/reauth times.
320
321 The default is equal to the configured over_time.
322
323
324
325 connections.<conn>.pools []
326 Comma separated list of named IP pools to allocate virtual IP
327 addresses and other configuration attributes from. Each name
328 references a pool by name from either the pools section or an
329 external pool.
330
331
332 connections.<conn>.if_id_in [0]
333 XFRM interface ID set on inbound policies/SA, can be overridden
334 by child config, see there for details.
335
336 The special value %unique allocates a unique interface ID per
337 IKE_SA, which is inherited by all its CHILD_SAs (unless overrid‐
338 den there), beyond that the value %unique-dir assigns a differ‐
339 ent unique interface ID for each direction (in/out).
340
341
342 connections.<conn>.if_id_out [0]
343 XFRM interface ID set on outbound policies/SA, can be overridden
344 by child config, see there for details.
345
346 The special value %unique allocates a unique interface ID per
347 IKE_SA, which is inherited by all its CHILD_SAs (unless overrid‐
348 den there), beyond that the value %unique-dir assigns a differ‐
349 ent unique interface ID for each direction (in/out).
350
351
352 connections.<conn>.mediation [no]
353 Whether this connection is a mediation connection, that is,
354 whether this connection is used to mediate other connections us‐
355 ing the IKEv2 Mediation Extension. Mediation connections create
356 no CHILD_SA.
357
358
359 connections.<conn>.mediated_by []
360 The name of the connection to mediate this connection through.
361 If given, the connection will be mediated through the named me‐
362 diation connection. The mediation connection must have mediation
363 enabled.
364
365
366 connections.<conn>.mediation_peer []
367 Identity under which the peer is registered at the mediation
368 server, that is, the IKE identity the other end of this connec‐
369 tion uses as its local identity on its connection to the media‐
370 tion server. This is the identity we request the mediation
371 server to mediate us with. Only relevant on connections that set
372 mediated_by. If it is not given, the remote IKE identity of the
373 first authentication round of this connection will be used.
374
375
376 connections.<conn>.local<suffix>
377 Section for a local authentication round. A local authentication
378 round defines the rules how authentication is performed for the
379 local peer. Multiple rounds may be defined to use IKEv2 RFC 4739
380 Multiple Authentication or IKEv1 XAuth.
381
382 Each round is defined in a section having local as prefix, and
383 an optional unique suffix. To define a single authentication
384 round, the suffix may be omitted.
385
386
387 connections.<conn>.local<suffix>.round [0]
388 Optional numeric identifier by which authentication rounds are
389 sorted. If not specified rounds are ordered by their position
390 in the config file/VICI message.
391
392
393 connections.<conn>.local<suffix>.certs []
394 Comma separated list of certificate candidates to use for au‐
395 thentication. The certificates may use a relative path from the
396 swanctl x509 directory or an absolute path.
397
398 The certificate used for authentication is selected based on the
399 received certificate request payloads. If no appropriate CA can
400 be located, the first certificate is used.
401
402
403 connections.<conn>.local<suffix>.cert<suffix> []
404 Section for a certificate candidate to use for authentication.
405 Certificates in certs are transmitted as binary blobs, these
406 sections offer more flexibility.
407
408
409 connections.<conn>.local<suffix>.cert<suffix>.file []
410 Absolute path to the certificate to load. Passed as-is to the
411 daemon, so it must be readable by it.
412
413 Configure either this or handle, but not both, in one section.
414
415
416 connections.<conn>.local<suffix>.cert<suffix>.handle []
417 Hex-encoded CKA_ID of the certificate on a token.
418
419 Configure either this or file, but not both, in one section.
420
421
422 connections.<conn>.local<suffix>.cert<suffix>.slot []
423 Optional slot number of the token that stores the certificate.
424
425
426 connections.<conn>.local<suffix>.cert<suffix>.module []
427 Optional PKCS#11 module name.
428
429
430 connections.<conn>.local<suffix>.pubkeys []
431 Comma separated list of raw public key candidates to use for au‐
432 thentication. The public keys may use a relative path from the
433 swanctl pubkey directory or an absolute path.
434
435 Even though multiple local public keys could be defined in prin‐
436 ciple, only the first public key in the list is used for authen‐
437 tication.
438
439
440 connections.<conn>.local<suffix>.auth [pubkey]
441 Authentication to perform locally. pubkey uses public key au‐
442 thentication using a private key associated to a usable certifi‐
443 cate. psk uses pre-shared key authentication. The IKEv1 spe‐
444 cific xauth is used for XAuth or Hybrid authentication, while
445 the IKEv2 specific eap keyword defines EAP authentication.
446
447 For xauth, a specific backend name may be appended, separated by
448 a dash. The appropriate xauth backend is selected to perform the
449 XAuth exchange. For traditional XAuth, the xauth method is usu‐
450 ally defined in the second authentication round following an
451 initial pubkey (or psk) round. Using xauth in the first round
452 performs Hybrid Mode client authentication.
453
454 For eap, a specific EAP method name may be appended, separated
455 by a dash. An EAP module implementing the appropriate method is
456 selected to perform the EAP conversation.
457
458 If both peers support RFC 7427 ("Signature Authentication in
459 IKEv2") specific hash algorithms to be used during IKEv2 authen‐
460 tication may be configured. To do so use ike: followed by a
461 trust chain signature scheme constraint (see description of the
462 remote section's auth keyword). For example, with ike:pub‐
463 key-sha384-sha256 a public key signature scheme with either
464 SHA-384 or SHA-256 would get used for authentication, in that
465 order and depending on the hash algorithms supported by the
466 peer. If no specific hash algorithms are configured, the default
467 is to prefer an algorithm that matches or exceeds the strength
468 of the signature key. If no constraints with ike: prefix are
469 configured any signature scheme constraint (without ike: prefix)
470 will also apply to IKEv2 authentication, unless this is disabled
471 in strongswan.conf(5). To use RSASSA-PSS signatures use rsa/pss
472 instead of pubkey or rsa as in e.g. ike:rsa/pss-sha256. If
473 pubkey or rsa constraints are configured RSASSA-PSS signatures
474 will only be used if enabled in strongswan.conf(5).
475
476
477
478 connections.<conn>.local<suffix>.id []
479 IKE identity to use for authentication round. When using cer‐
480 tificate authentication, the IKE identity must be contained in
481 the certificate, either as subject or as subjectAltName.
482
483 The identity can be an IP address, a fully-qualified domain
484 name, an email address or a Distinguished Name for which the ID
485 type is determined automatically and the string is converted to
486 the appropriate encoding. To enforce a specific identity type, a
487 prefix may be used, followed by a colon (:). If the number sign
488 (#) follows the colon, the remaining data is interpreted as hex
489 encoding, otherwise the string is used as-is as the identifica‐
490 tion data. Note that this implies that no conversion is per‐
491 formed for non-string identities. For example, ipv4:10.0.0.1
492 does not create a valid ID_IPV4_ADDR IKE identity, as it does
493 not get converted to binary 0x0a000001. Instead, one could use
494 ipv4:#0a000001 to get a valid identity, but just using the im‐
495 plicit type with automatic conversion is usually simpler. The
496 same applies to the ASN1 encoded types. The following prefixes
497 are known: ipv4, ipv6, rfc822, email, userfqdn, fqdn, dns,
498 asn1dn, asn1gn and keyid. Custom type prefixes may be specified
499 by surrounding the numerical type value by curly brackets.
500
501
502 connections.<conn>.local<suffix>.eap_id [id]
503 Client EAP-Identity to use in EAP-Identity exchange and the EAP
504 method.
505
506
507 connections.<conn>.local<suffix>.aaa_id [remote-id]
508 Server side EAP-Identity to expect in the EAP method. Some EAP
509 methods, such as EAP-TLS, use an identity for the server to per‐
510 form mutual authentication. This identity may differ from the
511 IKE identity, especially when EAP authentication is delegated
512 from the IKE responder to an AAA backend.
513
514 For EAP-(T)TLS, this defines the identity for which the server
515 must provide a certificate in the TLS exchange.
516
517
518 connections.<conn>.local<suffix>.xauth_id [id]
519 Client XAuth username used in the XAuth exchange.
520
521
522 connections.<conn>.remote<suffix>
523 Section for a remote authentication round. A remote authentica‐
524 tion round defines the constraints how the peers must authenti‐
525 cate to use this connection. Multiple rounds may be defined to
526 use IKEv2 RFC 4739 Multiple Authentication or IKEv1 XAuth.
527
528 Each round is defined in a section having remote as prefix, and
529 an optional unique suffix. To define a single authentication
530 round, the suffix may be omitted.
531
532
533 connections.<conn>.remote<suffix>.round [0]
534 Optional numeric identifier by which authentication rounds are
535 sorted. If not specified rounds are ordered by their position
536 in the config file/VICI message.
537
538
539 connections.<conn>.remote<suffix>.id [%any]
540 IKE identity to expect for authentication round. Refer to the
541 local section's id keyword for details.
542
543 It's possible to use wildcards to match remote identities (e.g.
544 *@strongswan.org, *.strongswan.org, or C=CH,O=strongSwan,CN=*).
545 Connections with exact matches are preferred. When using distin‐
546 guished names with wildcards, the charon.rdn_matching option in
547 strongswan.conf(5) specifies how RDNs are matched.
548
549
550 connections.<conn>.remote<suffix>.eap_id [id]
551 Identity to use as peer identity during EAP authentication. If
552 set to %any the EAP-Identity method will be used to ask the
553 client for an identity.
554
555
556 connections.<conn>.remote<suffix>.groups []
557 Comma separated authorization group memberships to require. The
558 peer must prove membership to at least one of the specified
559 groups. Group membership can be certified by different means,
560 for example by appropriate Attribute Certificates or by an AAA
561 backend involved in the authentication.
562
563
564 connections.<conn>.remote<suffix>.cert_policy []
565 Comma separated list of certificate policy OIDs the peer's cer‐
566 tificate must have. OIDs are specified using the numerical dot‐
567 ted representation.
568
569
570 connections.<conn>.remote<suffix>.certs []
571 Comma separated list of certificates to accept for authentica‐
572 tion. The certificates may use a relative path from the swanctl
573 x509 directory or an absolute path.
574
575
576 connections.<conn>.remote<suffix>.cert<suffix> []
577 Section for a certificate to accept for authentication. Certifi‐
578 cates in certs are transmitted as binary blobs, these sections
579 offer more flexibility.
580
581
582 connections.<conn>.remote<suffix>.cert<suffix>.file []
583 Absolute path to the certificate to load. Passed as-is to the
584 daemon, so it must be readable by it.
585
586 Configure either this or handle, but not both, in one section.
587
588
589 connections.<conn>.remote<suffix>.cert<suffix>.handle []
590 Hex-encoded CKA_ID of the certificate on a token.
591
592 Configure either this or file, but not both, in one section.
593
594
595 connections.<conn>.remote<suffix>.cert<suffix>.slot []
596 Optional slot number of the token that stores the certificate.
597
598
599 connections.<conn>.remote<suffix>.cert<suffix>.module []
600 Optional PKCS#11 module name.
601
602
603 connections.<conn>.remote<suffix>.cacerts []
604 Comma separated list of CA certificates to accept for authenti‐
605 cation. The certificates may use a relative path from the
606 swanctl x509ca directory or an absolute path.
607
608
609 connections.<conn>.remote<suffix>.cacert<suffix> []
610 Section for a CA certificate to accept for authentication. Cer‐
611 tificates in cacerts are transmitted as binary blobs, these sec‐
612 tions offer more flexibility.
613
614
615 connections.<conn>.remote<suffix>.cacert<suffix>.file []
616 Absolute path to the certificate to load. Passed as-is to the
617 daemon, so it must be readable by it.
618
619 Configure either this or handle, but not both, in one section.
620
621
622 connections.<conn>.remote<suffix>.cacert<suffix>.handle []
623 Hex-encoded CKA_ID of the CA certificate on a token.
624
625 Configure either this or file, but not both, in one section.
626
627
628 connections.<conn>.remote<suffix>.cacert<suffix>.slot []
629 Optional slot number of the token that stores the CA certifi‐
630 cate.
631
632
633 connections.<conn>.remote<suffix>.cacert<suffix>.module []
634 Optional PKCS#11 module name.
635
636
637 connections.<conn>.remote<suffix>.ca_id []
638 The specified identity must be contained in one (intermediate)
639 CA of the remote peer trustchain, either as subject or as sub‐
640 jectAltName. This has the same effect as specifying cacerts to
641 force clients under a CA to specific connections; it does not
642 require the CA certificate to be available locally, and can be
643 received from the peer during the IKE exchange.
644
645
646 connections.<conn>.remote<suffix>.pubkeys []
647 Comma separated list of raw public keys to accept for authenti‐
648 cation. The public keys may use a relative path from the swanctl
649 pubkey directory or an absolute path.
650
651
652 connections.<conn>.remote<suffix>.revocation [relaxed]
653 Certificate revocation policy for CRL or OCSP revocation.
654
655 A strict revocation policy fails if no revocation information is
656 available, i.e. the certificate is not known to be unrevoked.
657
658 ifuri fails only if a CRL/OCSP URI is available, but certificate
659 revocation checking fails, i.e. there should be revocation in‐
660 formation available, but it could not be obtained.
661
662 The default revocation policy relaxed fails only if a certifi‐
663 cate is revoked, i.e. it is explicitly known that it is bad.
664
665
666 connections.<conn>.remote<suffix>.auth [pubkey]
667 Authentication to expect from remote. See the local section's
668 auth keyword description about the details of supported mecha‐
669 nisms.
670
671 To require a trustchain public key strength for the remote side,
672 specify the key type followed by the minimum strength in bits
673 (for example ecdsa-384 or rsa-2048-ecdsa-256). To limit the ac‐
674 ceptable set of hashing algorithms for trustchain validation,
675 append hash algorithms to pubkey or a key strength definition
676 (for example pubkey-sha256-sha512, rsa-2048-sha256-sha384-sha512
677 or rsa-2048-sha256-ecdsa-256-sha256-sha384). Unless disabled in
678 strongswan.conf(5), or explicit IKEv2 signature constraints are
679 configured (refer to the description of the local section's auth
680 keyword for details), such key types and hash algorithms are
681 also applied as constraints against IKEv2 signature authentica‐
682 tion schemes used by the remote side. To require RSASSA-PSS sig‐
683 natures use rsa/pss instead of pubkey or rsa as in e.g.
684 rsa/pss-sha256. If pubkey or rsa constraints are configured
685 RSASSA-PSS signatures will only be accepted if enabled in
686 strongswan.conf(5).
687
688
689 To specify trust chain constraints for EAP-(T)TLS, append a
690 colon to the EAP method, followed by the key type/size and hash
691 algorithm as discussed above (e.g. eap-tls:ecdsa-384-sha384).
692
693
694
695 connections.<conn>.children.<child>
696 CHILD_SA configuration sub-section. Each connection definition
697 may have one or more sections in its children subsection. The
698 section name defines the name of the CHILD_SA configuration,
699 which must be unique within the connection.
700
701
702 connections.<conn>.children.<child>.ah_proposals []
703 AH proposals to offer for the CHILD_SA. A proposal is a set of
704 algorithms. For AH, this includes an integrity algorithm and an
705 optional Diffie-Hellman group. If a DH group is specified,
706 CHILD_SA/Quick Mode rekeying and initial negotiation uses a sep‐
707 arate Diffie-Hellman exchange using the specified group (refer
708 to esp_proposals for details).
709
710 In IKEv2, multiple algorithms of the same kind can be specified
711 in a single proposal, from which one gets selected. In IKEv1,
712 only one algorithm per kind is allowed per proposal, more algo‐
713 rithms get implicitly stripped. Use multiple proposals to offer
714 different algorithms combinations in IKEv1.
715
716 Algorithm keywords get separated using dashes. Multiple propos‐
717 als may be separated by commas. The special value default forms
718 a default proposal of supported algorithms considered safe, and
719 is usually a good choice for interoperability. By default no AH
720 proposals are included, instead ESP is proposed.
721
722
723 connections.<conn>.children.<child>.esp_proposals [default]
724 ESP proposals to offer for the CHILD_SA. A proposal is a set of
725 algorithms. For ESP non-AEAD proposals, this includes an integ‐
726 rity algorithm, an encryption algorithm, an optional
727 Diffie-Hellman group and an optional Extended Sequence Number
728 Mode indicator. For AEAD proposals, a combined mode algorithm is
729 used instead of the separate encryption/integrity algorithms.
730
731 If a DH group is specified, CHILD_SA/Quick Mode rekeying and
732 initial negotiation use a separate Diffie-Hellman exchange using
733 the specified group. However, for IKEv2, the keys of the
734 CHILD_SA created implicitly with the IKE_SA will always be de‐
735 rived from the IKE_SA's key material. So any DH group specified
736 here will only apply when the CHILD_SA is later rekeyed or is
737 created with a separate CREATE_CHILD_SA exchange. A proposal
738 mismatch might, therefore, not immediately be noticed when the
739 SA is established, but may later cause rekeying to fail.
740
741 Extended Sequence Number support may be indicated with the esn
742 and noesn values, both may be included to indicate support for
743 both modes. If omitted, noesn is assumed.
744
745 In IKEv2, multiple algorithms of the same kind can be specified
746 in a single proposal, from which one gets selected. In IKEv1,
747 only one algorithm per kind is allowed per proposal, more algo‐
748 rithms get implicitly stripped. Use multiple proposals to offer
749 different algorithms combinations in IKEv1.
750
751 Algorithm keywords get separated using dashes. Multiple propos‐
752 als may be separated by commas. The special value default forms
753 a default proposal of supported algorithms considered safe, and
754 is usually a good choice for interoperability. If no algorithms
755 are specified for AH nor ESP, the default set of algorithms for
756 ESP is included.
757
758
759 connections.<conn>.children.<child>.sha256_96 [no]
760 HMAC-SHA-256 is used with 128-bit truncation with IPsec. For
761 compatibility with implementations that incorrectly use 96-bit
762 truncation this option may be enabled to configure the shorter
763 truncation length in the kernel. This is not negotiated, so
764 this only works with peers that use the incorrect truncation
765 length (or have this option enabled).
766
767
768 connections.<conn>.children.<child>.local_ts [dynamic]
769 Comma separated list of local traffic selectors to include in
770 CHILD_SA. Each selector is a CIDR subnet definition, followed by
771 an optional proto/port selector. The special value dynamic may
772 be used instead of a subnet definition, which gets replaced by
773 the tunnel outer address or the virtual IP, if negotiated. This
774 is the default.
775
776 A protocol/port selector is surrounded by opening and closing
777 square brackets. Between these brackets, a numeric or getser‐
778 vent(3) protocol name may be specified. After the optional pro‐
779 tocol restriction, an optional port restriction may be speci‐
780 fied, separated by a slash. The port restriction may be numeric,
781 a getservent(3) service name, or the special value opaque for
782 RFC 4301 OPAQUE selectors. Port ranges may be specified as well,
783 none of the kernel backends currently support port ranges,
784 though.
785
786 When IKEv1 is used only the first selector is interpreted, ex‐
787 cept if the Cisco Unity extension plugin is used. This is due to
788 a limitation of the IKEv1 protocol, which only allows a single
789 pair of selectors per CHILD_SA. So to tunnel traffic matched by
790 several pairs of selectors when using IKEv1 several children
791 (CHILD_SAs) have to be defined that cover the selectors.
792
793 The IKE daemon uses traffic selector narrowing for IKEv1, the
794 same way it is standardized and implemented for IKEv2. However,
795 this may lead to problems with other implementations. To avoid
796 that, configure identical selectors in such scenarios.
797
798
799 connections.<conn>.children.<child>.remote_ts [dynamic]
800 Comma separated list of remote selectors to include in CHILD_SA.
801 See local_ts for a description of the selector syntax.
802
803
804 connections.<conn>.children.<child>.rekey_time [1h]
805 Time to schedule CHILD_SA rekeying. CHILD_SA rekeying refreshes
806 key material, optionally using a Diffie-Hellman exchange if a
807 group is specified in the proposal.
808
809 To avoid rekey collisions initiated by both ends simultaneously,
810 a value in the range of rand_time gets subtracted to form the
811 effective soft lifetime.
812
813 By default CHILD_SA rekeying is scheduled every hour, minus
814 rand_time.
815
816
817
818 connections.<conn>.children.<child>.life_time [rekey_time + 10%]
819 Maximum lifetime before CHILD_SA gets closed. Usually this hard
820 lifetime is never reached, because the CHILD_SA gets rekeyed be‐
821 fore. If that fails for whatever reason, this limit closes the
822 CHILD_SA.
823
824 The default is 10% more than the rekey_time.
825
826
827
828 connections.<conn>.children.<child>.rand_time [life_time - rekey_time]
829 Time range from which to choose a random value to subtract from
830 rekey_time. The default is the difference between life_time and
831 rekey_time.
832
833
834
835 connections.<conn>.children.<child>.rekey_bytes [0]
836 Number of bytes processed before initiating CHILD_SA rekeying.
837 CHILD_SA rekeying refreshes key material, optionally using a
838 Diffie-Hellman exchange if a group is specified in the proposal.
839
840 To avoid rekey collisions initiated by both ends simultaneously,
841 a value in the range of rand_bytes gets subtracted to form the
842 effective soft volume limit.
843
844 Volume based CHILD_SA rekeying is disabled by default.
845
846
847 connections.<conn>.children.<child>.life_bytes [rekey_bytes + 10%]
848 Maximum bytes processed before CHILD_SA gets closed. Usually
849 this hard volume limit is never reached, because the CHILD_SA
850 gets rekeyed before. If that fails for whatever reason, this
851 limit closes the CHILD_SA.
852
853 The default is 10% more than rekey_bytes.
854
855
856
857 connections.<conn>.children.<child>.rand_bytes [life_bytes -
858 rekey_bytes]
859 Byte range from which to choose a random value to subtract from
860 rekey_bytes. The default is the difference between life_bytes
861 and rekey_bytes.
862
863
864
865 connections.<conn>.children.<child>.rekey_packets [0]
866 Number of packets processed before initiating CHILD_SA rekeying.
867 CHILD_SA rekeying refreshes key material, optionally using a
868 Diffie-Hellman exchange if a group is specified in the proposal.
869
870 To avoid rekey collisions initiated by both ends simultaneously,
871 a value in the range of rand_packets gets subtracted to form the
872 effective soft packet count limit.
873
874 Packet count based CHILD_SA rekeying is disabled by default.
875
876
877 connections.<conn>.children.<child>.life_packets [rekey_packets + 10%]
878 Maximum number of packets processed before CHILD_SA gets closed.
879 Usually this hard packets limit is never reached, because the
880 CHILD_SA gets rekeyed before. If that fails for whatever rea‐
881 son, this limit closes the CHILD_SA.
882
883 The default is 10% more than rekey_bytes.
884
885
886
887 connections.<conn>.children.<child>.rand_packets [life_packets -
888 rekey_packets]
889 Packet range from which to choose a random value to subtract
890 from rekey_packets. The default is the difference between
891 life_packets and rekey_packets.
892
893
894
895 connections.<conn>.children.<child>.updown []
896 Updown script to invoke on CHILD_SA up and down events.
897
898
899 connections.<conn>.children.<child>.hostaccess [no]
900 Hostaccess variable to pass to updown script.
901
902
903 connections.<conn>.children.<child>.mode [tunnel]
904 IPsec Mode to establish CHILD_SA with. tunnel negotiates the
905 CHILD_SA in IPsec Tunnel Mode, whereas transport uses IPsec
906 Transport Mode. transport_proxy signifying the special Mobile
907 IPv6 Transport Proxy Mode. beet is the Bound End to End Tunnel
908 mixture mode, working with fixed inner addresses without the
909 need to include them in each packet.
910
911 Both transport and beet modes are subject to mode negotiation;
912 tunnel mode is negotiated if the preferred mode is not avail‐
913 able.
914
915 pass and drop are used to install shunt policies which explic‐
916 itly bypass the defined traffic from IPsec processing or drop
917 it, respectively.
918
919
920 connections.<conn>.children.<child>.policies [yes]
921 Whether to install IPsec policies or not. Disabling this can be
922 useful in some scenarios e.g. MIPv6, where policies are not man‐
923 aged by the IKE daemon.
924
925
926 connections.<conn>.children.<child>.policies_fwd_out [no]
927 Whether to install outbound FWD IPsec policies or not. Enabling
928 this is required in case there is a drop policy that would match
929 and block forwarded traffic for this CHILD_SA.
930
931
932 connections.<conn>.children.<child>.dpd_action [clear]
933 Action to perform for this CHILD_SA on DPD timeout. The default
934 clear closes the CHILD_SA and does not take further action.
935 trap installs a trap policy, which will catch matching traffic
936 and tries to re-negotiate the tunnel on-demand (note that this
937 is redundant if start_action includes trap). restart immedi‐
938 ately tries to re-negotiate the CHILD_SA under a fresh IKE_SA.
939
940
941 connections.<conn>.children.<child>.ipcomp [no]
942 Enable IPComp compression before encryption. If enabled, IKE
943 tries to negotiate IPComp compression to compress ESP payload
944 data prior to encryption.
945
946
947 connections.<conn>.children.<child>.inactivity [0s]
948 Timeout before closing CHILD_SA after inactivity. If no traffic
949 has been processed in either direction for the configured time‐
950 out, the CHILD_SA gets closed due to inactivity. The default
951 value of 0 disables inactivity checks.
952
953
954 connections.<conn>.children.<child>.reqid [0]
955 Fixed reqid to use for this CHILD_SA. This might be helpful in
956 some scenarios, but works only if each CHILD_SA configuration is
957 instantiated not more than once. The default of 0 uses dynamic
958 reqids, allocated incrementally.
959
960
961 connections.<conn>.children.<child>.priority [0]
962 Optional fixed priority for IPsec policies. This could be useful
963 to install high-priority drop policies. The default of 0 uses
964 dynamically calculated priorities based on the size of the traf‐
965 fic selectors.
966
967
968 connections.<conn>.children.<child>.interface []
969 Optional interface name to restrict IPsec policies.
970
971
972 connections.<conn>.children.<child>.mark_in [0/0x00000000]
973 Netfilter mark and mask for input traffic. On Linux, Netfilter
974 may require marks on each packet to match an SA/policy having
975 that option set. This allows installing duplicate policies and
976 enables Netfilter rules to select specific SAs/policies for in‐
977 coming traffic. Note that inbound marks are only set on poli‐
978 cies, by default, unless *mark_in_sa* is enabled. The special
979 value %unique sets a unique mark on each CHILD_SA instance, be‐
980 yond that the value %unique-dir assigns a different unique mark
981 for each CHILD_SA direction (in/out).
982
983 An additional mask may be appended to the mark, separated by /.
984 The default mask if omitted is 0xffffffff.
985
986
987 connections.<conn>.children.<child>.mark_in_sa [no]
988 Whether to set *mark_in* on the inbound SA. By default, the in‐
989 bound mark is only set on the inbound policy. The tuple destina‐
990 tion address, protocol and SPI is unique and the mark is not re‐
991 quired to find the correct SA, allowing to mark traffic after
992 decryption instead (where more specific selectors may be used)
993 to match different policies. Marking packets before decryption
994 is still possible, even if no mark is set on the SA.
995
996
997 connections.<conn>.children.<child>.mark_out [0/0x00000000]
998 Netfilter mark and mask for output traffic. On Linux, Netfilter
999 may require marks on each packet to match a policy/SA having
1000 that option set. This allows installing duplicate policies and
1001 enables Netfilter rules to select specific policies/SAs for out‐
1002 going traffic. The special value %unique sets a unique mark on
1003 each CHILD_SA instance, beyond that the value %unique-dir as‐
1004 signs a different unique mark for each CHILD_SA direction
1005 (in/out).
1006
1007 An additional mask may be appended to the mark, separated by /.
1008 The default mask if omitted is 0xffffffff.
1009
1010
1011 connections.<conn>.children.<child>.set_mark_in [0/0x00000000]
1012 Netfilter mark applied to packets after the inbound IPsec SA
1013 processed them. This way it's not necessary to mark packets via
1014 Netfilter before decryption or right afterwards to match poli‐
1015 cies or process them differently (e.g. via policy routing).
1016
1017 An additional mask may be appended to the mark, separated by /.
1018 The default mask if omitted is 0xffffffff. The special value
1019 %same uses the value (but not the mask) from mark_in as mark
1020 value, which can be fixed, %unique or %unique-dir.
1021
1022
1023 Setting marks in XFRM input requires Linux 4.19 or higher.
1024
1025
1026 connections.<conn>.children.<child>.set_mark_out [0/0x00000000]
1027 Netfilter mark applied to packets after the outbound IPsec SA
1028 processed them. This allows processing ESP packets differently
1029 than the original traffic (e.g. via policy routing).
1030
1031 An additional mask may be appended to the mark, separated by /.
1032 The default mask if omitted is 0xffffffff. The special value
1033 %same uses the value (but not the mask) from mark_out as mark
1034 value, which can be fixed, %unique or %unique-dir.
1035
1036
1037 Setting marks in XFRM output is supported since Linux 4.14. Set‐
1038 ting a mask requires at least Linux 4.19.
1039
1040
1041 connections.<conn>.children.<child>.if_id_in [0]
1042 XFRM interface ID set on inbound policies/SA. This allows in‐
1043 stalling duplicate policies/SAs and associates them with an in‐
1044 terface with the same ID. The special value %unique sets a
1045 unique interface ID on each CHILD_SA instance, beyond that the
1046 value %unique-dir assigns a different unique interface ID for
1047 each CHILD_SA direction (in/out).
1048
1049
1050 connections.<conn>.children.<child>.if_id_out [0]
1051 XFRM interface ID set on outbound policies/SA. This allows in‐
1052 stalling duplicate policies/SAs and associates them with an in‐
1053 terface with the same ID. The special value %unique sets a
1054 unique interface ID on each CHILD_SA instance, beyond that the
1055 value %unique-dir assigns a different unique interface ID for
1056 each CHILD_SA direction (in/out).
1057
1058 The daemon will not install routes for CHILD_SAs that have this
1059 option set.
1060
1061
1062 connections.<conn>.children.<child>.label []
1063 Optional security label (e.g. SELinux context), IKEv2 only. Re‐
1064 fer to label_mode for details on how labels are processed.
1065
1066
1067 connections.<conn>.children.<child>.label_mode [system]
1068 Defines the mode in which the configured security label is used.
1069 The default value of system selects selinux if strongSwan was
1070 built with SELinux support and SELinux is enabled by the kernel,
1071 otherwise, simple will be selected.
1072
1073 If set to simple, the label will be used as is as an additional
1074 identifier/selector on the IKEv2 level when negotiating
1075 CHILD_SAs and selecting configs, labels are not installed in the
1076 kernel and received labels have to match exactly.
1077
1078 If set to selinux, which is only allowed if SELinux is usable on
1079 the system, the configured label is expected to be a generic
1080 context (e.g. system_u:object_r:ipsec_spd_t:s0) for which
1081 flows, whose context match it via association:polmatch, will
1082 trigger an acquire if no SA exists yet for the flow's specific
1083 context. The configured label is installed on (trap) policies,
1084 so this should generally be combined with trap in start_action.
1085 However, if the connection is initiated directly, without ac‐
1086 quire, a childless IKE_SA is established and appropriate trap
1087 policies are installed on both ends. Labels received from peers
1088 are accepted if they match the configured label via associa‐
1089 tion:polmatch.
1090
1091
1092 connections.<conn>.children.<child>.tfc_padding [0]
1093 Pads ESP packets with additional data to have a consistent ESP
1094 packet size for improved Traffic Flow Confidentiality. The pad‐
1095 ding defines the minimum size of all ESP packets sent.
1096
1097 The default value of 0 disables TFC padding, the special value
1098 mtu adds TFC padding to create a packet size equal to the Path
1099 Maximum Transfer Unit.
1100
1101
1102 connections.<conn>.children.<child>.replay_window [32]
1103 IPsec replay window to configure for this CHILD_SA. Larger val‐
1104 ues than the default of 32 are supported using the Netlink back‐
1105 end only, a value of 0 disables IPsec replay protection.
1106
1107
1108 connections.<conn>.children.<child>.hw_offload [no]
1109 Enable hardware offload for this CHILD_SA, if supported by the
1110 IPsec implementation. The value yes enforces offloading and the
1111 installation will fail if it's not supported by either kernel or
1112 device. The value auto enables offloading, if it's sup‐
1113 ported, but the installation does not fail otherwise.
1114
1115
1116 connections.<conn>.children.<child>.copy_df [yes]
1117 Whether to copy the DF bit to the outer IPv4 header in tunnel
1118 mode. This effectively disables Path MTU discovery (PMTUD).
1119 Controlling this behavior is not supported by all kernel inter‐
1120 faces.
1121
1122
1123 connections.<conn>.children.<child>.copy_ecn [yes]
1124 Whether to copy the ECN (Explicit Congestion Notification)
1125 header field to/from the outer IP header in tunnel mode. Con‐
1126 trolling this behavior is not supported by all kernel inter‐
1127 faces.
1128
1129
1130 connections.<conn>.children.<child>.copy_dscp [out]
1131 Whether to copy the DSCP (Differentiated Services Field Code‐
1132 point) header field to/from the outer IP header in tunnel mode.
1133 The value out only copies the field from the inner to the outer
1134 header, the value in does the opposite and only copies the field
1135 from the outer to the inner header when decapsulating, the value
1136 yes copies the field in both directions, and the value no dis‐
1137 ables copying the field altogether. Setting this to yes or in
1138 could allow an attacker to adversely affect other traffic at the
1139 receiver, which is why the default is out. Controlling this be‐
1140 havior is not supported by all kernel interfaces.
1141
1142
1143 connections.<conn>.children.<child>.start_action [none]
1144 Action to perform after loading the configuration. The default
1145 of none loads the connection only, which then can be manually
1146 initiated or used as a responder configuration.
1147
1148 The value trap installs a trap policy, which triggers the tunnel
1149 as soon as matching traffic has been detected. The value start
1150 initiates the connection actively. These two modes can be com‐
1151 bined with trap|start, to immediately initiate a connection for
1152 which trap policies have been installed.
1153
1154 When unloading or replacing a CHILD_SA configuration having a
1155 start_action different from none, the inverse action is per‐
1156 formed. Configurations with start get closed, while such with
1157 trap get uninstalled (both happens for connections with
1158 trap|start).
1159
1160
1161
1162 connections.<conn>.children.<child>.close_action [none]
1163 Action to perform after a CHILD_SA gets closed by the peer. The
1164 default of none does not take any action, trap installs a trap
1165 policy for the CHILD_SA (note that this is redundant if
1166 start_action includes trap). start tries to immediately re-cre‐
1167 ate the CHILD_SA.
1168
1169 close_action does not provide any guarantee that the CHILD_SA is
1170 kept alive. It acts on explicit close messages only, but not on
1171 negotiation failures. Use trap policies to reliably re-create
1172 failed CHILD_SAs.
1173
1174
1175 secrets
1176 Section defining secrets for IKE/EAP/XAuth authentication and
1177 private key decryption. The secrets section takes sub-sections
1178 having a specific prefix which defines the secret type.
1179
1180 It is not recommended to define any private key decryption
1181 passphrases, as then there is no real security benefit in having
1182 encrypted keys. Either store the key unencrypted or enter the
1183 keys manually when loading credentials.
1184
1185
1186 secrets.eap<suffix>
1187 EAP secret section for a specific secret. Each EAP secret is de‐
1188 fined in a unique section having the eap prefix. EAP secrets are
1189 used for XAuth authentication as well.
1190
1191
1192 secrets.eap<suffix>.secret []
1193 Value of the EAP/XAuth secret. It may either be an ASCII string,
1194 a hex encoded string if it has a 0x prefix or a Base64 encoded
1195 string if it has a 0s prefix in its value.
1196
1197
1198 secrets.eap<suffix>.id<suffix> []
1199 Identity the EAP/XAuth secret belongs to. Multiple unique iden‐
1200 tities may be specified, each having an id prefix, if a secret
1201 is shared between multiple users.
1202
1203
1204 secrets.xauth<suffix>
1205 XAuth secret section for a specific secret. xauth is just an
1206 alias for eap, secrets under both section prefixes are used for
1207 both EAP and XAuth authentication.
1208
1209
1210 secrets.ntlm<suffix>
1211 NTLM secret section for a specific secret. Each NTLM secret is
1212 defined in a unique section having the ntlm prefix. NTLM secrets
1213 may only be used for EAP-MSCHAPv2 authentication.
1214
1215
1216 secrets.ntlm<suffix>.secret []
1217 Value of the NTLM secret, which is the NT Hash of the actual se‐
1218 cret, that is, MD4(UTF-16LE(secret)). The resulting 16-byte
1219 value may either be given as a hex encoded string with a 0x pre‐
1220 fix or as a Base64 encoded string with a 0s prefix.
1221
1222
1223 secrets.ntlm<suffix>.id<suffix> []
1224 Identity the NTLM secret belongs to. Multiple unique identities
1225 may be specified, each having an id prefix, if a secret is
1226 shared between multiple users.
1227
1228
1229 secrets.ike<suffix>
1230 IKE preshared secret section for a specific secret. Each IKE PSK
1231 is defined in a unique section having the ike prefix.
1232
1233
1234 secrets.ike<suffix>.secret []
1235 Value of the IKE preshared secret. It may either be an ASCII
1236 string, a hex encoded string if it has a 0x prefix or a Base64
1237 encoded string if it has a 0s prefix in its value.
1238
1239
1240 secrets.ike<suffix>.id<suffix> []
1241 IKE identity the IKE preshared secret belongs to. Multiple
1242 unique identities may be specified, each having an id prefix, if
1243 a secret is shared between multiple peers.
1244
1245
1246 secrets.ppk<suffix>
1247 Postquantum Preshared Key (PPK) section for a specific secret.
1248 Each PPK is defined in a unique section having the ppk pre‐
1249 fix.
1250
1251
1252 secrets.ppk<suffix>.secret []
1253 Value of the PPK. It may either be an ASCII string, a hex
1254 encoded string if it has a 0x prefix or a Base64 encoded string
1255 if it has a 0s prefix in its value. Should have at least 256
1256 bits of entropy for 128-bit security.
1257
1258
1259 secrets.ppk<suffix>.id<suffix> []
1260 PPK identity the PPK belongs to. Multiple unique identities may
1261 be specified, each having an id prefix, if a secret is shared
1262 between multiple peers.
1263
1264
1265 secrets.private<suffix>
1266 Private key decryption passphrase for a key in the private
1267 folder.
1268
1269
1270 secrets.private<suffix>.file []
1271 File name in the private folder for which this passphrase should
1272 be used.
1273
1274
1275 secrets.private<suffix>.secret []
1276 Value of decryption passphrase for private key.
1277
1278
1279 secrets.rsa<suffix>
1280 Private key decryption passphrase for a key in the rsa folder.
1281
1282
1283 secrets.rsa<suffix>.file []
1284 File name in the rsa folder for which this passphrase should be
1285 used.
1286
1287
1288 secrets.rsa<suffix>.secret []
1289 Value of decryption passphrase for RSA key.
1290
1291
1292 secrets.ecdsa<suffix>
1293 Private key decryption passphrase for a key in the ecdsa folder.
1294
1295
1296 secrets.ecdsa<suffix>.file []
1297 File name in the ecdsa folder for which this passphrase should
1298 be used.
1299
1300
1301 secrets.ecdsa<suffix>.secret []
1302 Value of decryption passphrase for ECDSA key.
1303
1304
1305 secrets.pkcs8<suffix>
1306 Private key decryption passphrase for a key in the pkcs8 folder.
1307
1308
1309 secrets.pkcs8<suffix>.file []
1310 File name in the pkcs8 folder for which this passphrase should
1311 be used.
1312
1313
1314 secrets.pkcs8<suffix>.secret []
1315 Value of decryption passphrase for PKCS#8 key.
1316
1317
1318 secrets.pkcs12<suffix>
1319 PKCS#12 decryption passphrase for a container in the pkcs12
1320 folder.
1321
1322
1323 secrets.pkcs12<suffix>.file []
1324 File name in the pkcs12 folder for which this passphrase should
1325 be used.
1326
1327
1328 secrets.pkcs12<suffix>.secret []
1329 Value of decryption passphrase for PKCS#12 container.
1330
1331
1332 secrets.token<suffix>
1333 Definition for a private key that's stored on a token/smartcard.
1334
1335
1336 secrets.token<suffix>.handle []
1337 Hex-encoded CKA_ID of the private key on the token.
1338
1339
1340 secrets.token<suffix>.slot []
1341 Optional slot number to access the token.
1342
1343
1344 secrets.token<suffix>.module []
1345 Optional PKCS#11 module name to access the token.
1346
1347
1348 secrets.token<suffix>.pin []
1349 Optional PIN required to access the key on the token. If none is
1350 provided the user is prompted during an interactive --load-creds
1351 call.
1352
1353
1354 pools
1355 Section defining named pools. Named pools may be referenced by
1356 connections with the pools option to assign virtual IPs and
1357 other configuration attributes.
1358
1359
1360 pools.<name>
1361 Section defining a single pool with a unique name.
1362
1363
1364 pools.<name>.addrs []
1365 Subnet or range defining addresses allocated in pool. Accepts a
1366 single CIDR subnet defining the pool to allocate addresses from
1367 or an address range (<from>-<to>). Pools must be unique and
1368 non-overlapping.
1369
1370
1371 pools.<name>.<attr> []
1372 Comma separated list of additional attributes of type <attr>.
1373 The attribute type may be one of dns, nbns, dhcp, netmask,
1374 server, subnet, split_include and split_exclude to define ad‐
1375 dresses or CIDR subnets for the corresponding attribute types.
1376 Alternatively, <attr> can be a numerical identifier, for which
1377 string attribute values are accepted as well.
1378
1379
1380 authorities
1381 Section defining attributes of certification authorities.
1382
1383
1384 authorities.<name>
1385 Section defining a certification authority with a unique name.
1386
1387
1388 authorities.<name>.cacert []
1389 CA certificate belonging to the certification authority. The
1390 certificates may use a relative path from the swanctl x509ca di‐
1391 rectory or an absolute path.
1392
1393 Configure one of cacert, file, or handle per section.
1394
1395
1396 authorities.<name>.file []
1397 Absolute path to the certificate to load. Passed as-is to the
1398 daemon, so it must be readable by it.
1399
1400 Configure one of cacert, file, or handle per section.
1401
1402
1403 authorities.<name>.handle []
1404 Hex-encoded CKA_ID of the CA certificate on a token.
1405
1406 Configure one of cacert, file, or handle per section.
1407
1408
1409 authorities.<name>.slot []
1410 Optional slot number of the token that stores the CA certifi‐
1411 cate.
1412
1413
1414 authorities.<name>.module []
1415 Optional PKCS#11 module name.
1416
1417
1418 authorities.<name>.crl_uris []
1419 Comma-separated list of CRL distribution points (ldap, http, or
1420 file URI).
1421
1422
1423 authorities.<name>.ocsp_uris []
1424 Comma-separated list of OCSP URIs.
1425
1426
1427 authorities.<name>.cert_uri_base []
1428 Defines the base URI for the Hash and URL feature supported by
1429 IKEv2. Instead of exchanging complete certificates, IKEv2 allows
1430 one to send an URI that resolves to the DER encoded certificate.
1431 The certificate URIs are built by appending the SHA1 hash of the
1432 DER encoded certificates to this base URI.
1433
1434
1436 /etc/strongswan/swanctl/swanctl.conf configuration file
1437
1439 swanctl(8)
1440
1441
1442
14435.9.9 SWANCTL.CONF(5)