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

    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>