2 Section defining IKE connection configurations.
4 Section defining IKE connection configurations.
6 The connections section defines IKE connection configurations, each in
7 its own subsections. In the keyword description below, the connection
8 is named _<conn>_, but an arbitrary yet unique connection name can be
9 chosen for each connection subsection.
11 connections.<conn> { # }
12 Section for an IKE connection named <conn>.
14 connections.<conn>.version = 0
15 IKE major version to use for connection.
17 IKE major version to use for connection. _1_ uses IKEv1 aka ISAKMP, _2_
18 uses IKEv2. A connection using the default of _0_ accepts both IKEv1
19 and IKEv2 as responder, and initiates the connection actively with IKEv2.
21 connections.<conn>.local_addrs = %any
22 Local address(es) to use for IKE communication, comma separated.
24 Local address(es) to use for IKE communication, comma separated. Takes
25 single IPv4/IPv6 addresses, DNS names, CIDR subnets or IP address ranges.
27 As initiator, the first non-range/non-subnet is used to initiate the
28 connection from. As responder, the local destination address must match at
29 least to one of the specified addresses, subnets or ranges.
31 If FQDNs are assigned they are resolved every time a configuration lookup
32 is done. If DNS resolution times out, the lookup is delayed for that time.
34 connections.<conn>.remote_addrs = %any
35 Remote address(es) to use for IKE communication, comma separated.
37 Remote address(es) to use for IKE communication, comma separated. Takes
38 single IPv4/IPv6 addresses, DNS names, CIDR subnets or IP address ranges.
40 As initiator, the first non-range/non-subnet is used to initiate the
41 connection to. As responder, the initiator source address must match at
42 least to one of the specified addresses, subnets or ranges.
44 If FQDNs are assigned they are resolved every time a configuration lookup
45 is done. If DNS resolution times out, the lookup is delayed for that time.
47 To initiate a connection, at least one specific address or DNS name must
50 connections.<conn>.local_port = 500
51 Local UDP port for IKE communication.
53 Local UDP port for IKE communication. By default the port of the socket
54 backend is used, which is usually _500_. If port _500_ is used, automatic
55 IKE port floating to port 4500 is used to work around NAT issues.
57 Using a non-default local IKE port requires support from the socket backend
58 in use (socket-dynamic).
60 connections.<conn>.remote_port = 500
61 Remote UDP port for IKE communication.
63 Remote UDP port for IKE communication. If the default of port _500_ is used,
64 automatic IKE port floating to port 4500 is used to work around NAT issues.
66 connections.<conn>.proposals = default
67 Comma separated proposals to accept for IKE.
69 A proposal is a set of algorithms. For non-AEAD algorithms, this includes
70 for IKE an encryption algorithm, an integrity algorithm, a pseudo random
71 function and a Diffie-Hellman group. For AEAD algorithms, instead of
72 encryption and integrity algorithms, a combined algorithm is used.
74 In IKEv2, multiple algorithms of the same kind can be specified in a single
75 proposal, from which one gets selected. In IKEv1, only one algorithm per
76 kind is allowed per proposal, more algorithms get implicitly stripped. Use
77 multiple proposals to offer different algorithms combinations in IKEv1.
79 Algorithm keywords get separated using dashes. Multiple proposals may be
80 separated by commas. The special value _default_ forms a default proposal
81 of supported algorithms considered safe, and is usually a good choice
84 connections.<conn>.vips =
85 Virtual IPs to request in configuration payload / Mode Config.
87 Comma separated list of virtual IPs to request in IKEv2 configuration
88 payloads or IKEv1 Mode Config. The wildcard addresses _0.0.0.0_ and _::_
89 request an arbitrary address, specific addresses may be defined. The
90 responder may return a different address, though, or none at all.
92 connections.<conn>.aggressive = no
93 Use Aggressive Mode in IKEv1.
95 Enables Aggressive Mode instead of Main Mode with Identity Protection.
96 Aggressive Mode is considered less secure, because the ID and HASH
97 payloads are exchanged unprotected. This allows a passive attacker to
98 snoop peer identities, and even worse, start dictionary attacks on the
101 connections.<conn>.pull = yes
102 Set the Mode Config mode to use.
104 If the default of _yes_ is used, Mode Config works in pull mode, where
105 the initiator actively requests a virtual IP. With _no_, push mode is used,
106 where the responder pushes down a virtual IP to the initiating peer.
108 Push mode is currently supported for IKEv1, but not in IKEv2. It is used
109 by a few implementations only, pull mode is recommended.
111 connections.<conn>.dscp = 000000
112 Differentiated Services Field Codepoint to set on outgoing IKE packets (six
115 Differentiated Services Field Codepoint to set on outgoing IKE packets for
116 this connection. The value is a six digit binary encoded string specifying
117 the Codepoint to set, as defined in RFC 2474.
119 connections.<conn>.encap = no
120 Enforce UDP encapsulation by faking NAT-D payloads.
122 To enforce UDP encapsulation of ESP packets, the IKE daemon can fake the
123 NAT detection payloads. This makes the peer believe that NAT takes
124 place on the path, forcing it to encapsulate ESP packets in UDP.
126 Usually this is not required, but it can help to work around connectivity
127 issues with too restrictive intermediary firewalls.
129 connections.<conn>.mobike = yes
130 Enables MOBIKE on IKEv2 connections.
132 Enables MOBIKE on IKEv2 connections. MOBIKE is enabled by default on IKEv2
133 connections, and allows mobility of clients and multi-homing on servers by
134 migrating active IPsec tunnels.
136 Usually keeping MOBIKE enabled is unproblematic, as it is not used if the
137 peer does not indicate support for it. However, due to the design of MOBIKE,
138 IKEv2 always floats to port 4500 starting from the second exchange. Some
139 implementations don't like this behavior, hence it can be disabled.
141 connections.<conn>.dpd_delay = 0s
142 Interval of liveness checks (DPD).
144 Interval to check the liveness of a peer actively using IKEv2 INFORMATIONAL
145 exchanges or IKEv1 R_U_THERE messages. Active DPD checking is only enforced
146 if no IKE or ESP/AH packet has been received for the configured DPD delay.
148 connections.<conn>.dpd_timeout = 0s
149 Timeout for DPD checks (IKEV1 only).
151 Charon by default uses the normal retransmission mechanism and timeouts to
152 check the liveness of a peer, as all messages are used for liveness
153 checking. For compatibility reasons, with IKEv1 a custom interval may be
154 specified; this option has no effect on connections using IKE2.
156 connections.<conn>.fragmentation = yes
157 Use IKE UDP datagram fragmentation. (_yes_, _accept_, _no_ or _force_).
159 Use IKE fragmentation (proprietary IKEv1 extension or RFC 7383 IKEv2
160 fragmentation). Acceptable values are _yes_ (the default), _accept_,
161 _force_ and _no_. If set to _yes_, and the peer supports it, oversized IKE
162 messages will be sent in fragments. If set to _accept_, support for
163 fragmentation is announced to the peer but the daemon does not send its own
164 messages in fragments. If set to _force_ (only supported for IKEv1) the
165 initial IKE message will already be fragmented if required. Finally, setting
166 the option to _no_ will disable announcing support for this feature.
168 Note that fragmented IKE messages sent by a peer are always accepted
169 irrespective of the value of this option (even when set to _no_).
171 connections.<conn>.send_certreq = yes
172 Send certificate requests payloads (_yes_ or _no_).
174 Send certificate request payloads to offer trusted root CA certificates
175 to the peer. Certificate requests help the peer to choose an appropriate
176 certificate/private key for authentication and are enabled by default.
178 Disabling certificate requests can be useful if too many trusted root CA
179 certificates are installed, as each certificate request increases the size
180 of the initial IKE packets.
182 connections.<conn>.send_cert = ifasked
183 Send certificate payloads (_always_, _never_ or _ifasked_).
185 Send certificate payloads when using certificate authentication. With the
186 default of _ifasked_ the daemon sends certificate payloads only if
187 certificate requests have been received. _never_ disables sending of
188 certificate payloads altogether, _always_ causes certificate payloads to be
189 sent unconditionally whenever certificate authentication is used.
191 connections.<conn>.ppk_id =
192 String identifying the Postquantum Preshared Key (PPK) to be used.
194 connections.<conn>.ppk_required = no
195 Whether a Postquantum Preshared Key (PPK) is required for this connection.
197 connections.<conn>.keyingtries = 1
198 Number of retransmission sequences to perform during initial connect.
200 Number of retransmission sequences to perform during initial connect.
201 Instead of giving up initiation after the first retransmission sequence with
202 the default value of _1_, additional sequences may be started according to
203 the configured value. A value of _0_ initiates a new sequence until the
204 connection establishes or fails with a permanent error.
206 connections.<conn>.unique = no
207 Connection uniqueness policy (_never_, _no_, _keep_ or _replace_).
209 Connection uniqueness policy to enforce. To avoid multiple connections
210 from the same user, a uniqueness policy can be enforced. The value _never_
211 does never enforce such a policy, even if a peer included INITIAL_CONTACT
212 notification messages, whereas _no_ replaces existing connections for the
213 same identity if a new one has the INITIAL_CONTACT notify. _keep_ rejects
214 new connection attempts if the same user already has an active connection,
215 _replace_ deletes any existing connection if a new one for the same user
218 To compare connections for uniqueness, the remote IKE identity is used. If
219 EAP or XAuth authentication is involved, the EAP-Identity or XAuth username
220 is used to enforce the uniqueness policy instead.
222 On initiators this setting specifies whether an INITIAL_CONTACT notify is
223 sent during IKE_AUTH if no existing connection is found with the remote
224 peer (determined by the identities of the first authentication round).
225 Unless set to _never_ the client will send a notify.
227 connections.<conn>.reauth_time = 0s
228 Time to schedule IKE reauthentication.
230 Time to schedule IKE reauthentication. IKE reauthentication recreates the
231 IKE/ISAKMP SA from scratch and re-evaluates the credentials. In asymmetric
232 configurations (with EAP or configuration payloads) it might not be possible
233 to actively reauthenticate as responder. The IKEv2 reauthentication lifetime
234 negotiation can instruct the client to perform reauthentication.
236 Reauthentication is disabled by default. Enabling it usually may lead
237 to small connection interruptions, as strongSwan uses a break-before-make
238 policy with IKEv2 to avoid any conflicts with associated tunnel resources.
240 connections.<conn>.rekey_time = 4h
241 Time to schedule IKE rekeying.
243 IKE rekeying refreshes key material using a Diffie-Hellman exchange, but
244 does not re-check associated credentials. It is supported in IKEv2 only,
245 IKEv1 performs a reauthentication procedure instead.
247 With the default value IKE rekeying is scheduled every 4 hours, minus the
248 configured **rand_time**. If a **reauth_time** is configured, **rekey_time**
249 defaults to zero disabling rekeying; explicitly set both to enforce
250 rekeying and reauthentication.
252 connections.<conn>.over_time = 10% of rekey_time/reauth_time
253 Hard IKE_SA lifetime if rekey/reauth does not complete, as time.
255 Hard IKE_SA lifetime if rekey/reauth does not complete, as time.
256 To avoid having an IKE/ISAKMP kept alive if IKE reauthentication or rekeying
257 fails perpetually, a maximum hard lifetime may be specified. If the
258 IKE_SA fails to rekey or reauthenticate within the specified time, the
261 In contrast to CHILD_SA rekeying, **over_time** is relative in time to the
262 **rekey_time** _and_ **reauth_time** values, as it applies to both.
264 The default is 10% of the longer of **rekey_time** and **reauth_time**.
266 connections.<conn>.rand_time = over_time
267 Range of random time to subtract from rekey/reauth times.
269 Time range from which to choose a random value to subtract from
270 rekey/reauth times. To avoid having both peers initiating the rekey/reauth
271 procedure simultaneously, a random time gets subtracted from the
274 The default is equal to the configured **over_time**.
276 connections.<conn>.pools =
277 Comma separated list of named IP pools.
279 Comma separated list of named IP pools to allocate virtual IP addresses and
280 other configuration attributes from. Each name references a pool by name
281 from either the **pools** section or an external pool.
283 connections.<conn>.if_id_in = 0
284 Default inbound XFRM interface ID for children.
286 XFRM interface ID set on inbound policies/SA, can be overridden by child
287 config, see there for details.
289 connections.<conn>.if_id_out = 0
290 Default outbound XFRM interface ID for children.
292 XFRM interface ID set on outbound policies/SA, can be overridden by child
293 cofnig, see there for details.
295 connections.<conn>.mediation = no
296 Whether this connection is a mediation connection.
298 Whether this connection is a mediation connection, that is, whether this
299 connection is used to mediate other connections using the IKEv2 Mediation
300 Extension. Mediation connections create no CHILD_SA.
302 connections.<conn>.mediated_by =
303 The name of the connection to mediate this connection through.
305 The name of the connection to mediate this connection through. If given, the
306 connection will be mediated through the named mediation connection.
307 The mediation connection must have **mediation** enabled.
309 connections.<conn>.mediation_peer =
310 Identity under which the peer is registered at the mediation server.
312 Identity under which the peer is registered at the mediation server, that
313 is, the IKE identity the other end of this connection uses as its local
314 identity on its connection to the mediation server. This is the identity we
315 request the mediation server to mediate us with. Only relevant on
316 connections that set **mediated_by**. If it is not given, the remote IKE
317 identity of the first authentication round of this connection will be used.
319 connections.<conn>.local<suffix> {}
320 Section for a local authentication round.
322 Section for a local authentication round. A local authentication round
323 defines the rules how authentication is performed for the local peer.
324 Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple Authentication
327 Each round is defined in a section having _local_ as prefix, and an optional
328 unique suffix. To define a single authentication round, the suffix may be
331 connections.<conn>.local<suffix>.round = 0
332 Optional numeric identifier by which authentication rounds are sorted. If
333 not specified rounds are ordered by their position in the config file/VICI
336 connections.<conn>.local<suffix>.certs =
337 Comma separated list of certificate candidates to use for authentication.
339 Comma separated list of certificate candidates to use for authentication.
340 The certificates may use a relative path from the **swanctl** _x509_
341 directory or an absolute path.
343 The certificate used for authentication is selected based on the received
344 certificate request payloads. If no appropriate CA can be located, the
345 first certificate is used.
347 connections.<conn>.local<suffix>.cert<suffix> =
348 Section for a certificate candidate to use for authentication.
350 Section for a certificate candidate to use for authentication. Certificates
351 in _certs_ are transmitted as binary blobs, these sections offer more
354 connections.<conn>.local<suffix>.cert<suffix>.file =
355 Absolute path to the certificate to load.
357 Absolute path to the certificate to load. Passed as-is to the daemon, so it
358 must be readable by it.
360 Configure either this or _handle_, but not both, in one section.
362 connections.<conn>.local<suffix>.cert<suffix>.handle =
363 Hex-encoded CKA_ID of the certificate on a token.
365 Hex-encoded CKA_ID of the certificate on a token.
367 Configure either this or _file_, but not both, in one section.
369 connections.<conn>.local<suffix>.cert<suffix>.slot =
370 Optional slot number of the token that stores the certificate.
372 connections.<conn>.local<suffix>.cert<suffix>.module =
373 Optional PKCS#11 module name.
375 connections.<conn>.local<suffix>.pubkeys =
376 Comma separated list of raw public key candidates to use for authentication.
378 Comma separated list of raw public key candidates to use for authentication.
379 The public keys may use a relative path from the **swanctl** _pubkey_
380 directory or an absolute path.
382 Even though multiple local public keys could be defined in principle, only
383 the first public key in the list is used for authentication.
385 connections.<conn>.local<suffix>.auth = pubkey
386 Authentication to perform locally (_pubkey_, _psk_, _xauth[-backend]_ or
389 Authentication to perform locally. _pubkey_ uses public key authentication
390 using a private key associated to a usable certificate. _psk_ uses
391 pre-shared key authentication. The IKEv1 specific _xauth_ is used for
392 XAuth or Hybrid authentication, while the IKEv2 specific _eap_ keyword
393 defines EAP authentication.
395 For _xauth_, a specific backend name may be appended, separated by a dash.
396 The appropriate _xauth_ backend is selected to perform the XAuth exchange.
397 For traditional XAuth, the _xauth_ method is usually defined in the second
398 authentication round following an initial _pubkey_ (or _psk_) round. Using
399 _xauth_ in the first round performs Hybrid Mode client authentication.
401 For _eap_, a specific EAP method name may be appended, separated by a dash.
402 An EAP module implementing the appropriate method is selected to perform
403 the EAP conversation.
405 If both peers support RFC 7427 ("Signature Authentication in IKEv2")
406 specific hash algorithms to be used during IKEv2 authentication may be
407 configured. To do so use _ike:_ followed by a trust chain signature scheme
408 constraint (see description of the **remote** section's **auth** keyword).
409 For example, with _ike:pubkey-sha384-sha256_ a public key signature scheme
410 with either SHA-384 or SHA-256 would get used for authentication, in that
411 order and depending on the hash algorithms supported by the peer. If no
412 specific hash algorithms are configured, the default is to prefer an
413 algorithm that matches or exceeds the strength of the signature key.
414 If no constraints with _ike:_ prefix are configured any signature scheme
415 constraint (without _ike:_ prefix) will also apply to IKEv2 authentication,
416 unless this is disabled in **strongswan.conf**(5). To use RSASSA-PSS
417 signatures use _rsa/pss_ instead of _pubkey_ or _rsa_ as in e.g.
418 _ike:rsa/pss-sha256_. If _pubkey_ or _rsa_ constraints are configured
419 RSASSA-PSS signatures will only be used if enabled in
420 **strongswan.conf**(5).
422 connections.<conn>.local<suffix>.id =
423 IKE identity to use for authentication round.
425 IKE identity to use for authentication round. When using certificate
426 authentication, the IKE identity must be contained in the certificate,
427 either as subject or as subjectAltName.
429 The identity can be an IP address, a fully-qualified domain name, an email
430 address or a Distinguished Name for which the ID type is determined
431 automatically and the string is converted to the appropriate encoding. To
432 enforce a specific identity type, a prefix may be used, followed by a colon
433 (:). If the number sign (#) follows the colon, the remaining data is
434 interpreted as hex encoding, otherwise the string is used as-is as the
435 identification data. Note that this implies that no conversion is performed
436 for non-string identities. For example, _ipv4:10.0.0.1_ does not create a
437 valid ID_IPV4_ADDR IKE identity, as it does not get converted to binary
438 0x0a000001. Instead, one could use _ipv4:#0a000001_ to get a valid identity,
439 but just using the implicit type with automatic conversion is usually
440 simpler. The same applies to the ASN1 encoded types. The following prefixes
441 are known: _ipv4_, _ipv6_, _rfc822_, _email_, _userfqdn_, _fqdn_, _dns_,
442 _asn1dn_, _asn1gn_ and _keyid_. Custom type prefixes may be specified by
443 surrounding the numerical type value by curly brackets.
445 connections.<conn>.local<suffix>.eap_id = id
446 Client EAP-Identity to use in EAP-Identity exchange and the EAP method.
448 connections.<conn>.local<suffix>.aaa_id = remote-id
449 Server side EAP-Identity to expect in the EAP method.
451 Server side EAP-Identity to expect in the EAP method. Some EAP methods, such
452 as EAP-TLS, use an identity for the server to perform mutual authentication.
453 This identity may differ from the IKE identity, especially when EAP
454 authentication is delegated from the IKE responder to an AAA backend.
456 For EAP-(T)TLS, this defines the identity for which the server must provide
457 a certificate in the TLS exchange.
459 connections.<conn>.local<suffix>.xauth_id = id
460 Client XAuth username used in the XAuth exchange.
462 connections.<conn>.remote<suffix> {}
463 Section for a remote authentication round.
465 Section for a remote authentication round. A remote authentication round
466 defines the constraints how the peers must authenticate to use this
467 connection. Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple
468 Authentication or IKEv1 XAuth.
470 Each round is defined in a section having _remote_ as prefix, and an
471 optional unique suffix. To define a single authentication round, the suffix
474 connections.<conn>.remote<suffix>.round = 0
475 Optional numeric identifier by which authentication rounds are sorted. If
476 not specified rounds are ordered by their position in the config file/VICI
479 connections.<conn>.remote<suffix>.id = %any
480 IKE identity to expect for authentication round.
482 IKE identity to expect for authentication round. Refer to the _local_ _id_
485 connections.<conn>.remote<suffix>.eap_id = id
486 Identity to use as peer identity during EAP authentication.
488 Identity to use as peer identity during EAP authentication. If set to _%any_
489 the EAP-Identity method will be used to ask the client for an identity.
491 connections.<conn>.remote<suffix>.groups =
492 Authorization group memberships to require.
494 Comma separated authorization group memberships to require. The peer must
495 prove membership to at least one of the specified groups. Group membership
496 can be certified by different means, for example by appropriate Attribute
497 Certificates or by an AAA backend involved in the authentication.
499 connections.<conn>.remote<suffix>.cert_policy =
500 Certificate policy OIDs the peer's certificate must have.
502 Comma separated list of certificate policy OIDs the peer's certificate must
503 have. OIDs are specified using the numerical dotted representation.
505 connections.<conn>.remote<suffix>.certs =
506 Comma separated list of certificate to accept for authentication.
508 Comma separated list of certificates to accept for authentication.
509 The certificates may use a relative path from the **swanctl** _x509_
510 directory or an absolute path.
512 connections.<conn>.remote<suffix>.cert<suffix> =
513 Section for a certificate to accept for authentication.
515 Section for a certificate to accept for authentication. Certificates
516 in _certs_ are transmitted as binary blobs, these sections offer more
519 connections.<conn>.remote<suffix>.cert<suffix>.file =
520 Absolute path to the certificate to load.
522 Absolute path to the certificate to load. Passed as-is to the daemon, so it
523 must be readable by it.
525 Configure either this or _handle_, but not both, in one section.
527 connections.<conn>.remote<suffix>.cert<suffix>.handle =
528 Hex-encoded CKA_ID of the certificate on a token.
530 Hex-encoded CKA_ID of the certificate on a token.
532 Configure either this or _file_, but not both, in one section.
534 connections.<conn>.remote<suffix>.cert<suffix>.slot =
535 Optional slot number of the token that stores the certificate.
537 connections.<conn>.remote<suffix>.cert<suffix>.module =
538 Optional PKCS#11 module name.
540 connections.<conn>.remote<suffix>.cacerts =
541 Comma separated list of CA certificates to accept for authentication.
543 Comma separated list of CA certificates to accept for authentication.
544 The certificates may use a relative path from the **swanctl** _x509ca_
545 directory or an absolute path.
547 connections.<conn>.remote<suffix>.cacert<suffix> =
548 Section for a CA certificate to accept for authentication.
550 Section for a CA certificate to accept for authentication. Certificates
551 in _cacerts_ are transmitted as binary blobs, these sections offer more
554 connections.<conn>.remote<suffix>.cacert<suffix>.file =
555 Absolute path to the certificate to load.
557 Absolute path to the certificate to load. Passed as-is to the daemon, so it
558 must be readable by it.
560 Configure either this or _handle_, but not both, in one section.
562 connections.<conn>.remote<suffix>.cacert<suffix>.handle =
563 Hex-encoded CKA_ID of the CA certificate on a token.
565 Hex-encoded CKA_ID of the CA certificate on a token.
567 Configure either this or _file_, but not both, in one section.
569 connections.<conn>.remote<suffix>.cacert<suffix>.slot =
570 Optional slot number of the token that stores the CA certificate.
572 connections.<conn>.remote<suffix>.cacert<suffix>.module =
573 Optional PKCS#11 module name.
575 connections.<conn>.remote<suffix>.pubkeys =
576 Comma separated list of raw public keys to accept for authentication.
578 Comma separated list of raw public keys to accept for authentication.
579 The public keys may use a relative path from the **swanctl** _pubkey_
580 directory or an absolute path.
582 connections.<conn>.remote<suffix>.revocation = relaxed
583 Certificate revocation policy, (_strict_, _ifuri_ or _relaxed_).
585 Certificate revocation policy for CRL or OCSP revocation.
587 A _strict_ revocation policy fails if no revocation information is
588 available, i.e. the certificate is not known to be unrevoked.
590 _ifuri_ fails only if a CRL/OCSP URI is available, but certificate
591 revocation checking fails, i.e. there should be revocation information
592 available, but it could not be obtained.
594 The default revocation policy _relaxed_ fails only if a certificate
595 is revoked, i.e. it is explicitly known that it is bad.
597 connections.<conn>.remote<suffix>.auth = pubkey
598 Authentication to expect from remote (_pubkey_, _psk_, _xauth[-backend]_ or
601 Authentication to expect from remote. See the **local** section's **auth**
602 keyword description about the details of supported mechanisms.
604 To require a trustchain public key strength for the remote side, specify the
605 key type followed by the minimum strength in bits (for example _ecdsa-384_
606 or _rsa-2048-ecdsa-256_). To limit the acceptable set of hashing algorithms
607 for trustchain validation, append hash algorithms to _pubkey_ or a key
608 strength definition (for example _pubkey-sha256-sha512_,
609 _rsa-2048-sha256-sha384-sha512_ or
610 _rsa-2048-sha256-ecdsa-256-sha256-sha384_).
611 Unless disabled in **strongswan.conf**(5), or explicit IKEv2 signature
612 constraints are configured (refer to the description of the **local**
613 section's **auth** keyword for details), such key types and hash algorithms
614 are also applied as constraints against IKEv2 signature authentication
615 schemes used by the remote side. To require RSASSA-PSS signatures use
616 _rsa/pss_ instead of _pubkey_ or _rsa_ as in e.g. _rsa/pss-sha256_. If
617 _pubkey_ or _rsa_ constraints are configured RSASSA-PSS signatures will only
618 be accepted if enabled in **strongswan.conf**(5).
620 To specify trust chain constraints for EAP-(T)TLS, append a colon to the
621 EAP method, followed by the key type/size and hash algorithm as discussed
622 above (e.g. _eap-tls:ecdsa-384-sha384_).
624 connections.<conn>.children.<child> {}
625 CHILD_SA configuration sub-section.
627 CHILD_SA configuration sub-section. Each connection definition may have
628 one or more sections in its _children_ subsection. The section name
629 defines the name of the CHILD_SA configuration, which must be unique within
632 connections.<conn>.children.<child>.ah_proposals =
633 AH proposals to offer for the CHILD_SA.
635 AH proposals to offer for the CHILD_SA. A proposal is a set of algorithms.
636 For AH, this includes an integrity algorithm and an optional Diffie-Hellman
637 group. If a DH group is specified, CHILD_SA/Quick Mode rekeying and initial
638 negotiation uses a separate Diffie-Hellman exchange using the specified
639 group (refer to _esp_proposals_ for details).
641 In IKEv2, multiple algorithms of the same kind can be specified in a single
642 proposal, from which one gets selected. In IKEv1, only one algorithm per
643 kind is allowed per proposal, more algorithms get implicitly stripped. Use
644 multiple proposals to offer different algorithms combinations in IKEv1.
646 Algorithm keywords get separated using dashes. Multiple proposals may be
647 separated by commas. The special value _default_ forms a default proposal
648 of supported algorithms considered safe, and is usually a good choice
649 for interoperability. By default no AH proposals are included, instead ESP
652 connections.<conn>.children.<child>.esp_proposals = default
653 ESP proposals to offer for the CHILD_SA.
655 ESP proposals to offer for the CHILD_SA. A proposal is a set of algorithms.
656 For ESP non-AEAD proposals, this includes an integrity algorithm, an
657 encryption algorithm, an optional Diffie-Hellman group and an optional
658 Extended Sequence Number Mode indicator. For AEAD proposals, a combined
659 mode algorithm is used instead of the separate encryption/integrity
662 If a DH group is specified, CHILD_SA/Quick Mode rekeying and initial
663 negotiation use a separate Diffie-Hellman exchange using the specified
664 group. However, for IKEv2, the keys of the CHILD_SA created implicitly with
665 the IKE_SA will always be derived from the IKE_SA's key material. So any DH
666 group specified here will only apply when the CHILD_SA is later rekeyed or
667 is created with a separate CREATE_CHILD_SA exchange. A proposal mismatch
668 might, therefore, not immediately be noticed when the SA is established, but
669 may later cause rekeying to fail.
671 Extended Sequence Number support may be indicated with the _esn_ and _noesn_
672 values, both may be included to indicate support for both modes. If omitted,
675 In IKEv2, multiple algorithms of the same kind can be specified in a single
676 proposal, from which one gets selected. In IKEv1, only one algorithm per
677 kind is allowed per proposal, more algorithms get implicitly stripped. Use
678 multiple proposals to offer different algorithms combinations in IKEv1.
680 Algorithm keywords get separated using dashes. Multiple proposals may be
681 separated by commas. The special value _default_ forms a default proposal
682 of supported algorithms considered safe, and is usually a good choice
683 for interoperability. If no algorithms are specified for AH nor ESP,
684 the _default_ set of algorithms for ESP is included.
686 connections.<conn>.children.<child>.sha256_96 = no
687 Use incorrect 96-bit truncation for HMAC-SHA-256.
689 HMAC-SHA-256 is used with 128-bit truncation with IPsec. For compatibility
690 with implementations that incorrectly use 96-bit truncation this option may
691 be enabled to configure the shorter truncation length in the kernel. This
692 is not negotiated, so this only works with peers that use the incorrect
693 truncation length (or have this option enabled).
695 connections.<conn>.children.<child>.local_ts = dynamic
696 Local traffic selectors to include in CHILD_SA.
698 Comma separated list of local traffic selectors to include in CHILD_SA.
699 Each selector is a CIDR subnet definition, followed by an optional
700 proto/port selector. The special value _dynamic_ may be used instead of a
701 subnet definition, which gets replaced by the tunnel outer address or the
702 virtual IP, if negotiated. This is the default.
704 A protocol/port selector is surrounded by opening and closing square
705 brackets. Between these brackets, a numeric or **getservent**(3) protocol
706 name may be specified. After the optional protocol restriction, an optional
707 port restriction may be specified, separated by a slash. The port
708 restriction may be numeric, a **getservent**(3) service name, or the special
709 value _opaque_ for RFC 4301 OPAQUE selectors. Port ranges may be specified
710 as well, none of the kernel backends currently support port ranges, though.
712 When IKEv1 is used only the first selector is interpreted, except if
713 the Cisco Unity extension plugin is used. This is due to a limitation of the
714 IKEv1 protocol, which only allows a single pair of selectors per CHILD_SA.
715 So to tunnel traffic matched by several pairs of selectors when using IKEv1
716 several children (CHILD_SAs) have to be defined that cover the selectors.
718 The IKE daemon uses traffic selector narrowing for IKEv1, the same way it is
719 standardized and implemented for IKEv2. However, this may lead to problems
720 with other implementations. To avoid that, configure identical selectors in
723 connections.<conn>.children.<child>.remote_ts = dynamic
724 Remote selectors to include in CHILD_SA.
726 Comma separated list of remote selectors to include in CHILD_SA. See
727 **local_ts** for a description of the selector syntax.
729 connections.<conn>.children.<child>.rekey_time = 1h
730 Time to schedule CHILD_SA rekeying.
732 Time to schedule CHILD_SA rekeying. CHILD_SA rekeying refreshes key
733 material, optionally using a Diffie-Hellman exchange if a group is
734 specified in the proposal.
736 To avoid rekey collisions initiated by both ends simultaneously, a value
737 in the range of **rand_time** gets subtracted to form the effective soft
740 By default CHILD_SA rekeying is scheduled every hour, minus **rand_time**.
742 connections.<conn>.children.<child>.life_time = rekey_time + 10%
743 Maximum lifetime before CHILD_SA gets closed, as time.
745 Maximum lifetime before CHILD_SA gets closed. Usually this hard lifetime
746 is never reached, because the CHILD_SA gets rekeyed before.
747 If that fails for whatever reason, this limit closes the CHILD_SA.
749 The default is 10% more than the **rekey_time**.
751 connections.<conn>.children.<child>.rand_time = life_time - rekey_time
752 Range of random time to subtract from **rekey_time**.
754 Time range from which to choose a random value to subtract from
755 **rekey_time**. The default is the difference between **life_time** and
758 connections.<conn>.children.<child>.rekey_bytes = 0
759 Number of bytes processed before initiating CHILD_SA rekeying.
761 Number of bytes processed before initiating CHILD_SA rekeying. CHILD_SA
762 rekeying refreshes key material, optionally using a Diffie-Hellman exchange
763 if a group is specified in the proposal.
765 To avoid rekey collisions initiated by both ends simultaneously, a value
766 in the range of **rand_bytes** gets subtracted to form the effective soft
769 Volume based CHILD_SA rekeying is disabled by default.
771 connections.<conn>.children.<child>.life_bytes = rekey_bytes + 10%
772 Maximum bytes processed before CHILD_SA gets closed.
774 Maximum bytes processed before CHILD_SA gets closed. Usually this hard
775 volume limit is never reached, because the CHILD_SA gets rekeyed before.
776 If that fails for whatever reason, this limit closes the CHILD_SA.
778 The default is 10% more than **rekey_bytes**.
780 connections.<conn>.children.<child>.rand_bytes = life_bytes - rekey_bytes
781 Range of random bytes to subtract from **rekey_bytes**.
783 Byte range from which to choose a random value to subtract from
784 **rekey_bytes**. The default is the difference between **life_bytes** and
787 connections.<conn>.children.<child>.rekey_packets = 0
788 Number of packets processed before initiating CHILD_SA rekeying.
790 Number of packets processed before initiating CHILD_SA rekeying. CHILD_SA
791 rekeying refreshes key material, optionally using a Diffie-Hellman exchange
792 if a group is specified in the proposal.
794 To avoid rekey collisions initiated by both ends simultaneously, a value
795 in the range of **rand_packets** gets subtracted to form the effective soft
798 Packet count based CHILD_SA rekeying is disabled by default.
800 connections.<conn>.children.<child>.life_packets = rekey_packets + 10%
801 Maximum number of packets processed before CHILD_SA gets closed.
803 Maximum number of packets processed before CHILD_SA gets closed. Usually
804 this hard packets limit is never reached, because the CHILD_SA gets rekeyed
805 before. If that fails for whatever reason, this limit closes the CHILD_SA.
807 The default is 10% more than **rekey_bytes**.
809 connections.<conn>.children.<child>.rand_packets = life_packets - rekey_packets
810 Range of random packets to subtract from **packets_bytes**.
812 Packet range from which to choose a random value to subtract from
813 **rekey_packets**. The default is the difference between **life_packets**
814 and **rekey_packets**.
816 connections.<conn>.children.<child>.updown =
817 Updown script to invoke on CHILD_SA up and down events.
819 connections.<conn>.children.<child>.hostaccess = no
820 Hostaccess variable to pass to **updown** script.
822 connections.<conn>.children.<child>.mode = tunnel
823 IPsec Mode to establish (_tunnel_, _transport_, _transport_proxy_, _beet_,
826 IPsec Mode to establish CHILD_SA with. _tunnel_ negotiates the CHILD_SA
827 in IPsec Tunnel Mode, whereas _transport_ uses IPsec Transport Mode.
828 _transport_proxy_ signifying the special Mobile IPv6 Transport Proxy Mode.
829 _beet_ is the Bound End to End Tunnel mixture mode, working with fixed inner
830 addresses without the need to include them in each packet.
832 Both _transport_ and _beet_ modes are subject to mode negotiation; _tunnel_
833 mode is negotiated if the preferred mode is not available.
835 _pass_ and _drop_ are used to install shunt policies which explicitly
836 bypass the defined traffic from IPsec processing or drop it, respectively.
838 connections.<conn>.children.<child>.policies = yes
839 Whether to install IPsec policies or not.
841 Whether to install IPsec policies or not. Disabling this can be useful in
842 some scenarios e.g. MIPv6, where policies are not managed by the IKE daemon.
844 connections.<conn>.children.<child>.policies_fwd_out = no
845 Whether to install outbound FWD IPsec policies or not.
847 Whether to install outbound FWD IPsec policies or not. Enabling this is
848 required in case there is a drop policy that would match and block forwarded
849 traffic for this CHILD_SA.
851 connections.<conn>.children.<child>.dpd_action = clear
852 Action to perform on DPD timeout (_clear_, _trap_ or _restart_).
854 Action to perform for this CHILD_SA on DPD timeout. The default _clear_
855 closes the CHILD_SA and does not take further action. _trap_ installs
856 a trap policy, which will catch matching traffic and tries to re-negotiate
857 the tunnel on-demand. _restart_ immediately tries to re-negotiate the
858 CHILD_SA under a fresh IKE_SA.
860 connections.<conn>.children.<child>.ipcomp = no
861 Enable IPComp compression before encryption.
863 Enable IPComp compression before encryption. If enabled, IKE tries to
864 negotiate IPComp compression to compress ESP payload data prior to
867 connections.<conn>.children.<child>.inactivity = 0s
868 Timeout before closing CHILD_SA after inactivity.
870 Timeout before closing CHILD_SA after inactivity. If no traffic has
871 been processed in either direction for the configured timeout, the CHILD_SA
872 gets closed due to inactivity. The default value of _0_ disables inactivity
875 connections.<conn>.children.<child>.reqid = 0
876 Fixed reqid to use for this CHILD_SA.
878 Fixed reqid to use for this CHILD_SA. This might be helpful in some
879 scenarios, but works only if each CHILD_SA configuration is instantiated
880 not more than once. The default of _0_ uses dynamic reqids, allocated
883 connections.<conn>.children.<child>.priority = 0
884 Optional fixed priority for IPsec policies.
886 Optional fixed priority for IPsec policies. This could be useful to install
887 high-priority drop policies. The default of _0_ uses dynamically calculated
888 priorities based on the size of the traffic selectors.
890 connections.<conn>.children.<child>.interface =
891 Optional interface name to restrict IPsec policies.
893 connections.<conn>.children.<child>.mark_in = 0/0x00000000
894 Netfilter mark and mask for input traffic.
896 Netfilter mark and mask for input traffic. On Linux, Netfilter may require
897 marks on each packet to match an SA/policy having that option set. This
898 allows installing duplicate policies and enables Netfilter rules to select
899 specific SAs/policies for incoming traffic. Note that inbound marks are
900 only set on policies, by default, unless *mark_in_sa* is enabled. The
901 special value _%unique_ sets a unique mark on each CHILD_SA instance, beyond
902 that the value _%unique-dir_ assigns a different unique mark for each
903 CHILD_SA direction (in/out).
905 An additional mask may be appended to the mark, separated by _/_. The
906 default mask if omitted is 0xffffffff.
908 connections.<conn>.children.<child>.mark_in_sa = no
909 Whether to set *mark_in* on the inbound SA.
911 Whether to set *mark_in* on the inbound SA. By default, the inbound mark is
912 only set on the inbound policy. The tuple destination address, protocol and
913 SPI is unique and the mark is not required to find the correct SA, allowing
914 to mark traffic after decryption instead (where more specific selectors may
915 be used) to match different policies. Marking packets before decryption is
916 still possible, even if no mark is set on the SA.
918 connections.<conn>.children.<child>.mark_out = 0/0x00000000
919 Netfilter mark and mask for output traffic.
921 Netfilter mark and mask for output traffic. On Linux, Netfilter may require
922 marks on each packet to match a policy/SA having that option set. This
923 allows installing duplicate policies and enables Netfilter rules to select
924 specific policies/SAs for outgoing traffic. The special value _%unique_ sets
925 a unique mark on each CHILD_SA instance, beyond that the value _%unique-dir_
926 assigns a different unique mark for each CHILD_SA direction (in/out).
928 An additional mask may be appended to the mark, separated by _/_. The
929 default mask if omitted is 0xffffffff.
931 connections.<conn>.children.<child>.if_id_in = 0
932 Inbound XFRM interface ID.
934 XFRM interface ID set on inbound policies/SA. This allows installing
935 duplicate policies/SAs and associates them with an interface with the same
936 ID. The special value _%unique_ sets a unique interface ID on each CHILD_SA
937 instance, beyond that the value _%unique-dir_ assigns a different unique
938 interface ID for each CHILD_SA direction (in/out).
940 connections.<conn>.children.<child>.if_id_out = 0
941 Outbound XFRM interface ID.
943 XFRM interface ID set on outbound policies/SA. This allows installing
944 duplicate policies/SAs and associates them with an interface with the same
945 ID. The special value _%unique_ sets a unique interface ID on each CHILD_SA
946 instance, beyond that the value _%unique-dir_ assigns a different unique
947 interface ID for each CHILD_SA direction (in/out).
949 The daemon will not install routes for CHILD_SAs that have this option set.
951 connections.<conn>.children.<child>.set_mark_in = 0/0x00000000
952 Netfilter mark applied to packets after the inbound IPsec SA processed them.
954 Netfilter mark applied to packets after the inbound IPsec SA processed them.
955 This way it's not necessary to mark packets via Netfilter before decryption
956 or right afterwards to match policies or process them differently (e.g. via
959 An additional mask may be appended to the mark, separated by _/_. The
960 default mask if omitted is 0xffffffff. The special value _%same_ uses
961 the value (but not the mask) from **mark_in** as mark value, which can be
962 fixed, _%unique_ or _%unique-dir_.
964 Setting marks in XFRM input requires Linux 4.19 or higher.
966 connections.<conn>.children.<child>.set_mark_out = 0/0x00000000
967 Netfilter mark applied to packets after the outbound IPsec SA processed
970 Netfilter mark applied to packets after the outbound IPsec SA processed
971 them. This allows processing ESP packets differently than the original
972 traffic (e.g. via policy routing).
974 An additional mask may be appended to the mark, separated by _/_. The
975 default mask if omitted is 0xffffffff. The special value _%same_ uses
976 the value (but not the mask) from **mark_out** as mark value, which can be
977 fixed, _%unique_ or _%unique-dir_.
979 Setting marks in XFRM output is supported since Linux 4.14. Setting a mask
980 requires at least Linux 4.19.
982 connections.<conn>.children.<child>.tfc_padding = 0
983 Traffic Flow Confidentiality padding.
985 Pads ESP packets with additional data to have a consistent ESP packet size
986 for improved Traffic Flow Confidentiality. The padding defines the minimum
987 size of all ESP packets sent.
989 The default value of 0 disables TFC padding, the special value _mtu_ adds
990 TFC padding to create a packet size equal to the Path Maximum Transfer Unit.
992 connections.<conn>.children.<child>.replay_window = 32
993 IPsec replay window to configure for this CHILD_SA.
995 IPsec replay window to configure for this CHILD_SA. Larger values than the
996 default of 32 are supported using the Netlink backend only, a value of 0
997 disables IPsec replay protection.
999 connections.<conn>.children.<child>.hw_offload = no
1000 Enable hardware offload for this CHILD_SA, if supported by the IPsec
1003 Enable hardware offload for this CHILD_SA, if supported by the IPsec
1004 implementation. The value _yes_ enforces offloading and the installation
1005 will fail if it's not supported by either kernel or device. The value _auto_
1006 enables offloading, if it's supported, but the installation does not fail
1009 connections.<conn>.children.<child>.copy_df = yes
1010 Whether to copy the DF bit to the outer IPv4 header in tunnel mode.
1012 Whether to copy the DF bit to the outer IPv4 header in tunnel mode. This
1013 effectively disables Path MTU discovery (PMTUD). Controlling this behavior
1014 is not supported by all kernel interfaces.
1016 connections.<conn>.children.<child>.copy_ecn = yes
1017 Whether to copy the ECN header field to/from the outer IP header in tunnel
1020 Whether to copy the ECN (Explicit Congestion Notification) header field
1021 to/from the outer IP header in tunnel mode. Controlling this behavior is not
1022 supported by all kernel interfaces.
1024 connections.<conn>.children.<child>.copy_dscp = out
1025 Whether to copy the DSCP header field to/from the outer IP header in tunnel
1028 Whether to copy the DSCP (Differentiated Services Field Codepoint) header
1029 field to/from the outer IP header in tunnel mode. The value _out_ only
1030 copies the field from the inner to the outer header, the value _in_ does the
1031 opposite and only copies the field from the outer to the inner header when
1032 decapsulating, the value _yes_ copies the field in both directions, and the
1033 value _no_ disables copying the field altogether. Setting this to _yes_ or
1034 _in_ could allow an attacker to adversely affect other traffic at the
1035 receiver, which is why the default is _out_. Controlling this behavior is
1036 not supported by all kernel interfaces.
1038 connections.<conn>.children.<child>.start_action = none
1039 Action to perform after loading the configuration (_none_, _trap_, _start_).
1041 Action to perform after loading the configuration. The default of _none_
1042 loads the connection only, which then can be manually initiated or used as
1043 a responder configuration.
1045 The value _trap_ installs a trap policy, which triggers the tunnel as soon
1046 as matching traffic has been detected. The value _start_ initiates
1047 the connection actively.
1049 When unloading or replacing a CHILD_SA configuration having a
1050 **start_action** different from _none_, the inverse action is performed.
1051 Configurations with _start_ get closed, while such with _trap_ get
1054 connections.<conn>.children.<child>.close_action = none
1055 Action to perform after a CHILD_SA gets closed (_none_, _trap_, _start_).
1057 Action to perform after a CHILD_SA gets closed by the peer. The default of
1058 _none_ does not take any action, _trap_ installs a trap policy for the
1059 CHILD_SA. _start_ tries to re-create the CHILD_SA.
1061 **close_action** does not provide any guarantee that the CHILD_SA is kept
1062 alive. It acts on explicit close messages only, but not on negotiation
1063 failures. Use trap policies to reliably re-create failed CHILD_SAs.
1066 Section defining secrets for IKE/EAP/XAuth authentication and private
1069 Section defining secrets for IKE/EAP/XAuth authentication and private key
1070 decryption. The **secrets** section takes sub-sections having a specific
1071 prefix which defines the secret type.
1073 It is not recommended to define any private key decryption passphrases,
1074 as then there is no real security benefit in having encrypted keys. Either
1075 store the key unencrypted or enter the keys manually when loading
1078 secrets.eap<suffix> { # }
1079 EAP secret section for a specific secret.
1081 EAP secret section for a specific secret. Each EAP secret is defined in
1082 a unique section having the _eap_ prefix. EAP secrets are used for XAuth
1083 authentication as well.
1085 secrets.xauth<suffix> { # }
1086 XAuth secret section for a specific secret.
1088 XAuth secret section for a specific secret. **xauth** is just an alias
1089 for **eap**, secrets under both section prefixes are used for both EAP and
1090 XAuth authentication.
1092 secrets.eap<suffix>.secret =
1093 Value of the EAP/XAuth secret.
1095 Value of the EAP/XAuth secret. It may either be an ASCII string, a hex
1096 encoded string if it has a _0x_ prefix or a Base64 encoded string if it
1097 has a _0s_ prefix in its value.
1099 secrets.eap<suffix>.id<suffix> =
1100 Identity the EAP/XAuth secret belongs to.
1102 Identity the EAP/XAuth secret belongs to. Multiple unique identities may
1103 be specified, each having an _id_ prefix, if a secret is shared between
1106 secrets.ntlm<suffix> { # }
1107 NTLM secret section for a specific secret.
1109 NTLM secret section for a specific secret. Each NTLM secret is defined in
1110 a unique section having the _ntlm_ prefix. NTLM secrets may only be used for
1111 EAP-MSCHAPv2 authentication.
1113 secrets.ntlm<suffix>.secret =
1114 Value of the NTLM secret.
1116 Value of the NTLM secret, which is the NT Hash of the actual secret, that
1117 is, MD4(UTF-16LE(secret)). The resulting 16-byte value may either be given
1118 as a hex encoded string with a _0x_ prefix or as a Base64 encoded string
1121 secrets.ntlm<suffix>.id<suffix> =
1122 Identity the NTLM secret belongs to.
1124 Identity the NTLM secret belongs to. Multiple unique identities may
1125 be specified, each having an _id_ prefix, if a secret is shared between
1128 secrets.ike<suffix> { # }
1129 IKE preshared secret section for a specific secret.
1131 IKE preshared secret section for a specific secret. Each IKE PSK is defined
1132 in a unique section having the _ike_ prefix.
1134 secrets.ike<suffix>.secret =
1135 Value of the IKE preshared secret.
1137 Value of the IKE preshared secret. It may either be an ASCII string,
1138 a hex encoded string if it has a _0x_ prefix or a Base64 encoded string if
1139 it has a _0s_ prefix in its value.
1141 secrets.ike<suffix>.id<suffix> =
1142 IKE identity the IKE preshared secret belongs to.
1144 IKE identity the IKE preshared secret belongs to. Multiple unique identities
1145 may be specified, each having an _id_ prefix, if a secret is shared between
1148 secrets.ppk<suffix> { # }
1149 Postquantum Preshared Key (PPK) section for a specific secret.
1151 Postquantum Preshared Key (PPK) section for a specific secret. Each PPK is
1152 defined in a unique section having the _ppk_ prefix.
1154 secrets.ppk<suffix>.secret =
1157 Value of the PPK. It may either be an ASCII string, a hex encoded string if
1158 it has a _0x_ prefix or a Base64 encoded string if it has a _0s_ prefix in
1159 its value. Should have at least 256 bits of entropy for 128-bit security.
1161 secrets.ppk<suffix>.id<suffix> =
1162 PPK identity the PPK belongs to.
1164 PPK identity the PPK belongs to. Multiple unique identities
1165 may be specified, each having an _id_ prefix, if a secret is shared between
1168 secrets.private<suffix> { # }
1169 Private key decryption passphrase for a key in the _private_ folder.
1171 secrets.private<suffix>.file =
1172 File name in the _private_ folder for which this passphrase should be used.
1174 secrets.private<suffix>.secret
1175 Value of decryption passphrase for private key.
1177 secrets.rsa<suffix> { # }
1178 Private key decryption passphrase for a key in the _rsa_ folder.
1180 secrets.rsa<suffix>.file =
1181 File name in the _rsa_ folder for which this passphrase should be used.
1183 secrets.rsa<suffix>.secret
1184 Value of decryption passphrase for RSA key.
1186 secrets.ecdsa<suffix> { # }
1187 Private key decryption passphrase for a key in the _ecdsa_ folder.
1189 secrets.ecdsa<suffix>.file =
1190 File name in the _ecdsa_ folder for which this passphrase should be used.
1192 secrets.ecdsa<suffix>.secret
1193 Value of decryption passphrase for ECDSA key.
1195 secrets.pkcs8<suffix> { # }
1196 Private key decryption passphrase for a key in the _pkcs8_ folder.
1198 secrets.pkcs8<suffix>.file =
1199 File name in the _pkcs8_ folder for which this passphrase should be used.
1201 secrets.pkcs8<suffix>.secret
1202 Value of decryption passphrase for PKCS#8 key.
1204 secrets.pkcs12<suffix> { # }
1205 PKCS#12 decryption passphrase for a container in the _pkcs12_ folder.
1207 secrets.pkcs12<suffix>.file =
1208 File name in the _pkcs12_ folder for which this passphrase should be used.
1210 secrets.pkcs12<suffix>.secret
1211 Value of decryption passphrase for PKCS#12 container.
1213 secrets.token<suffix> { # }
1214 Definition for a private key that's stored on a token/smartcard.
1216 secrets.token<suffix>.handle =
1217 Hex-encoded CKA_ID of the private key on the token.
1219 secrets.token<suffix>.slot =
1220 Optional slot number to access the token.
1222 secrets.token<suffix>.module =
1223 Optional PKCS#11 module name to access the token.
1225 secrets.token<suffix>.pin =
1226 Optional PIN required to access the key on the token. If none is provided
1227 the user is prompted during an interactive --load-creds call.
1230 Section defining named pools.
1232 Section defining named pools. Named pools may be referenced by connections
1233 with the **pools** option to assign virtual IPs and other configuration
1237 Section defining a single pool with a unique name.
1239 pools.<name>.addrs =
1240 Addresses allocated in pool.
1242 Subnet or range defining addresses allocated in pool. Accepts a single CIDR
1243 subnet defining the pool to allocate addresses from or an address range
1244 (<from>-<to>). Pools must be unique and non-overlapping.
1246 pools.<name>.<attr> =
1247 Comma separated list of additional attributes from type <attr>.
1249 Comma separated list of additional attributes of type **<attr>**. The
1250 attribute type may be one of _dns_, _nbns_, _dhcp_, _netmask_, _server_,
1251 _subnet_, _split_include_ and _split_exclude_ to define addresses or CIDR
1252 subnets for the corresponding attribute types. Alternatively, **<attr>** can
1253 be a numerical identifier, for which string attribute values are accepted
1257 Section defining attributes of certification authorities.
1259 authorities.<name> { # }
1260 Section defining a certification authority with a unique name.
1262 authorities.<name>.cacert =
1263 CA certificate belonging to the certification authority.
1265 CA certificate belonging to the certification authority. The certificates
1266 may use a relative path from the **swanctl** _x509ca_ directory or an
1269 Configure one of _cacert_, _file_, or _handle_ per section.
1271 authorities.<name>.file =
1272 Absolute path to the certificate to load.
1274 Absolute path to the certificate to load. Passed as-is to the daemon, so it
1275 must be readable by it.
1277 Configure one of _cacert_, _file_, or _handle_ per section.
1279 authorities.<name>.handle =
1280 Hex-encoded CKA_ID of the CA certificate on a token.
1282 Hex-encoded CKA_ID of the CA certificate on a token.
1284 Configure one of _cacert_, _file_, or _handle_ per section.
1286 authorities.<name>.slot =
1287 Optional slot number of the token that stores the CA certificate.
1289 authorities.<name>.module =
1290 Optional PKCS#11 module name.
1292 authorities.<name>.crl_uris =
1293 Comma-separated list of CRL distribution points.
1295 Comma-separated list of CRL distribution points (ldap, http, or file URI).
1297 authorities.<name>.ocsp_uris =
1298 Comma-separated list of OCSP URIs.
1300 authorities.<name>.cert_uri_base =
1301 Defines the base URI for the Hash and URL feature supported by IKEv2.
1303 Defines the base URI for the Hash and URL feature supported by IKEv2.
1304 Instead of exchanging complete certificates, IKEv2 allows one to send an
1305 URI that resolves to the DER encoded certificate. The certificate URIs are
1306 built by appending the SHA1 hash of the DER encoded certificates to this
1309 include conf.d/*.conf
1310 Include config snippets