File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / src / swanctl / swanctl.conf.5.main
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 09:46:45 2020 UTC (4 years, 4 months ago) by misho
Branches: strongswan, MAIN
CVS tags: v5_9_2p0, v5_8_4p7, HEAD
Strongswan

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>