Annotation of embedaddon/strongswan/src/swanctl/swanctl.opt, revision 1.1

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

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