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