controller: Make child config optional for initiate()
[strongswan.git] / src / swanctl / swanctl.opt
1 connections { # }
2         Section defining IKE connection configurations.
3
4         Section defining IKE connection configurations.
5
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.
10
11 connections.<conn> { # }
12         Section for an IKE connection named <conn>.
13
14 connections.<conn>.version = 0
15         IKE major version to use for connection.
16
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.
20
21 connections.<conn>.local_addrs = %any
22         Local address(es) to use for IKE communication, comma separated.
23
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.
26
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.
30
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.
33
34 connections.<conn>.remote_addrs = %any
35         Remote address(es) to use for IKE communication, comma separated.
36
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.
39
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.
43
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.
46
47         To initiate a connection, at least one specific address or DNS name must
48         be specified.
49
50 connections.<conn>.local_port = 500
51         Local UDP port for IKE communication.
52
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.
56
57         Using a non-default local IKE port requires support from the socket backend
58         in use (socket-dynamic).
59
60 connections.<conn>.remote_port = 500
61         Remote UDP port for IKE communication.
62
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.
65
66 connections.<conn>.proposals = default
67         Comma separated proposals to accept for IKE.
68
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.
73
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.
78
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
82         for interoperability.
83
84 connections.<conn>.vips =
85         Virtual IPs to request in configuration payload / Mode Config.
86
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.
91
92 connections.<conn>.aggressive = no
93         Use Aggressive Mode in IKEv1.
94
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
99         Preshared Key.
100
101 connections.<conn>.pull = yes
102         Set the Mode Config mode to use.
103
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.
107
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.
110
111 connections.<conn>.dscp = 000000
112         Differentiated Services Field Codepoint to set on outgoing IKE packets (six
113         binary digits).
114
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.
118
119 connections.<conn>.encap = no
120         Enforce UDP encapsulation by faking NAT-D payloads.
121
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.
125
126         Usually this is not required, but it can help to work around connectivity
127         issues with too restrictive intermediary firewalls.
128
129 connections.<conn>.mobike = yes
130         Enables MOBIKE on IKEv2 connections.
131
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.
135
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.
140
141 connections.<conn>.dpd_delay = 0s
142         Interval of liveness checks (DPD).
143
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.
147
148 connections.<conn>.dpd_timeout = 0s
149         Timeout for DPD checks (IKEV1 only).
150
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.
155
156 connections.<conn>.fragmentation = yes
157         Use IKE UDP datagram fragmentation.  (_yes_, _accept_, _no_ or _force_).
158
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.
167
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_).
170
171 connections.<conn>.send_certreq = yes
172         Send certificate requests payloads (_yes_ or _no_).
173
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.
177
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.
181
182 connections.<conn>.send_cert = ifasked
183         Send certificate payloads (_always_, _never_ or _ifasked_).
184
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.
190
191 connections.<conn>.ppk_id =
192         String identifying the Postquantum Preshared Key (PPK) to be used.
193
194 connections.<conn>.ppk_required = no
195         Whether a Postquantum Preshared Key (PPK) is required for this connection.
196
197 connections.<conn>.keyingtries = 1
198         Number of retransmission sequences to perform during initial connect.
199
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.
205
206 connections.<conn>.unique = no
207         Connection uniqueness policy (_never_, _no_, _keep_ or _replace_).
208
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
216         gets established.
217
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.
221
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.
226
227 connections.<conn>.reauth_time = 0s
228         Time to schedule IKE reauthentication.
229
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.
235
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.
239
240 connections.<conn>.rekey_time = 4h
241         Time to schedule IKE rekeying.
242
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.
246
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.
251
252 connections.<conn>.over_time = 10% of rekey_time/reauth_time
253         Hard IKE_SA lifetime if rekey/reauth does not complete, as time.
254
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
259         IKE_SA gets closed.
260
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.
263
264         The default is 10% of the longer of **rekey_time** and **reauth_time**.
265
266 connections.<conn>.rand_time = over_time
267         Range of random time to subtract from rekey/reauth times.
268
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
272         rekey/reauth times.
273
274         The default is equal to the configured **over_time**.
275
276 connections.<conn>.pools =
277         Comma separated list of named IP pools.
278
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.
282
283 connections.<conn>.if_id_in = 0
284         Default inbound XFRM interface ID for children.
285
286         XFRM interface ID set on inbound policies/SA, can be overridden by child
287         config, see there for details.
288
289 connections.<conn>.if_id_out = 0
290         Default outbound XFRM interface ID for children.
291
292         XFRM interface ID set on outbound policies/SA, can be overridden by child
293         cofnig, see there for details.
294
295 connections.<conn>.mediation = no
296         Whether this connection is a mediation connection.
297
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.
301
302 connections.<conn>.mediated_by =
303         The name of the connection to mediate this connection through.
304
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.
308
309 connections.<conn>.mediation_peer =
310         Identity under which the peer is registered at the mediation server.
311
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.
318
319 connections.<conn>.local<suffix> {}
320         Section for a local authentication round.
321
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
325         or IKEv1 XAuth.
326
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
329         omitted.
330
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
334         message.
335
336 connections.<conn>.local<suffix>.certs =
337         Comma separated list of certificate candidates to use for authentication.
338
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.
342
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.
346
347 connections.<conn>.local<suffix>.cert<suffix> =
348         Section for a certificate candidate to use for authentication.
349
350         Section for a certificate candidate to use for authentication. Certificates
351         in _certs_ are transmitted as binary blobs, these sections offer more
352         flexibility.
353
354 connections.<conn>.local<suffix>.cert<suffix>.file =
355         Absolute path to the certificate to load.
356
357         Absolute path to the certificate to load. Passed as-is to the daemon, so it
358         must be readable by it.
359
360         Configure either this or _handle_, but not both, in one section.
361
362 connections.<conn>.local<suffix>.cert<suffix>.handle =
363         Hex-encoded CKA_ID of the certificate on a token.
364
365         Hex-encoded CKA_ID of the certificate on a token.
366
367         Configure either this or _file_, but not both, in one section.
368
369 connections.<conn>.local<suffix>.cert<suffix>.slot =
370         Optional slot number of the token that stores the certificate.
371
372 connections.<conn>.local<suffix>.cert<suffix>.module =
373         Optional PKCS#11 module name.
374
375 connections.<conn>.local<suffix>.pubkeys =
376         Comma separated list of raw public key candidates to use for authentication.
377
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.
381
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.
384
385 connections.<conn>.local<suffix>.auth = pubkey
386         Authentication to perform locally (_pubkey_, _psk_, _xauth[-backend]_ or
387         _eap[-method]_).
388
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.
394
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.
400
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.
404
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).
421
422 connections.<conn>.local<suffix>.id =
423         IKE identity to use for authentication round.
424
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.
428
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.
444
445 connections.<conn>.local<suffix>.eap_id = id
446         Client EAP-Identity to use in EAP-Identity exchange and the EAP method.
447
448 connections.<conn>.local<suffix>.aaa_id = remote-id
449         Server side EAP-Identity to expect in the EAP method.
450
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.
455
456         For EAP-(T)TLS, this defines the identity for which the server must provide
457         a certificate in the TLS exchange.
458
459 connections.<conn>.local<suffix>.xauth_id = id
460         Client XAuth username used in the XAuth exchange.
461
462 connections.<conn>.remote<suffix> {}
463         Section for a remote authentication round.
464
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.
469
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
472         may be omitted.
473
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
477         message.
478
479 connections.<conn>.remote<suffix>.id = %any
480         IKE identity to expect for authentication round.
481
482         IKE identity to expect for authentication round. Refer to the _local_ _id_
483         section for details.
484
485 connections.<conn>.remote<suffix>.eap_id = id
486         Identity to use as peer identity during EAP authentication.
487
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.
490
491 connections.<conn>.remote<suffix>.groups =
492         Authorization group memberships to require.
493
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.
498
499 connections.<conn>.remote<suffix>.cert_policy =
500         Certificate policy OIDs the peer's certificate must have.
501
502         Comma separated list of certificate policy OIDs the peer's certificate must
503         have. OIDs are specified using the numerical dotted representation.
504
505 connections.<conn>.remote<suffix>.certs =
506         Comma separated list of certificate to accept for authentication.
507
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.
511
512 connections.<conn>.remote<suffix>.cert<suffix> =
513         Section for a certificate to accept for authentication.
514
515         Section for a certificate to accept for authentication. Certificates
516         in _certs_ are transmitted as binary blobs, these sections offer more
517         flexibility.
518
519 connections.<conn>.remote<suffix>.cert<suffix>.file =
520         Absolute path to the certificate to load.
521
522         Absolute path to the certificate to load. Passed as-is to the daemon, so it
523         must be readable by it.
524
525         Configure either this or _handle_, but not both, in one section.
526
527 connections.<conn>.remote<suffix>.cert<suffix>.handle =
528         Hex-encoded CKA_ID of the certificate on a token.
529
530         Hex-encoded CKA_ID of the certificate on a token.
531
532         Configure either this or _file_, but not both, in one section.
533
534 connections.<conn>.remote<suffix>.cert<suffix>.slot =
535         Optional slot number of the token that stores the certificate.
536
537 connections.<conn>.remote<suffix>.cert<suffix>.module =
538         Optional PKCS#11 module name.
539
540 connections.<conn>.remote<suffix>.cacerts =
541         Comma separated list of CA certificates to accept for authentication.
542
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.
546
547 connections.<conn>.remote<suffix>.cacert<suffix> =
548         Section for a CA certificate to accept for authentication.
549
550         Section for a CA certificate to accept for authentication. Certificates
551         in _cacerts_ are transmitted as binary blobs, these sections offer more
552         flexibility.
553
554 connections.<conn>.remote<suffix>.cacert<suffix>.file =
555         Absolute path to the certificate to load.
556
557         Absolute path to the certificate to load. Passed as-is to the daemon, so it
558         must be readable by it.
559
560         Configure either this or _handle_, but not both, in one section.
561
562 connections.<conn>.remote<suffix>.cacert<suffix>.handle =
563         Hex-encoded CKA_ID of the CA certificate on a token.
564
565         Hex-encoded CKA_ID of the CA certificate on a token.
566
567         Configure either this or _file_, but not both, in one section.
568
569 connections.<conn>.remote<suffix>.cacert<suffix>.slot =
570         Optional slot number of the token that stores the CA certificate.
571
572 connections.<conn>.remote<suffix>.cacert<suffix>.module =
573         Optional PKCS#11 module name.
574
575 connections.<conn>.remote<suffix>.pubkeys =
576         Comma separated list of raw public keys to accept for authentication.
577
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.
581
582 connections.<conn>.remote<suffix>.revocation = relaxed
583         Certificate revocation policy, (_strict_, _ifuri_ or _relaxed_).
584
585         Certificate revocation policy for CRL or OCSP revocation.
586
587         A _strict_ revocation policy fails if no revocation information is
588         available, i.e. the certificate is not known to be unrevoked.
589
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.
593
594         The default revocation policy _relaxed_ fails only if a certificate
595         is revoked, i.e. it is explicitly known that it is bad.
596
597 connections.<conn>.remote<suffix>.auth = pubkey
598         Authentication to expect from remote (_pubkey_, _psk_, _xauth[-backend]_ or
599         _eap[-method]_).
600
601         Authentication to expect from remote. See the **local** section's **auth**
602         keyword description about the details of supported mechanisms.
603
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).
619
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_).
623
624 connections.<conn>.children.<child> {}
625         CHILD_SA configuration sub-section.
626
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
630         the connection.
631
632 connections.<conn>.children.<child>.ah_proposals =
633         AH proposals to offer for the CHILD_SA.
634
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).
640
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.
645
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
650         is proposed.
651
652 connections.<conn>.children.<child>.esp_proposals = default
653         ESP proposals to offer for the CHILD_SA.
654
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
660         algorithms.
661
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.
670
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,
673         _noesn_ is assumed.
674
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.
679
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.
685
686 connections.<conn>.children.<child>.sha256_96 = no
687         Use incorrect 96-bit truncation for HMAC-SHA-256.
688
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).
694
695 connections.<conn>.children.<child>.local_ts = dynamic
696         Local traffic selectors to include in CHILD_SA.
697
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.
703
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.
711
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.
717
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
721         such scenarios.
722
723 connections.<conn>.children.<child>.remote_ts = dynamic
724         Remote selectors to include in CHILD_SA.
725
726         Comma separated list of remote selectors to include in CHILD_SA. See
727         **local_ts** for a description of the selector syntax.
728
729 connections.<conn>.children.<child>.rekey_time = 1h
730         Time to schedule CHILD_SA rekeying.
731
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.
735
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
738         lifetime.
739
740         By default CHILD_SA rekeying is scheduled every hour, minus **rand_time**.
741
742 connections.<conn>.children.<child>.life_time = rekey_time + 10%
743         Maximum lifetime before CHILD_SA gets closed, as time.
744
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.
748
749         The default is 10% more than the **rekey_time**.
750
751 connections.<conn>.children.<child>.rand_time = life_time - rekey_time
752         Range of random time to subtract from **rekey_time**.
753
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
756         **rekey_time**.
757
758 connections.<conn>.children.<child>.rekey_bytes = 0
759         Number of bytes processed before initiating CHILD_SA rekeying.
760
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.
764
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
767         volume limit.
768
769         Volume based CHILD_SA rekeying is disabled by default.
770
771 connections.<conn>.children.<child>.life_bytes = rekey_bytes + 10%
772         Maximum bytes processed before CHILD_SA gets closed.
773
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.
777
778         The default is 10% more than **rekey_bytes**.
779
780 connections.<conn>.children.<child>.rand_bytes = life_bytes - rekey_bytes
781         Range of random bytes to subtract from **rekey_bytes**.
782
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
785         **rekey_bytes**.
786
787 connections.<conn>.children.<child>.rekey_packets = 0
788         Number of packets processed before initiating CHILD_SA rekeying.
789
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.
793
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
796         packet count limit.
797
798         Packet count based CHILD_SA rekeying is disabled by default.
799
800 connections.<conn>.children.<child>.life_packets = rekey_packets + 10%
801         Maximum number of packets processed before CHILD_SA gets closed.
802
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.
806
807         The default is 10% more than **rekey_bytes**.
808
809 connections.<conn>.children.<child>.rand_packets = life_packets - rekey_packets
810         Range of random packets to subtract from **packets_bytes**.
811
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**.
815
816 connections.<conn>.children.<child>.updown =
817         Updown script to invoke on CHILD_SA up and down events.
818
819 connections.<conn>.children.<child>.hostaccess = no
820         Hostaccess variable to pass to **updown** script.
821
822 connections.<conn>.children.<child>.mode = tunnel
823         IPsec Mode to establish (_tunnel_, _transport_, _transport_proxy_, _beet_,
824         _pass_ or _drop_).
825
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.
831
832         Both _transport_ and _beet_ modes are subject to mode negotiation; _tunnel_
833         mode is negotiated if the preferred mode is not available.
834
835         _pass_ and _drop_ are used to install shunt policies which explicitly
836         bypass the defined traffic from IPsec processing or drop it, respectively.
837
838 connections.<conn>.children.<child>.policies = yes
839         Whether to install IPsec policies or not.
840
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.
843
844 connections.<conn>.children.<child>.policies_fwd_out = no
845         Whether to install outbound FWD IPsec policies or not.
846
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.
850
851 connections.<conn>.children.<child>.dpd_action = clear
852         Action to perform on DPD timeout (_clear_, _trap_ or _restart_).
853
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.
859
860 connections.<conn>.children.<child>.ipcomp = no
861         Enable IPComp compression before encryption.
862
863         Enable IPComp compression before encryption. If enabled, IKE tries to
864         negotiate IPComp compression to compress ESP payload data prior to
865         encryption.
866
867 connections.<conn>.children.<child>.inactivity = 0s
868         Timeout before closing CHILD_SA after inactivity.
869
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
873         checks.
874
875 connections.<conn>.children.<child>.reqid = 0
876         Fixed reqid to use for this CHILD_SA.
877
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
881         incrementally.
882
883 connections.<conn>.children.<child>.priority = 0
884         Optional fixed priority for IPsec policies.
885
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.
889
890 connections.<conn>.children.<child>.interface =
891         Optional interface name to restrict IPsec policies.
892
893 connections.<conn>.children.<child>.mark_in = 0/0x00000000
894         Netfilter mark and mask for input traffic.
895
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).
904
905         An additional mask may be appended to the mark, separated by _/_. The
906         default mask if omitted is 0xffffffff.
907
908 connections.<conn>.children.<child>.mark_in_sa = no
909         Whether to set *mark_in* on the inbound SA.
910
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.
917
918 connections.<conn>.children.<child>.mark_out = 0/0x00000000
919         Netfilter mark and mask for output traffic.
920
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).
927
928         An additional mask may be appended to the mark, separated by _/_. The
929         default mask if omitted is 0xffffffff.
930
931 connections.<conn>.children.<child>.if_id_in = 0
932         Inbound XFRM interface ID.
933
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).
939
940 connections.<conn>.children.<child>.if_id_out = 0
941         Outbound XFRM interface ID.
942
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).
948
949         The daemon will not install routes for CHILD_SAs that have this option set.
950
951 connections.<conn>.children.<child>.set_mark_in = 0/0x00000000
952         Netfilter mark applied to packets after the inbound IPsec SA processed them.
953
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
957         policy routing).
958
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_.
963
964         Setting marks in XFRM input requires Linux 4.19 or higher.
965
966 connections.<conn>.children.<child>.set_mark_out = 0/0x00000000
967         Netfilter mark applied to packets after the outbound IPsec SA processed
968         them.
969
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).
973
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_.
978
979         Setting marks in XFRM output is supported since Linux 4.14. Setting a mask
980         requires at least Linux 4.19.
981
982 connections.<conn>.children.<child>.tfc_padding = 0
983         Traffic Flow Confidentiality padding.
984
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.
988
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.
991
992 connections.<conn>.children.<child>.replay_window = 32
993         IPsec replay window to configure for this CHILD_SA.
994
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.
998
999 connections.<conn>.children.<child>.hw_offload = no
1000         Enable hardware offload for this CHILD_SA, if supported by the IPsec
1001         implementation.
1002
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
1007         otherwise.
1008
1009 connections.<conn>.children.<child>.copy_df = yes
1010         Whether to copy the DF bit to the outer IPv4 header in tunnel mode.
1011
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.
1015
1016 connections.<conn>.children.<child>.copy_ecn = yes
1017         Whether to copy the ECN header field to/from the outer IP header in tunnel
1018         mode.
1019
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.
1023
1024 connections.<conn>.children.<child>.copy_dscp = out
1025         Whether to copy the DSCP header field to/from the outer IP header in tunnel
1026         mode.
1027
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.
1037
1038 connections.<conn>.children.<child>.start_action = none
1039         Action to perform after loading the configuration (_none_, _trap_, _start_).
1040
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.
1044
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.
1048
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
1052         uninstalled.
1053
1054 connections.<conn>.children.<child>.close_action = none
1055         Action to perform after a CHILD_SA gets closed (_none_, _trap_, _start_).
1056
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.
1060
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.
1064
1065 secrets { # }
1066         Section defining secrets for IKE/EAP/XAuth authentication and private
1067         key decryption.
1068
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.
1072
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
1076         credentials.
1077
1078 secrets.eap<suffix> { # }
1079         EAP secret section for a specific secret.
1080
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.
1084
1085 secrets.xauth<suffix> { # }
1086         XAuth secret section for a specific secret.
1087
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.
1091
1092 secrets.eap<suffix>.secret =
1093         Value of the EAP/XAuth secret.
1094
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.
1098
1099 secrets.eap<suffix>.id<suffix> =
1100         Identity the EAP/XAuth secret belongs to.
1101
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
1104         multiple users.
1105
1106 secrets.ntlm<suffix> { # }
1107         NTLM secret section for a specific secret.
1108
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.
1112
1113 secrets.ntlm<suffix>.secret =
1114         Value of the NTLM secret.
1115
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
1119         with a _0s_ prefix.
1120
1121 secrets.ntlm<suffix>.id<suffix> =
1122         Identity the NTLM secret belongs to.
1123
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
1126         multiple users.
1127
1128 secrets.ike<suffix> { # }
1129         IKE preshared secret section for a specific secret.
1130
1131         IKE preshared secret section for a specific secret. Each IKE PSK is defined
1132         in a unique section having the _ike_ prefix.
1133
1134 secrets.ike<suffix>.secret =
1135         Value of the IKE preshared secret.
1136
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.
1140
1141 secrets.ike<suffix>.id<suffix> =
1142         IKE identity the IKE preshared secret belongs to.
1143
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
1146         multiple peers.
1147
1148 secrets.ppk<suffix> { # }
1149         Postquantum Preshared Key (PPK) section for a specific secret.
1150
1151         Postquantum Preshared Key (PPK) section for a specific secret. Each PPK is
1152         defined in a unique section having the _ppk_ prefix.
1153
1154 secrets.ppk<suffix>.secret =
1155         Value of the PPK.
1156
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.
1160
1161 secrets.ppk<suffix>.id<suffix> =
1162         PPK identity the PPK belongs to.
1163
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
1166         multiple peers.
1167
1168 secrets.private<suffix> { # }
1169         Private key decryption passphrase for a key in the _private_ folder.
1170
1171 secrets.private<suffix>.file =
1172         File name in the _private_ folder for which this passphrase should be used.
1173
1174 secrets.private<suffix>.secret
1175         Value of decryption passphrase for private key.
1176
1177 secrets.rsa<suffix> { # }
1178         Private key decryption passphrase for a key in the _rsa_ folder.
1179
1180 secrets.rsa<suffix>.file =
1181         File name in the _rsa_ folder for which this passphrase should be used.
1182
1183 secrets.rsa<suffix>.secret
1184         Value of decryption passphrase for RSA key.
1185
1186 secrets.ecdsa<suffix> { # }
1187         Private key decryption passphrase for a key in the _ecdsa_ folder.
1188
1189 secrets.ecdsa<suffix>.file =
1190         File name in the _ecdsa_ folder for which this passphrase should be used.
1191
1192 secrets.ecdsa<suffix>.secret
1193         Value of decryption passphrase for ECDSA key.
1194
1195 secrets.pkcs8<suffix> { # }
1196         Private key decryption passphrase for a key in the _pkcs8_ folder.
1197
1198 secrets.pkcs8<suffix>.file =
1199         File name in the _pkcs8_ folder for which this passphrase should be used.
1200
1201 secrets.pkcs8<suffix>.secret
1202         Value of decryption passphrase for PKCS#8 key.
1203
1204 secrets.pkcs12<suffix> { # }
1205         PKCS#12 decryption passphrase for a container in the _pkcs12_ folder.
1206
1207 secrets.pkcs12<suffix>.file =
1208         File name in the _pkcs12_ folder for which this passphrase should be used.
1209
1210 secrets.pkcs12<suffix>.secret
1211         Value of decryption passphrase for PKCS#12 container.
1212
1213 secrets.token<suffix> { # }
1214         Definition for a private key that's stored on a token/smartcard.
1215
1216 secrets.token<suffix>.handle =
1217         Hex-encoded CKA_ID of the private key on the token.
1218
1219 secrets.token<suffix>.slot =
1220         Optional slot number to access the token.
1221
1222 secrets.token<suffix>.module =
1223         Optional PKCS#11 module name to access the token.
1224
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.
1228
1229 pools { # }
1230         Section defining named pools.
1231
1232         Section defining named pools. Named pools may be referenced by connections
1233         with the **pools** option to assign virtual IPs and other configuration
1234         attributes.
1235
1236 pools.<name> { # }
1237         Section defining a single pool with a unique name.
1238
1239 pools.<name>.addrs =
1240         Addresses allocated in pool.
1241
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.
1245
1246 pools.<name>.<attr> =
1247         Comma separated list of additional attributes from type <attr>.
1248
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
1254         as well.
1255
1256 authorities { # }
1257         Section defining attributes of certification authorities.
1258
1259 authorities.<name> { # }
1260         Section defining a certification authority with a unique name.
1261
1262 authorities.<name>.cacert =
1263         CA certificate belonging to the certification authority.
1264
1265         CA certificate belonging to the certification authority. The certificates
1266         may use a relative path from the **swanctl** _x509ca_ directory or an
1267         absolute path.
1268
1269         Configure one of _cacert_, _file_, or _handle_ per section.
1270
1271 authorities.<name>.file =
1272         Absolute path to the certificate to load.
1273
1274         Absolute path to the certificate to load. Passed as-is to the daemon, so it
1275         must be readable by it.
1276
1277         Configure one of _cacert_, _file_, or _handle_ per section.
1278
1279 authorities.<name>.handle =
1280         Hex-encoded CKA_ID of the CA certificate on a token.
1281
1282         Hex-encoded CKA_ID of the CA certificate on a token.
1283
1284         Configure one of _cacert_, _file_, or _handle_ per section.
1285
1286 authorities.<name>.slot =
1287         Optional slot number of the token that stores the CA certificate.
1288
1289 authorities.<name>.module =
1290         Optional PKCS#11 module name.
1291
1292 authorities.<name>.crl_uris =
1293         Comma-separated list of CRL distribution points.
1294
1295         Comma-separated list of CRL distribution points (ldap, http, or file URI).
1296
1297 authorities.<name>.ocsp_uris =
1298         Comma-separated list of OCSP URIs.
1299
1300 authorities.<name>.cert_uri_base =
1301         Defines the base URI for the Hash and URL feature supported by IKEv2.
1302
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
1307         base URI.
1308
1309 include conf.d/*.conf
1310         Include config snippets