···1616 Absolute path to the certificate to load. Passed as-is to the daemon, so
1717 it must be readable by it.
18181919- Configure either this or <option>handle</option>, but not both, in one section.
1919+ Configure either this or {option}`handle`, but not both, in one section.
2020 '';
21212222 handle = mkOptionalHexParam ''
2323 Hex-encoded CKA_ID or handle of the certificate on a token or TPM,
2424 respectively.
25252626- Configure either this or <option>file</option>, but not both, in one section.
2626+ Configure either this or {option}`file`, but not both, in one section.
2727 '';
28282929 slot = mkOptionalIntParam ''
···39394040 cacert = mkOptionalStrParam ''
4141 The certificates may use a relative path from the swanctl
4242- <literal>x509ca</literal> directory or an absolute path.
4242+ `x509ca` directory or an absolute path.
43434444- Configure one of <option>cacert</option>,
4545- <option>file</option>, or
4646- <option>handle</option> per section.
4444+ Configure one of {option}`cacert`,
4545+ {option}`file`, or
4646+ {option}`handle` per section.
4747 '';
48484949 cert_uri_base = mkOptionalStrParam ''
···71717272 version = mkIntParam 0 ''
7373 IKE major version to use for connection.
7474- <itemizedlist>
7575- <listitem><para>1 uses IKEv1 aka ISAKMP,</para></listitem>
7676- <listitem><para>2 uses IKEv2.</para></listitem>
7777- <listitem><para>A connection using the default of 0 accepts both IKEv1 and IKEv2 as
7878- responder, and initiates the connection actively with IKEv2.</para></listitem>
7979- </itemizedlist>
7474+7575+ - 1 uses IKEv1 aka ISAKMP,
7676+ - 2 uses IKEv2.
7777+ - A connection using the default of 0 accepts both IKEv1 and IKEv2 as
7878+ responder, and initiates the connection actively with IKEv2.
8079 '';
81808281 local_addrs = mkCommaSepListParam [] ''
···107106108107 local_port = mkIntParam 500 ''
109108 Local UDP port for IKE communication. By default the port of the socket
110110- backend is used, which is usually <literal>500</literal>. If port
111111- <literal>500</literal> is used, automatic IKE port floating to port
112112- <literal>4500</literal> is used to work around NAT issues.
109109+ backend is used, which is usually `500`. If port
110110+ `500` is used, automatic IKE port floating to port
111111+ `4500` is used to work around NAT issues.
113112114113 Using a non-default local IKE port requires support from the socket
115114 backend in use (socket-dynamic).
···117116118117 remote_port = mkIntParam 500 ''
119118 Remote UDP port for IKE communication. If the default of port
120120- <literal>500</literal> is used, automatic IKE port floating to port
121121- <literal>4500</literal> is used to work around NAT issues.
119119+ `500` is used, automatic IKE port floating to port
120120+ `4500` is used to work around NAT issues.
122121 '';
123122124123 proposals = mkCommaSepListParam ["default"] ''
···134133 combinations in IKEv1.
135134136135 Algorithm keywords get separated using dashes. Multiple proposals may be
137137- specified in a list. The special value <literal>default</literal> forms a
136136+ specified in a list. The special value `default` forms a
138137 default proposal of supported algorithms considered safe, and is usually a
139138 good choice for interoperability.
140139 '';
141140142141 vips = mkCommaSepListParam [] ''
143142 List of virtual IPs to request in IKEv2 configuration payloads or IKEv1
144144- Mode Config. The wildcard addresses <literal>0.0.0.0</literal> and
145145- <literal>::</literal> request an arbitrary address, specific addresses may
143143+ Mode Config. The wildcard addresses `0.0.0.0` and
144144+ `::` request an arbitrary address, specific addresses may
146145 be defined. The responder may return a different address, though, or none
147146 at all.
148147 '';
···207206208207 fragmentation = mkEnumParam ["yes" "accept" "force" "no"] "yes" ''
209208 Use IKE fragmentation (proprietary IKEv1 extension or RFC 7383 IKEv2
210210- fragmentation). Acceptable values are <literal>yes</literal> (the default
211211- since 5.5.1), <literal>accept</literal> (since versions:5.5.3),
212212- <literal>force</literal> and <literal>no</literal>.
213213- <itemizedlist>
214214- <listitem><para>If set to <literal>yes</literal>, and the peer
215215- supports it, oversized IKE messages will be sent in fragments.</para></listitem>
216216- <listitem><para>If set to
217217- <literal>accept</literal>, support for fragmentation is announced to the peer but the daemon
218218- does not send its own messages in fragments.</para></listitem>
219219- <listitem><para>If set to <literal>force</literal> (only
220220- supported for IKEv1) the initial IKE message will already be fragmented if
221221- required.</para></listitem>
222222- <listitem><para>Finally, setting the option to <literal>no</literal> will disable announcing
223223- support for this feature.</para></listitem>
224224- </itemizedlist>
209209+ fragmentation). Acceptable values are `yes` (the default
210210+ since 5.5.1), `accept` (since versions:5.5.3),
211211+ `force` and `no`.
212212+213213+ - If set to `yes`, and the peer
214214+ supports it, oversized IKE messages will be sent in fragments.
215215+ - If set to
216216+ `accept`, support for fragmentation is announced to the peer but the daemon
217217+ does not send its own messages in fragments.
218218+ - If set to `force` (only
219219+ supported for IKEv1) the initial IKE message will already be fragmented if
220220+ required.
221221+ - Finally, setting the option to `no` will disable announcing
222222+ support for this feature.
225223226224 Note that fragmented IKE messages sent by a peer are always processed
227225 irrespective of the value of this option (even when set to no).
···229227230228 childless = mkEnumParam [ "allow" "force" "never" ] "allow" ''
231229 Use childless IKE_SA initiation (RFC 6023) for IKEv2. Acceptable values
232232- are <literal>allow</literal> (the default), <literal>force</literal> and
233233- <literal>never</literal>. If set to <literal>allow</literal>, responders
230230+ are `allow` (the default), `force` and
231231+ `never`. If set to `allow`, responders
234232 will accept childless IKE_SAs (as indicated via notify in the IKE_SA_INIT
235233 response) while initiators continue to create regular IKE_SAs with the
236234 first CHILD_SA created during IKE_AUTH, unless the IKE_SA is initiated
237235 explicitly without any children (which will fail if the responder does not
238236 support or has disabled this extension). If set to
239239- <literal>force</literal>, only childless initiation is accepted and the
237237+ `force`, only childless initiation is accepted and the
240238 first CHILD_SA is created with a separate CREATE_CHILD_SA exchange
241239 (e.g. to use an independent DH exchange for all CHILD_SAs). Finally,
242242- setting the option to <literal>never</literal> disables support for
240240+ setting the option to `never` disables support for
243241 childless IKE_SAs as responder.
244242 '';
245243···254252255253 send_cert = mkEnumParam ["always" "never" "ifasked" ] "ifasked" ''
256254 Send certificate payloads when using certificate authentication.
257257- <itemizedlist>
258258- <listitem><para>With the default of <literal>ifasked</literal> the daemon sends
259259- certificate payloads only if certificate requests have been received.</para></listitem>
260260- <listitem><para><literal>never</literal> disables sending of certificate payloads
261261- altogether,</para></listitem>
262262- <listitem><para><literal>always</literal> causes certificate payloads to be sent
263263- unconditionally whenever certificate authentication is used.</para></listitem>
264264- </itemizedlist>
255255+256256+ - With the default of `ifasked` the daemon sends
257257+ certificate payloads only if certificate requests have been received.
258258+ - `never` disables sending of certificate payloads
259259+ altogether,
260260+ - `always` causes certificate payloads to be sent
261261+ unconditionally whenever certificate authentication is used.
265262 '';
266263267264 ppk_id = mkOptionalStrParam ''
···275272 keyingtries = mkIntParam 1 ''
276273 Number of retransmission sequences to perform during initial
277274 connect. Instead of giving up initiation after the first retransmission
278278- sequence with the default value of <literal>1</literal>, additional
275275+ sequence with the default value of `1`, additional
279276 sequences may be started according to the configured value. A value of
280280- <literal>0</literal> initiates a new sequence until the connection
277277+ `0` initiates a new sequence until the connection
281278 establishes or fails with a permanent error.
282279 '';
283280···285282 Connection uniqueness policy to enforce. To avoid multiple connections
286283 from the same user, a uniqueness policy can be enforced.
287284288288- <itemizedlist>
289289- <listitem><para>
290290- The value <literal>never</literal> does never enforce such a policy, even
291291- if a peer included INITIAL_CONTACT notification messages,
292292- </para></listitem>
293293- <listitem><para>
294294- whereas <literal>no</literal> replaces existing connections for the same
295295- identity if a new one has the INITIAL_CONTACT notify.
296296- </para></listitem>
297297- <listitem><para>
298298- <literal>keep</literal> rejects new connection attempts if the same user
299299- already has an active connection,
300300- </para></listitem>
301301- <listitem><para>
302302- <literal>replace</literal> deletes any existing connection if a new one
303303- for the same user gets established.
304304- </para></listitem>
305305- </itemizedlist>
285285+ - The value `never` does never enforce such a policy, even
286286+ if a peer included INITIAL_CONTACT notification messages,
287287+ - whereas `no` replaces existing connections for the same
288288+ identity if a new one has the INITIAL_CONTACT notify.
289289+ - `keep` rejects new connection attempts if the same user
290290+ already has an active connection,
291291+ - `replace` deletes any existing connection if a new one
292292+ for the same user gets established.
293293+306294 To compare connections for uniqueness, the remote IKE identity is used. If
307295 EAP or XAuth authentication is involved, the EAP-Identity or XAuth
308296 username is used to enforce the uniqueness policy instead.
···310298 On initiators this setting specifies whether an INITIAL_CONTACT notify is
311299 sent during IKE_AUTH if no existing connection is found with the remote
312300 peer (determined by the identities of the first authentication
313313- round). Unless set to <literal>never</literal> the client will send a notify.
301301+ round). Unless set to `never` the client will send a notify.
314302 '';
315303316304 reauth_time = mkDurationParam "0s" ''
···347335 In contrast to CHILD_SA rekeying, over_time is relative in time to the
348336 rekey_time and reauth_time values, as it applies to both.
349337350350- The default is 10% of the longer of <option>rekey_time</option> and
351351- <option>reauth_time</option>.
338338+ The default is 10% of the longer of {option}`rekey_time` and
339339+ {option}`reauth_time`.
352340 '';
353341354342 rand_time = mkOptionalDurationParam ''
···357345 procedure simultaneously, a random time gets subtracted from the
358346 rekey/reauth times.
359347360360- The default is equal to the configured <option>over_time</option>.
348348+ The default is equal to the configured {option}`over_time`.
361349 '';
362350363351 pools = mkCommaSepListParam [] ''
···409397 certs = mkCommaSepListParam [] ''
410398 List of certificate candidates to use for
411399 authentication. The certificates may use a relative path from the
412412- swanctl <literal>x509</literal> directory or an absolute path.
400400+ swanctl `x509` directory or an absolute path.
413401414402 The certificate used for authentication is selected based on the
415403 received certificate request payloads. If no appropriate CA can be
···425413 pubkeys = mkCommaSepListParam [] ''
426414 List of raw public key candidates to use for
427415 authentication. The public keys may use a relative path from the swanctl
428428- <literal>pubkey</literal> directory or an absolute path.
416416+ `pubkey` directory or an absolute path.
429417430418 Even though multiple local public keys could be defined in principle,
431419 only the first public key in the list is used for authentication.
···433421434422 auth = mkStrParam "pubkey" ''
435423 Authentication to perform locally.
436436- <itemizedlist>
437437- <listitem><para>
438438- The default <literal>pubkey</literal> uses public key authentication
439439- using a private key associated to a usable certificate.
440440- </para></listitem>
441441- <listitem><para>
442442- <literal>psk</literal> uses pre-shared key authentication.
443443- </para></listitem>
444444- <listitem><para>
445445- The IKEv1 specific <literal>xauth</literal> is used for XAuth or Hybrid
446446- authentication,
447447- </para></listitem>
448448- <listitem><para>
449449- while the IKEv2 specific <literal>eap</literal> keyword defines EAP
450450- authentication.
451451- </para></listitem>
452452- <listitem><para>
453453- For <literal>xauth</literal>, a specific backend name may be appended,
454454- separated by a dash. The appropriate <literal>xauth</literal> backend is
455455- selected to perform the XAuth exchange. For traditional XAuth, the
456456- <literal>xauth</literal> method is usually defined in the second
457457- authentication round following an initial <literal>pubkey</literal> (or
458458- <literal>psk</literal>) round. Using <literal>xauth</literal> in the
459459- first round performs Hybrid Mode client authentication.
460460- </para></listitem>
461461- <listitem><para>
462462- For <literal>eap</literal>, a specific EAP method name may be appended, separated by a
463463- dash. An EAP module implementing the appropriate method is selected to
464464- perform the EAP conversation.
465465- </para></listitem>
466466- <listitem><para>
467467- Since 5.4.0, if both peers support RFC 7427 ("Signature Authentication
468468- in IKEv2") specific hash algorithms to be used during IKEv2
469469- authentication may be configured. To do so use <literal>ike:</literal>
470470- followed by a trust chain signature scheme constraint (see description
471471- of the <option>remote</option> section's <option>auth</option>
472472- keyword). For example, with <literal>ike:pubkey-sha384-sha256</literal>
473473- a public key signature scheme with either SHA-384 or SHA-256 would get
474474- used for authentication, in that order and depending on the hash
475475- algorithms supported by the peer. If no specific hash algorithms are
476476- configured, the default is to prefer an algorithm that matches or
477477- exceeds the strength of the signature key. If no constraints with
478478- <literal>ike:</literal> prefix are configured any signature scheme
479479- constraint (without <literal>ike:</literal> prefix) will also apply to
480480- IKEv2 authentication, unless this is disabled in
481481- <literal>strongswan.conf</literal>. To use RSASSA-PSS signatures use
482482- <literal>rsa/pss</literal> instead of <literal>pubkey</literal> or
483483- <literal>rsa</literal> as in e.g.
484484- <literal>ike:rsa/pss-sha256</literal>. If <literal>pubkey</literal> or
485485- <literal>rsa</literal> constraints are configured RSASSA-PSS signatures
486486- will only be used if enabled in <literal>strongswan.conf</literal>(5).
487487- </para></listitem>
488488- </itemizedlist>
424424+425425+ - The default `pubkey` uses public key authentication
426426+ using a private key associated to a usable certificate.
427427+ - `psk` uses pre-shared key authentication.
428428+ - The IKEv1 specific `xauth` is used for XAuth or Hybrid
429429+ authentication,
430430+ - while the IKEv2 specific `eap` keyword defines EAP
431431+ authentication.
432432+ - For `xauth`, a specific backend name may be appended,
433433+ separated by a dash. The appropriate `xauth` backend is
434434+ selected to perform the XAuth exchange. For traditional XAuth, the
435435+ `xauth` method is usually defined in the second
436436+ authentication round following an initial `pubkey` (or
437437+ `psk`) round. Using `xauth` in the
438438+ first round performs Hybrid Mode client authentication.
439439+ - For `eap`, a specific EAP method name may be appended, separated by a
440440+ dash. An EAP module implementing the appropriate method is selected to
441441+ perform the EAP conversation.
442442+ - Since 5.4.0, if both peers support RFC 7427 ("Signature Authentication
443443+ in IKEv2") specific hash algorithms to be used during IKEv2
444444+ authentication may be configured. To do so use `ike:`
445445+ followed by a trust chain signature scheme constraint (see description
446446+ of the {option}`remote` section's {option}`auth`
447447+ keyword). For example, with `ike:pubkey-sha384-sha256`
448448+ a public key signature scheme with either SHA-384 or SHA-256 would get
449449+ used for authentication, in that order and depending on the hash
450450+ algorithms supported by the peer. If no specific hash algorithms are
451451+ configured, the default is to prefer an algorithm that matches or
452452+ exceeds the strength of the signature key. If no constraints with
453453+ `ike:` prefix are configured any signature scheme
454454+ constraint (without `ike:` prefix) will also apply to
455455+ IKEv2 authentication, unless this is disabled in
456456+ `strongswan.conf`. To use RSASSA-PSS signatures use
457457+ `rsa/pss` instead of `pubkey` or
458458+ `rsa` as in e.g.
459459+ `ike:rsa/pss-sha256`. If `pubkey` or
460460+ `rsa` constraints are configured RSASSA-PSS signatures
461461+ will only be used if enabled in `strongswan.conf`(5).
489462 '';
490463491464 id = mkOptionalStrParam ''
···519492 peer. Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple
520493 Authentication or IKEv1 XAuth.
521494522522- Each round is defined in a section having <literal>local</literal> as
495495+ Each round is defined in a section having `local` as
523496 prefix, and an optional unique suffix. To define a single authentication
524497 round, the suffix may be omitted.
525498 '';
···540513541514 eap_id = mkOptionalStrParam ''
542515 Identity to use as peer identity during EAP authentication. If set to
543543- <literal>%any</literal> the EAP-Identity method will be used to ask the
516516+ `%any` the EAP-Identity method will be used to ask the
544517 client for an EAP identity.
545518 '';
546519···559532560533 certs = mkCommaSepListParam [] ''
561534 List of certificates to accept for authentication. The certificates may
562562- use a relative path from the swanctl <literal>x509</literal> directory
535535+ use a relative path from the swanctl `x509` directory
563536 or an absolute path.
564537 '';
565538···573546 Identity in CA certificate to accept for authentication. The specified
574547 identity must be contained in one (intermediate) CA of the remote peer
575548 trustchain, either as subject or as subjectAltName. This has the same
576576- effect as specifying <literal>cacerts</literal> to force clients under
549549+ effect as specifying `cacerts` to force clients under
577550 a CA to specific connections; it does not require the CA certificate
578551 to be available locally, and can be received from the peer during the
579552 IKE exchange.
···582555 cacerts = mkCommaSepListParam [] ''
583556 List of CA certificates to accept for
584557 authentication. The certificates may use a relative path from the
585585- swanctl <literal>x509ca</literal> directory or an absolute path.
558558+ swanctl `x509ca` directory or an absolute path.
586559 '';
587560588561 cacert = mkPostfixedAttrsOfParams certParams ''
···594567 pubkeys = mkCommaSepListParam [] ''
595568 List of raw public keys to accept for
596569 authentication. The public keys may use a relative path from the swanctl
597597- <literal>pubkey</literal> directory or an absolute path.
570570+ `pubkey` directory or an absolute path.
598571 '';
599572600573 revocation = mkEnumParam ["strict" "ifuri" "relaxed"] "relaxed" ''
601574 Certificate revocation policy for CRL or OCSP revocation.
602602- <itemizedlist>
603603- <listitem><para>
604604- A <literal>strict</literal> revocation policy fails if no revocation information is
605605- available, i.e. the certificate is not known to be unrevoked.
606606- </para></listitem>
607607- <listitem><para>
608608- <literal>ifuri</literal> fails only if a CRL/OCSP URI is available, but certificate
609609- revocation checking fails, i.e. there should be revocation information
610610- available, but it could not be obtained.
611611- </para></listitem>
612612- <listitem><para>
613613- The default revocation policy <literal>relaxed</literal> fails only if a certificate is
614614- revoked, i.e. it is explicitly known that it is bad.
615615- </para></listitem>
616616- </itemizedlist>
575575+576576+ - A `strict` revocation policy fails if no revocation information is
577577+ available, i.e. the certificate is not known to be unrevoked.
578578+ - `ifuri` fails only if a CRL/OCSP URI is available, but certificate
579579+ revocation checking fails, i.e. there should be revocation information
580580+ available, but it could not be obtained.
581581+ - The default revocation policy `relaxed` fails only if a certificate is
582582+ revoked, i.e. it is explicitly known that it is bad.
617583 '';
618584619585 auth = mkStrParam "pubkey" ''
620620- Authentication to expect from remote. See the <option>local</option>
621621- section's <option>auth</option> keyword description about the details of
586586+ Authentication to expect from remote. See the {option}`local`
587587+ section's {option}`auth` keyword description about the details of
622588 supported mechanisms.
623589624590 Since 5.4.0, to require a trustchain public key strength for the remote
625591 side, specify the key type followed by the minimum strength in bits (for
626626- example <literal>ecdsa-384</literal> or
627627- <literal>rsa-2048-ecdsa-256</literal>). To limit the acceptable set of
592592+ example `ecdsa-384` or
593593+ `rsa-2048-ecdsa-256`). To limit the acceptable set of
628594 hashing algorithms for trustchain validation, append hash algorithms to
629595 pubkey or a key strength definition (for example
630630- <literal>pubkey-sha256-sha512</literal>,
631631- <literal>rsa-2048-sha256-sha384-sha512</literal> or
632632- <literal>rsa-2048-sha256-ecdsa-256-sha256-sha384</literal>).
633633- Unless disabled in <literal>strongswan.conf</literal>, or explicit IKEv2
596596+ `pubkey-sha256-sha512`,
597597+ `rsa-2048-sha256-sha384-sha512` or
598598+ `rsa-2048-sha256-ecdsa-256-sha256-sha384`).
599599+ Unless disabled in `strongswan.conf`, or explicit IKEv2
634600 signature constraints are configured (refer to the description of the
635635- <option>local</option> section's <option>auth</option> keyword for
601601+ {option}`local` section's {option}`auth` keyword for
636602 details), such key types and hash algorithms are also applied as
637603 constraints against IKEv2 signature authentication schemes used by the
638604 remote side. To require RSASSA-PSS signatures use
639639- <literal>rsa/pss</literal> instead of <literal>pubkey</literal> or
640640- <literal>rsa</literal> as in e.g. <literal>rsa/pss-sha256</literal>. If
641641- <literal>pubkey</literal> or <literal>rsa</literal> constraints are
605605+ `rsa/pss` instead of `pubkey` or
606606+ `rsa` as in e.g. `rsa/pss-sha256`. If
607607+ `pubkey` or `rsa` constraints are
642608 configured RSASSA-PSS signatures will only be accepted if enabled in
643643- <literal>strongswan.conf</literal>(5).
609609+ `strongswan.conf`(5).
644610645611 To specify trust chain constraints for EAP-(T)TLS, append a colon to the
646612 EAP method, followed by the key type/size and hash algorithm as
647647- discussed above (e.g. <literal>eap-tls:ecdsa-384-sha384</literal>).
613613+ discussed above (e.g. `eap-tls:ecdsa-384-sha384`).
648614 '';
649615650616 } ''
···653619 connection. Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple
654620 Authentication or IKEv1 XAuth.
655621656656- Each round is defined in a section having <literal>remote</literal> as
622622+ Each round is defined in a section having `remote` as
657623 prefix, and an optional unique suffix. To define a single authentication
658624 round, the suffix may be omitted.
659625 '';
···673639 combinations in IKEv1.
674640675641 Algorithm keywords get separated using dashes. Multiple proposals may be
676676- specified in a list. The special value <literal>default</literal> forms
642642+ specified in a list. The special value `default` forms
677643 a default proposal of supported algorithms considered safe, and is
678644 usually a good choice for interoperability. By default no AH proposals
679645 are included, instead ESP is proposed.
···697663 SA is established, but may later cause rekeying to fail.
698664699665 Extended Sequence Number support may be indicated with the
700700- <literal>esn</literal> and <literal>noesn</literal> values, both may be
666666+ `esn` and `noesn` values, both may be
701667 included to indicate support for both modes. If omitted,
702702- <literal>noesn</literal> is assumed.
668668+ `noesn` is assumed.
703669704670 In IKEv2, multiple algorithms of the same kind can be specified in a
705671 single proposal, from which one gets selected. In IKEv1, only one
···708674 combinations in IKEv1.
709675710676 Algorithm keywords get separated using dashes. Multiple proposals may be
711711- specified as a list. The special value <literal>default</literal> forms
677677+ specified as a list. The special value `default` forms
712678 a default proposal of supported algorithms considered safe, and is
713679 usually a good choice for interoperability. If no algorithms are
714680 specified for AH nor ESP, the default set of algorithms for ESP is
···726692 local_ts = mkCommaSepListParam ["dynamic"] ''
727693 List of local traffic selectors to include in CHILD_SA. Each selector is
728694 a CIDR subnet definition, followed by an optional proto/port
729729- selector. The special value <literal>dynamic</literal> may be used
695695+ selector. The special value `dynamic` may be used
730696 instead of a subnet definition, which gets replaced by the tunnel outer
731697 address or the virtual IP, if negotiated. This is the default.
732698···735701 name may be specified. After the optional protocol restriction, an
736702 optional port restriction may be specified, separated by a slash. The
737703 port restriction may be numeric, a getservent(3) service name, or the
738738- special value <literal>opaque</literal> for RFC 4301 OPAQUE
704704+ special value `opaque` for RFC 4301 OPAQUE
739705 selectors. Port ranges may be specified as well, none of the kernel
740706 backends currently support port ranges, though.
741707···752718753719 remote_ts = mkCommaSepListParam ["dynamic"] ''
754720 List of remote selectors to include in CHILD_SA. See
755755- <option>local_ts</option> for a description of the selector syntax.
721721+ {option}`local_ts` for a description of the selector syntax.
756722 '';
757723758724 rekey_time = mkDurationParam "1h" ''
759725 Time to schedule CHILD_SA rekeying. CHILD_SA rekeying refreshes key
760726 material, optionally using a Diffie-Hellman exchange if a group is
761727 specified in the proposal. To avoid rekey collisions initiated by both
762762- ends simultaneously, a value in the range of <option>rand_time</option>
728728+ ends simultaneously, a value in the range of {option}`rand_time`
763729 gets subtracted to form the effective soft lifetime.
764730765731 By default CHILD_SA rekeying is scheduled every hour, minus
766766- <option>rand_time</option>.
732732+ {option}`rand_time`.
767733 '';
768734769735 life_time = mkOptionalDurationParam ''
770736 Maximum lifetime before CHILD_SA gets closed. Usually this hard lifetime
771737 is never reached, because the CHILD_SA gets rekeyed before. If that fails
772738 for whatever reason, this limit closes the CHILD_SA. The default is 10%
773773- more than the <option>rekey_time</option>.
739739+ more than the {option}`rekey_time`.
774740 '';
775741776742 rand_time = mkOptionalDurationParam ''
777743 Time range from which to choose a random value to subtract from
778778- <option>rekey_time</option>. The default is the difference between
779779- <option>life_time</option> and <option>rekey_time</option>.
744744+ {option}`rekey_time`. The default is the difference between
745745+ {option}`life_time` and {option}`rekey_time`.
780746 '';
781747782748 rekey_bytes = mkIntParam 0 ''
···785751 exchange if a group is specified in the proposal.
786752787753 To avoid rekey collisions initiated by both ends simultaneously, a value
788788- in the range of <option>rand_bytes</option> gets subtracted to form the
754754+ in the range of {option}`rand_bytes` gets subtracted to form the
789755 effective soft volume limit.
790756791757 Volume based CHILD_SA rekeying is disabled by default.
···795761 Maximum bytes processed before CHILD_SA gets closed. Usually this hard
796762 volume limit is never reached, because the CHILD_SA gets rekeyed
797763 before. If that fails for whatever reason, this limit closes the
798798- CHILD_SA. The default is 10% more than <option>rekey_bytes</option>.
764764+ CHILD_SA. The default is 10% more than {option}`rekey_bytes`.
799765 '';
800766801767 rand_bytes = mkOptionalIntParam ''
802768 Byte range from which to choose a random value to subtract from
803803- <option>rekey_bytes</option>. The default is the difference between
804804- <option>life_bytes</option> and <option>rekey_bytes</option>.
769769+ {option}`rekey_bytes`. The default is the difference between
770770+ {option}`life_bytes` and {option}`rekey_bytes`.
805771 '';
806772807773 rekey_packets = mkIntParam 0 ''
···810776 exchange if a group is specified in the proposal.
811777812778 To avoid rekey collisions initiated by both ends simultaneously, a value
813813- in the range of <option>rand_packets</option> gets subtracted to form
779779+ in the range of {option}`rand_packets` gets subtracted to form
814780 the effective soft packet count limit.
815781816782 Packet count based CHILD_SA rekeying is disabled by default.
···822788 rekeyed before. If that fails for whatever reason, this limit closes the
823789 CHILD_SA.
824790825825- The default is 10% more than <option>rekey_bytes</option>.
791791+ The default is 10% more than {option}`rekey_bytes`.
826792 '';
827793828794 rand_packets = mkOptionalIntParam ''
829795 Packet range from which to choose a random value to subtract from
830830- <option>rekey_packets</option>. The default is the difference between
831831- <option>life_packets</option> and <option>rekey_packets</option>.
796796+ {option}`rekey_packets`. The default is the difference between
797797+ {option}`life_packets` and {option}`rekey_packets`.
832798 '';
833799834800 updown = mkOptionalStrParam ''
···836802 '';
837803838804 hostaccess = mkYesNoParam no ''
839839- Hostaccess variable to pass to <literal>updown</literal> script.
805805+ Hostaccess variable to pass to `updown` script.
840806 '';
841807842808 mode = mkEnumParam [ "tunnel"
···847813 "drop"
848814 ] "tunnel" ''
849815 IPsec Mode to establish CHILD_SA with.
850850- <itemizedlist>
851851- <listitem><para>
852852- <literal>tunnel</literal> negotiates the CHILD_SA in IPsec Tunnel Mode,
853853- </para></listitem>
854854- <listitem><para>
855855- whereas <literal>transport</literal> uses IPsec Transport Mode.
856856- </para></listitem>
857857- <listitem><para>
858858- <literal>transport_proxy</literal> signifying the special Mobile IPv6
859859- Transport Proxy Mode.
860860- </para></listitem>
861861- <listitem><para>
862862- <literal>beet</literal> is the Bound End to End Tunnel mixture mode,
863863- working with fixed inner addresses without the need to include them in
864864- each packet.
865865- </para></listitem>
866866- <listitem><para>
867867- Both <literal>transport</literal> and <literal>beet</literal> modes are
868868- subject to mode negotiation; <literal>tunnel</literal> mode is
869869- negotiated if the preferred mode is not available.
870870- </para></listitem>
871871- <listitem><para>
872872- <literal>pass</literal> and <literal>drop</literal> are used to install
873873- shunt policies which explicitly bypass the defined traffic from IPsec
874874- processing or drop it, respectively.
875875- </para></listitem>
876876- </itemizedlist>
816816+817817+ - `tunnel` negotiates the CHILD_SA in IPsec Tunnel Mode,
818818+ - whereas `transport` uses IPsec Transport Mode.
819819+ - `transport_proxy` signifying the special Mobile IPv6
820820+ Transport Proxy Mode.
821821+ - `beet` is the Bound End to End Tunnel mixture mode,
822822+ working with fixed inner addresses without the need to include them in
823823+ each packet.
824824+ - Both `transport` and `beet` modes are
825825+ subject to mode negotiation; `tunnel` mode is
826826+ negotiated if the preferred mode is not available.
827827+ - `pass` and `drop` are used to install
828828+ shunt policies which explicitly bypass the defined traffic from IPsec
829829+ processing or drop it, respectively.
877830 '';
878831879832 policies = mkYesNoParam yes ''
···932885 set. This allows installing duplicate policies and enables Netfilter
933886 rules to select specific SAs/policies for incoming traffic. Note that
934887 inbound marks are only set on policies, by default, unless
935935- <option>mark_in_sa</option> is enabled. The special value
936936- <literal>%unique</literal> sets a unique mark on each CHILD_SA instance,
937937- beyond that the value <literal>%unique-dir</literal> assigns a different
888888+ {option}`mark_in_sa` is enabled. The special value
889889+ `%unique` sets a unique mark on each CHILD_SA instance,
890890+ beyond that the value `%unique-dir` assigns a different
938891 unique mark for each
939892940893 An additional mask may be appended to the mark, separated by
941941- <literal>/</literal>. The default mask if omitted is
942942- <literal>0xffffffff</literal>.
894894+ `/`. The default mask if omitted is
895895+ `0xffffffff`.
943896 '';
944897945898 mark_in_sa = mkYesNoParam no ''
946946- Whether to set <option>mark_in</option> on the inbound SA. By default,
899899+ Whether to set {option}`mark_in` on the inbound SA. By default,
947900 the inbound mark is only set on the inbound policy. The tuple destination
948901 address, protocol and SPI is unique and the mark is not required to find
949902 the correct SA, allowing to mark traffic after decryption instead (where
···957910 require marks on each packet to match a policy/SA having that option
958911 set. This allows installing duplicate policies and enables Netfilter
959912 rules to select specific policies/SAs for outgoing traffic. The special
960960- value <literal>%unique</literal> sets a unique mark on each CHILD_SA
961961- instance, beyond that the value <literal>%unique-dir</literal> assigns a
913913+ value `%unique` sets a unique mark on each CHILD_SA
914914+ instance, beyond that the value `%unique-dir` assigns a
962915 different unique mark for each CHILD_SA direction (in/out).
963916964917 An additional mask may be appended to the mark, separated by
965965- <literal>/</literal>. The default mask if omitted is
966966- <literal>0xffffffff</literal>.
918918+ `/`. The default mask if omitted is
919919+ `0xffffffff`.
967920 '';
968921969922 set_mark_in = mkStrParam "0/0x00000000" ''
···973926 differently (e.g. via policy routing).
974927975928 An additional mask may be appended to the mark, separated by
976976- <literal>/</literal>. The default mask if omitted is 0xffffffff. The
977977- special value <literal>%same</literal> uses the value (but not the mask)
978978- from <option>mark_in</option> as mark value, which can be fixed,
979979- <literal>%unique</literal> or <literal>%unique-dir</literal>.
929929+ `/`. The default mask if omitted is 0xffffffff. The
930930+ special value `%same` uses the value (but not the mask)
931931+ from {option}`mark_in` as mark value, which can be fixed,
932932+ `%unique` or `%unique-dir`.
980933981934 Setting marks in XFRM input requires Linux 4.19 or higher.
982935 '';
···987940 traffic (e.g. via policy routing).
988941989942 An additional mask may be appended to the mark, separated by
990990- <literal>/</literal>. The default mask if omitted is 0xffffffff. The
991991- special value <literal>%same</literal> uses the value (but not the mask)
992992- from <option>mark_out</option> as mark value, which can be fixed,
993993- <literal>%unique_</literal> or <literal>%unique-dir</literal>.
943943+ `/`. The default mask if omitted is 0xffffffff. The
944944+ special value `%same` uses the value (but not the mask)
945945+ from {option}`mark_out` as mark value, which can be fixed,
946946+ `%unique_` or `%unique-dir`.
994947995948 Setting marks in XFRM output is supported since Linux 4.14. Setting a
996949 mask requires at least Linux 4.19.
···999952 if_id_in = mkStrParam "0" ''
1000953 XFRM interface ID set on inbound policies/SA. This allows installing
1001954 duplicate policies/SAs and associates them with an interface with the
10021002- same ID. The special value <literal>%unique</literal> sets a unique
955955+ same ID. The special value `%unique` sets a unique
1003956 interface ID on each CHILD_SA instance, beyond that the value
10041004- <literal>%unique-dir</literal> assigns a different unique interface ID
957957+ `%unique-dir` assigns a different unique interface ID
1005958 for each CHILD_SA direction (in/out).
1006959 '';
10079601008961 if_id_out = mkStrParam "0" ''
1009962 XFRM interface ID set on outbound policies/SA. This allows installing
1010963 duplicate policies/SAs and associates them with an interface with the
10111011- same ID. The special value <literal>%unique</literal> sets a unique
964964+ same ID. The special value `%unique` sets a unique
1012965 interface ID on each CHILD_SA instance, beyond that the value
10131013- <literal>%unique-dir</literal> assigns a different unique interface ID
966966+ `%unique-dir` assigns a different unique interface ID
1014967 for each CHILD_SA direction (in/out).
10159681016969 The daemon will not install routes for CHILD_SAs that have this option set.
···1020973 Pads ESP packets with additional data to have a consistent ESP packet
1021974 size for improved Traffic Flow Confidentiality. The padding defines the
1022975 minimum size of all ESP packets sent. The default value of
10231023- <literal>0</literal> disables TFC padding, the special value
10241024- <literal>mtu</literal> adds TFC padding to create a packet size equal to
976976+ `0` disables TFC padding, the special value
977977+ `mtu` adds TFC padding to create a packet size equal to
1025978 the Path Maximum Transfer Unit.
1026979 '';
10279801028981 replay_window = mkIntParam 32 ''
1029982 IPsec replay window to configure for this CHILD_SA. Larger values than
10301030- the default of <literal>32</literal> are supported using the Netlink
10311031- backend only, a value of <literal>0</literal> disables IPsec replay
983983+ the default of `32` are supported using the Netlink
984984+ backend only, a value of `0` disables IPsec replay
1032985 protection.
1033986 '';
10349871035988 hw_offload = mkEnumParam ["yes" "no" "auto"] "no" ''
1036989 Enable hardware offload for this CHILD_SA, if supported by the IPsec
10371037- implementation. The value <literal>yes</literal> enforces offloading
990990+ implementation. The value `yes` enforces offloading
1038991 and the installation will fail if it's not supported by either kernel or
10391039- device. The value <literal>auto</literal> enables offloading, if it's
992992+ device. The value `auto` enables offloading, if it's
1040993 supported, but the installation does not fail otherwise.
1041994 '';
1042995···10551008 copy_dscp = mkEnumParam [ "out" "in" "yes" "no" ] "out" ''
10561009 Whether to copy the DSCP (Differentiated Services Field Codepoint)
10571010 header field to/from the outer IP header in tunnel mode. The value
10581058- <literal>out</literal> only copies the field from the inner to the outer
10591059- header, the value <literal>in</literal> does the opposite and only
10111011+ `out` only copies the field from the inner to the outer
10121012+ header, the value `in` does the opposite and only
10601013 copies the field from the outer to the inner header when decapsulating,
10611061- the value <literal>yes</literal> copies the field in both directions,
10621062- and the value <literal>no</literal> disables copying the field
10631063- altogether. Setting this to <literal>yes</literal> or
10641064- <literal>in</literal> could allow an attacker to adversely affect other
10141014+ the value `yes` copies the field in both directions,
10151015+ and the value `no` disables copying the field
10161016+ altogether. Setting this to `yes` or
10171017+ `in` could allow an attacker to adversely affect other
10651018 traffic at the receiver, which is why the default is
10661066- <literal>out</literal>. Controlling this behavior is not supported by
10191019+ `out`. Controlling this behavior is not supported by
10671020 all kernel interfaces.
10681021 '';
1069102210701023 start_action = mkEnumParam ["none" "trap" "start"] "none" ''
10711024 Action to perform after loading the configuration.
10721072- <itemizedlist>
10731073- <listitem><para>
10741074- The default of <literal>none</literal> loads the connection only, which
10751075- then can be manually initiated or used as a responder configuration.
10761076- </para></listitem>
10771077- <listitem><para>
10781078- The value <literal>trap</literal> installs a trap policy, which triggers
10791079- the tunnel as soon as matching traffic has been detected.
10801080- </para></listitem>
10811081- <listitem><para>
10821082- The value <literal>start</literal> initiates the connection actively.
10831083- </para></listitem>
10841084- </itemizedlist>
10251025+10261026+ - The default of `none` loads the connection only, which
10271027+ then can be manually initiated or used as a responder configuration.
10281028+ - The value `trap` installs a trap policy, which triggers
10291029+ the tunnel as soon as matching traffic has been detected.
10301030+ - The value `start` initiates the connection actively.
10311031+10851032 When unloading or replacing a CHILD_SA configuration having a
10861086- <option>start_action</option> different from <literal>none</literal>,
10331033+ {option}`start_action` different from `none`,
10871034 the inverse action is performed. Configurations with
10881088- <literal>start</literal> get closed, while such with
10891089- <literal>trap</literal> get uninstalled.
10351035+ `start` get closed, while such with
10361036+ `trap` get uninstalled.
10901037 '';
1091103810921039 close_action = mkEnumParam ["none" "trap" "start"] "none" ''
10931040 Action to perform after a CHILD_SA gets closed by the peer.
10941094- <itemizedlist>
10951095- <listitem><para>
10961096- The default of <literal>none</literal> does not take any action,
10971097- </para></listitem>
10981098- <listitem><para>
10991099- <literal>trap</literal> installs a trap policy for the CHILD_SA.
11001100- </para></listitem>
11011101- <listitem><para>
11021102- <literal>start</literal> tries to re-create the CHILD_SA.
11031103- </para></listitem>
11041104- </itemizedlist>
10411041+10421042+ - The default of `none` does not take any action,
10431043+ - `trap` installs a trap policy for the CHILD_SA.
10441044+ - `start` tries to re-create the CHILD_SA.
1105104511061106- <option>close_action</option> does not provide any guarantee that the
10461046+ {option}`close_action` does not provide any guarantee that the
11071047 CHILD_SA is kept alive. It acts on explicit close messages only, but not
11081048 on negotiation failures. Use trap policies to reliably re-create failed
11091049 CHILD_SAs.
···1111105111121052 } ''
11131053 CHILD_SA configuration sub-section. Each connection definition may have
11141114- one or more sections in its <option>children</option> subsection. The
10541054+ one or more sections in its {option}`children` subsection. The
11151055 section name defines the name of the CHILD_SA configuration, which must be
11161116- unique within the connection (denoted <child> below).
10561056+ unique within the connection (denoted \<child\> below).
11171057 '';
11181058 } ''
11191059 Section defining IKE connection configurations, each in its own subsection
···1130107011311071 id = mkPrefixedAttrsOfParam (mkOptionalStrParam "") ''
11321072 Identity the EAP/XAuth secret belongs to. Multiple unique identities may
11331133- be specified, each having an <literal>id</literal> prefix, if a secret
10731073+ be specified, each having an `id` prefix, if a secret
11341074 is shared between multiple users.
11351075 '';
1136107611371077 } ''
11381078 EAP secret section for a specific secret. Each EAP secret is defined in a
11391139- unique section having the <literal>eap</literal> prefix. EAP secrets are
10791079+ unique section having the `eap` prefix. EAP secrets are
11401080 used for XAuth authentication as well.
11411081 '';
11421082···11601100 '';
11611101 } ''
11621102 NTLM secret section for a specific secret. Each NTLM secret is defined in
11631163- a unique section having the <literal>ntlm</literal> prefix. NTLM secrets
11031103+ a unique section having the `ntlm` prefix. NTLM secrets
11641104 may only be used for EAP-MSCHAPv2 authentication.
11651105 '';
11661106···1173111311741114 id = mkPrefixedAttrsOfParam (mkOptionalStrParam "") ''
11751115 IKE identity the IKE preshared secret belongs to. Multiple unique
11761176- identities may be specified, each having an <literal>id</literal>
11161116+ identities may be specified, each having an `id`
11771117 prefix, if a secret is shared between multiple peers.
11781118 '';
11791119 } ''
11801120 IKE preshared secret section for a specific secret. Each IKE PSK is
11811181- defined in a unique section having the <literal>ike</literal> prefix.
11211121+ defined in a unique section having the `ike` prefix.
11821122 '';
1183112311841124 ppk = mkPrefixedAttrsOfParams {
11851125 secret = mkOptionalStrParam ''
11861126 Value of the PPK. It may either be an ASCII string, a hex encoded string
11871187- if it has a <literal>0x</literal> prefix or a Base64 encoded string if
11881188- it has a <literal>0s</literal> prefix in its value. Should have at least
11271127+ if it has a `0x` prefix or a Base64 encoded string if
11281128+ it has a `0s` prefix in its value. Should have at least
11891129 256 bits of entropy for 128-bit security.
11901130 '';
1191113111921132 id = mkPrefixedAttrsOfParam (mkOptionalStrParam "") ''
11931133 PPK identity the PPK belongs to. Multiple unique identities may be
11941194- specified, each having an <literal>id</literal> prefix, if a secret is
11341134+ specified, each having an `id` prefix, if a secret is
11951135 shared between multiple peers.
11961136 '';
11971137 } ''
11981138 Postquantum Preshared Key (PPK) section for a specific secret. Each PPK is
11991199- defined in a unique section having the <literal>ppk</literal> prefix.
11391139+ defined in a unique section having the `ppk` prefix.
12001140 '';
1201114112021142 private = mkPrefixedAttrsOfParams {
···12091149 '';
12101150 } ''
12111151 Private key decryption passphrase for a key in the
12121212- <literal>private</literal> folder.
11521152+ `private` folder.
12131153 '';
1214115412151155 rsa = mkPrefixedAttrsOfParams {
12161156 file = mkOptionalStrParam ''
12171217- File name in the <literal>rsa</literal> folder for which this passphrase
11571157+ File name in the `rsa` folder for which this passphrase
12181158 should be used.
12191159 '';
12201160 secret = mkOptionalStrParam ''
12211161 Value of decryption passphrase for RSA key.
12221162 '';
12231163 } ''
12241224- Private key decryption passphrase for a key in the <literal>rsa</literal>
11641164+ Private key decryption passphrase for a key in the `rsa`
12251165 folder.
12261166 '';
1227116712281168 ecdsa = mkPrefixedAttrsOfParams {
12291169 file = mkOptionalStrParam ''
12301230- File name in the <literal>ecdsa</literal> folder for which this
11701170+ File name in the `ecdsa` folder for which this
12311171 passphrase should be used.
12321172 '';
12331173 secret = mkOptionalStrParam ''
···12351175 '';
12361176 } ''
12371177 Private key decryption passphrase for a key in the
12381238- <literal>ecdsa</literal> folder.
11781178+ `ecdsa` folder.
12391179 '';
1240118012411181 pkcs8 = mkPrefixedAttrsOfParams {
12421182 file = mkOptionalStrParam ''
12431243- File name in the <literal>pkcs8</literal> folder for which this
11831183+ File name in the `pkcs8` folder for which this
12441184 passphrase should be used.
12451185 '';
12461186 secret = mkOptionalStrParam ''
···12481188 '';
12491189 } ''
12501190 Private key decryption passphrase for a key in the
12511251- <literal>pkcs8</literal> folder.
11911191+ `pkcs8` folder.
12521192 '';
1253119312541194 pkcs12 = mkPrefixedAttrsOfParams {
12551195 file = mkOptionalStrParam ''
12561256- File name in the <literal>pkcs12</literal> folder for which this
11961196+ File name in the `pkcs12` folder for which this
12571197 passphrase should be used.
12581198 '';
12591199 secret = mkOptionalStrParam ''
···12611201 '';
12621202 } ''
12631203 PKCS#12 decryption passphrase for a container in the
12641264- <literal>pkcs12</literal> folder.
12041204+ `pkcs12` folder.
12651205 '';
1266120612671207 token = mkPrefixedAttrsOfParams {
···12811221 pin = mkOptionalStrParam ''
12821222 Optional PIN required to access the key on the token. If none is
12831223 provided the user is prompted during an interactive
12841284- <literal>--load-creds</literal> call.
12241224+ `--load-creds` call.
12851225 '';
12861226 } "Definition for a private key that's stored on a token/smartcard/TPM.";
12871227···12911231 addrs = mkOptionalStrParam ''
12921232 Subnet or range defining addresses allocated in pool. Accepts a single
12931233 CIDR subnet defining the pool to allocate addresses from or an address
12941294- range (<from>-<to>). Pools must be unique and non-overlapping.
12341234+ range (\<from\>-\<to\>). Pools must be unique and non-overlapping.
12951235 '';
1296123612971237 dns = mkCommaSepListParam [] "Address or CIDR subnets";
···13051245 } ''
13061246 Section defining named pools. Named pools may be referenced by connections
13071247 with the pools option to assign virtual IPs and other configuration
13081308- attributes. Each pool must have a unique name (denoted <name> below).
12481248+ attributes. Each pool must have a unique name (denoted \<name\> below).
13091249 '';
13101250}