Annotation of embedaddon/strongswan/man/ipsec.conf.5.in, revision 1.1.1.1

1.1       misho       1: .TH IPSEC.CONF 5 "2012-06-26" "@PACKAGE_VERSION@" "strongSwan"
                      2: .SH NAME
                      3: ipsec.conf \- IPsec configuration and connections
                      4: .SH DESCRIPTION
                      5: The optional
                      6: .I ipsec.conf
                      7: file
                      8: specifies most configuration and control information for the
                      9: strongSwan IPsec subsystem.
                     10: The major exception is secrets for authentication;
                     11: see
                     12: .IR ipsec.secrets (5).
                     13: Its contents are not security-sensitive.
                     14: .PP
                     15: The file is a text file, consisting of one or more
                     16: .IR sections .
                     17: White space followed by
                     18: .B #
                     19: followed by anything to the end of the line
                     20: is a comment and is ignored,
                     21: as are empty lines which are not within a section.
                     22: .PP
                     23: A line which contains
                     24: .B include
                     25: and a file name, separated by white space,
                     26: is replaced by the contents of that file.
                     27: If the file name is not a full pathname,
                     28: it is considered to be relative to the directory containing the
                     29: including file.
                     30: Such inclusions can be nested.
                     31: Only a single filename may be supplied, and it may not contain white space,
                     32: but it may include shell wildcards (see
                     33: .IR sh (1));
                     34: for example:
                     35: .PP
                     36: .B include
                     37: .B "ipsec.*.conf"
                     38: .PP
                     39: The intention of the include facility is mostly to permit keeping
                     40: information on connections, or sets of connections,
                     41: separate from the main configuration file.
                     42: This permits such connection descriptions to be changed,
                     43: copied to the other security gateways involved, etc.,
                     44: without having to constantly extract them from the configuration
                     45: file and then insert them back into it.
                     46: Note also the
                     47: .B also
                     48: parameter (described below) which permits splitting a single logical
                     49: section (e.g. a connection description) into several actual sections.
                     50: .PP
                     51: A section
                     52: begins with a line of the form:
                     53: .PP
                     54: .I type
                     55: .I name
                     56: .PP
                     57: where
                     58: .I type
                     59: indicates what type of section follows, and
                     60: .I name
                     61: is an arbitrary name which distinguishes the section from others
                     62: of the same type.
                     63: All subsequent non-empty lines
                     64: which begin with white space are part of the section.
                     65: Sections of the same type that share the same name are merged.
                     66: .PP
                     67: Lines within the section are generally of the form
                     68: .PP
                     69: \ \ \ \ \ \fIparameter\fB=\fIvalue\fR
                     70: .PP
                     71: (note the mandatory preceding white space).
                     72: There can be white space on either side of the
                     73: .BR = .
                     74: Parameter names are specific to a section type.
                     75: .PP
                     76: An empty
                     77: .I value
                     78: stands for the system default value (if any) of the parameter,
                     79: i.e. it is roughly equivalent to omitting the parameter line entirely. This may
                     80: be useful to clear a setting inherited from a
                     81: .B %default
                     82: section or via
                     83: .B also
                     84: parameter (see below).
                     85: A
                     86: .I value
                     87: may contain single spaces (additional white space is reduced to one space).
                     88: To preserve white space as written enclose the entire
                     89: .I value
                     90: in double quotes (\fB"\fR); in such values double quotes themselves may be
                     91: escaped by prefixing them with
                     92: .B \\\\
                     93: characters. A double-quoted string may span multiple lines by ending them with
                     94: .B \\\\
                     95: characters (following lines don't have to begin with white space, as that will
                     96: be preserved). Additionally, the following control characters may be encoded in
                     97: double-quoted strings: \\n, \\r, \\t, \\b, \\f.
                     98: .PP
                     99: Numeric values are specified to be either an ``integer''
                    100: (a sequence of digits) or a ``decimal number''
                    101: (sequence of digits optionally followed by `.' and another sequence of digits).
                    102: .PP
                    103: There is currently one parameter which is available in any type of
                    104: section:
                    105: .TP
                    106: .B also
                    107: the value is a section name; the parameters of that section are inherited by
                    108: the current section. Parameters in the current section always override inherited
                    109: parameters, even if an
                    110: .B also
                    111: follows after them.
                    112: The specified section must exist and must have the same section type; it doesn't
                    113: if it is defined before or after the current section.
                    114: Nesting is permitted, and there may be more than one
                    115: .B also
                    116: in a single section (parameters from referenced sections are inherited and
                    117: overridden in the order of these
                    118: .B also
                    119: parameters).
                    120: .PP
                    121: A section with name
                    122: .B %default
                    123: specifies defaults for sections of the same type. All parameters in it, are
                    124: inherited by all other sections of that type.
                    125: .PP
                    126: Currently there are three types of sections:
                    127: a
                    128: .B config
                    129: section specifies general configuration information for IPsec, a
                    130: .B conn
                    131: section specifies an IPsec connection, while a
                    132: .B ca
                    133: section specifies special properties of a certification authority.
                    134: .SH "CONN SECTIONS"
                    135: A
                    136: .B conn
                    137: section contains a
                    138: .IR "connection specification" ,
                    139: defining a network connection to be made using IPsec.
                    140: The name given is arbitrary, and is used to identify the connection.
                    141: Here's a simple example:
                    142: .PP
                    143: .ne 10
                    144: .nf
                    145: .ft B
                    146: .ta 1c
                    147: conn snt
                    148:        left=192.168.0.1
                    149:        leftsubnet=10.1.0.0/16
                    150:        right=192.168.0.2
                    151:        rightsubnet=10.1.0.0/16
                    152:        keyingtries=%forever
                    153:        auto=add
                    154: .ft
                    155: .fi
                    156: .PP
                    157: A note on terminology: There are two kinds of communications going on:
                    158: transmission of user IP packets, and gateway-to-gateway negotiations for
                    159: keying, rekeying, and general control.
                    160: The path to control the connection is called 'ISAKMP SA' in IKEv1
                    161: and 'IKE SA' in the IKEv2 protocol. That what is being negotiated, the kernel
                    162: level data path, is called 'IPsec SA' or 'Child SA'.
                    163: strongSwan previously used two separate keying daemons, \fIpluto\fP and
                    164: \fIcharon\fP. This manual does not discuss \fIpluto\fP options anymore, but
                    165: only \fIcharon\fP that since strongSwan 5.0 supports both IKEv1 and IKEv2.
                    166: .PP
                    167: To avoid trivial editing of the configuration file to suit it to each system
                    168: involved in a connection,
                    169: connection specifications are written in terms of
                    170: .I left
                    171: and
                    172: .I right
                    173: participants,
                    174: rather than in terms of local and remote.
                    175: Which participant is considered
                    176: .I left
                    177: or
                    178: .I right
                    179: is arbitrary;
                    180: for every connection description an attempt is made to figure out whether
                    181: the local endpoint should act as the
                    182: .I left
                    183: or
                    184: .I right
                    185: endpoint. This is done by matching the IP addresses defined for both endpoints
                    186: with the IP addresses assigned to local network interfaces. If a match is found
                    187: then the role (left or right) that matches is going to be considered local.
                    188: If no match is found during startup,
                    189: .I left
                    190: is considered local.
                    191: This permits using identical connection specifications on both ends.
                    192: There are cases where there is no symmetry; a good convention is to
                    193: use
                    194: .I left
                    195: for the local side and
                    196: .I right
                    197: for the remote side (the first letters are a good mnemonic).
                    198: .PP
                    199: Many of the parameters relate to one participant or the other;
                    200: only the ones for
                    201: .I left
                    202: are listed here, but every parameter whose name begins with
                    203: .B left
                    204: has a
                    205: .B right
                    206: counterpart,
                    207: whose description is the same but with
                    208: .B left
                    209: and
                    210: .B right
                    211: reversed.
                    212: .PP
                    213: Parameters are optional unless marked '(required)'.
                    214: .SS "CONN PARAMETERS"
                    215: Unless otherwise noted, for a connection to work,
                    216: in general it is necessary for the two ends to agree exactly
                    217: on the values of these parameters.
                    218: .TP
                    219: .BR aaa_identity " = <id>"
                    220: defines the identity of the AAA backend used during IKEv2 EAP authentication.
                    221: This is required if the EAP client uses a method that verifies the server
                    222: identity (such as EAP-TLS), but it does not match the IKEv2 gateway identity.
                    223: .TP
                    224: .BR aggressive " = yes | " no
                    225: whether to use IKEv1 Aggressive or Main Mode (the default).
                    226: .TP
                    227: .BR ah " = <cipher suites>"
                    228: comma-separated list of AH algorithms to be used for the connection, e.g.
                    229: .BR sha1-sha256-modp1024 .
                    230: The notation is
                    231: .BR integrity[-dhgroup] .
                    232: For IKEv2, multiple algorithms (separated by -) of the same type can be included
                    233: in a single proposal. IKEv1 only includes the first algorithm in a proposal.
                    234: Only either the
                    235: .B ah
                    236: or
                    237: .B esp
                    238: keyword may be used, AH+ESP bundles are not supported.
                    239: 
                    240: There is no default AH cipher suite since by default ESP is used.
                    241: The daemon adds its extensive default proposal to the configured value. To
                    242: restrict it to the configured proposal an
                    243: exclamation mark
                    244: .RB ( ! )
                    245: can be added at the end.
                    246: 
                    247: If
                    248: .B dh-group
                    249: is specified, CHILD_SA/Quick Mode setup and rekeying include a separate
                    250: Diffie-Hellman exchange (refer to the
                    251: .B esp
                    252: keyword for details).
                    253: .TP
                    254: .BR also " = <name>"
                    255: includes conn section
                    256: .BR <name> .
                    257: .TP
                    258: .BR auth " = <value>"
                    259: was used by the
                    260: .B pluto
                    261: IKEv1 daemon to use AH integrity protection for ESP encrypted packets, but is
                    262: not supported in charon. The
                    263: .B ah
                    264: keyword specifies algorithms to use for integrity protection with AH, but
                    265: without encryption. AH+ESP bundles are not supported.
                    266: .TP
                    267: .BR authby " = " pubkey " | rsasig | ecdsasig | psk | secret | never | xauthpsk | xauthrsasig"
                    268: how the two security gateways should authenticate each other;
                    269: acceptable values are
                    270: .B psk
                    271: or
                    272: .B secret
                    273: for pre-shared secrets,
                    274: .B pubkey
                    275: (the default) for public key signatures as well as the synonyms
                    276: .B rsasig
                    277: for RSA digital signatures and
                    278: .B ecdsasig
                    279: for Elliptic Curve DSA signatures.
                    280: .B never
                    281: can be used if negotiation is never to be attempted or accepted (useful for
                    282: shunt-only conns).
                    283: Digital signatures are superior in every way to shared secrets.
                    284: IKEv1 additionally supports the values
                    285: .B xauthpsk
                    286: and
                    287: .B xauthrsasig
                    288: that will enable eXtended AUTHentication (XAUTH) in addition to IKEv1 main mode
                    289: based on shared secrets or digital RSA signatures, respectively.
                    290: This parameter is deprecated, as two peers do not need to agree on an
                    291: authentication method in IKEv2. Use the
                    292: .B leftauth
                    293: parameter instead to define authentication methods.
                    294: .TP
                    295: .BR auto " = " ignore " | add | route | start"
                    296: what operation, if any, should be done automatically at IPsec startup;
                    297: currently-accepted values are
                    298: .BR add ,
                    299: .BR route ,
                    300: .B start
                    301: and
                    302: .B ignore
                    303: (the default).
                    304: .B add
                    305: loads a connection without starting it.
                    306: .B route
                    307: loads a connection and installs kernel traps. If traffic is detected between
                    308: .B leftsubnet
                    309: and
                    310: .BR rightsubnet ,
                    311: a connection is established.
                    312: .B start
                    313: loads a connection and brings it up immediately.
                    314: .B ignore
                    315: ignores the connection. This is equal to deleting a connection from the config
                    316: file.
                    317: Relevant only locally, other end need not agree on it.
                    318: .TP
                    319: .BR closeaction " = " none " | clear | hold | restart"
                    320: defines the action to take if the remote peer unexpectedly closes a CHILD_SA
                    321: (see
                    322: .B dpdaction
                    323: for meaning of values).
                    324: A
                    325: .B closeaction should not be
                    326: used if the peer uses reauthentication or uniqueids checking, as these events
                    327: might trigger the defined action when not desired.
                    328: .TP
                    329: .BR compress " = yes | " no
                    330: whether IPComp compression of content is proposed on the connection
                    331: (link-level compression does not work on encrypted data,
                    332: so to be effective, compression must be done \fIbefore\fR encryption);
                    333: acceptable values are
                    334: .B yes
                    335: and
                    336: .B no
                    337: (the default). A value of
                    338: .B yes
                    339: causes the daemon to propose both compressed and uncompressed,
                    340: and prefer compressed.
                    341: A value of
                    342: .B no
                    343: prevents the daemon from proposing or accepting compression.
                    344: .TP
                    345: .BR dpdaction " = " none " | clear | hold | restart"
                    346: controls the use of the Dead Peer Detection protocol (DPD, RFC 3706) where
                    347: R_U_THERE notification messages (IKEv1) or empty INFORMATIONAL messages (IKEv2)
                    348: are periodically sent in order to check the
                    349: liveliness of the IPsec peer. The values
                    350: .BR clear ,
                    351: .BR hold ,
                    352: and
                    353: .B restart
                    354: all activate DPD and determine the action to perform on a timeout. With
                    355: .B clear
                    356: the connection is closed with no further actions taken.
                    357: .B hold
                    358: installs a trap policy, which will catch matching traffic and tries to
                    359: re-negotiate the connection on demand.
                    360: .B restart
                    361: will immediately trigger an attempt to re-negotiation the connection.
                    362: The default is
                    363: .B none
                    364: which disables the active sending of DPD messages.
                    365: .TP
                    366: .BR dpddelay " = " 30s " | <time>"
                    367: defines the period time interval with which R_U_THERE messages/INFORMATIONAL
                    368: exchanges are sent to the peer. These are only sent if no other traffic is
                    369: received. In IKEv2, a value of 0 sends no additional INFORMATIONAL
                    370: messages and uses only standard messages (such as those to rekey) to detect
                    371: dead peers.
                    372: .TP
                    373: .BR dpdtimeout " = " 150s " | <time>
                    374: defines the timeout interval, after which all connections to a peer are deleted
                    375: in case of inactivity. This only applies to IKEv1, in IKEv2 the default
                    376: retransmission timeout applies, as every exchange is used to detect dead peers.
                    377: .TP
                    378: .BR inactivity " = <time>"
                    379: defines the timeout interval, after which a CHILD_SA is closed if it did
                    380: not send or receive any traffic. The inactivity counter is reset during CHILD_SA
                    381: rekeying. This means that the inactivity timeout must be smaller than the
                    382: rekeying interval to have any effect.
                    383: .TP
                    384: .BR eap_identity " = <id>"
                    385: defines the identity the client uses to reply to an EAP Identity request.
                    386: If defined on the EAP server, the defined identity will be used as peer
                    387: identity during EAP authentication. The special value
                    388: .B %identity
                    389: uses the EAP Identity method to ask the client for an EAP identity. If not
                    390: defined, the IKEv2 identity will be used as EAP identity.
                    391: .TP
                    392: .BR esp " = <cipher suites>"
                    393: comma-separated list of ESP encryption/authentication algorithms to be used
                    394: for the connection, e.g.
                    395: .BR aes128-sha256 .
                    396: The notation is
                    397: .BR encryption-integrity[-dhgroup][-esnmode] .
                    398: For IKEv2, multiple algorithms (separated by -) of the same type can be included
                    399: in a single proposal. IKEv1 only includes the first algorithm in a proposal.
                    400: Only either the
                    401: .B ah
                    402: or
                    403: .B esp
                    404: keyword may be used, AH+ESP bundles are not supported.
                    405: 
                    406: Defaults to
                    407: .BR aes128-sha256 .
                    408: The daemon adds its extensive default proposal to this default
                    409: or the configured value.  To restrict it to the configured proposal an
                    410: exclamation mark
                    411: .RB ( ! )
                    412: can be added at the end.
                    413: 
                    414: .BR Note :
                    415: As a responder, the daemon defaults to selecting the first configured proposal
                    416: that's also supported by the peer. This may be changed via
                    417: .BR strongswan.conf (5)
                    418: to selecting the first acceptable proposal sent by the peer instead. In order to
                    419: restrict a responder to only accept specific cipher suites, the strict flag
                    420: .RB ( ! ,
                    421: exclamation mark) can be used, e.g: aes256-sha512-modp4096!
                    422: 
                    423: If
                    424: .B dh-group
                    425: is specified, CHILD_SA/Quick Mode rekeying and initial negotiation use a
                    426: separate Diffie-Hellman exchange using the specified group. However, for IKEv2,
                    427: the keys of the CHILD_SA created implicitly with the IKE_SA will always be
                    428: derived from the IKE_SA's key material. So any DH group specified here will only
                    429: apply when the CHILD_SA is later rekeyed or is created with a separate
                    430: CREATE_CHILD_SA exchange.  Therefore, a proposal mismatch might not immediately
                    431: be noticed when the SA is established, but may later cause rekeying to fail.
                    432: 
                    433: Valid values for
                    434: .B esnmode
                    435: are
                    436: .B esn
                    437: and
                    438: .BR noesn .
                    439: Specifying both negotiates Extended Sequence Number support with the peer,
                    440: the default is
                    441: .B noesn.
                    442: .TP
                    443: .BR forceencaps " = yes | " no
                    444: force UDP encapsulation for ESP packets even if no NAT situation is detected.
                    445: This may help to surmount restrictive firewalls. In order to force the peer to
                    446: encapsulate packets, NAT detection payloads are faked.
                    447: .TP
                    448: .BR fragmentation " = " yes "  | accept | force | no"
                    449: whether to use IKE fragmentation (proprietary IKEv1 extension or IKEv2
                    450: fragmentation as per RFC 7383).  Acceptable values are
                    451: .B yes
                    452: (the default),
                    453: .BR accept ,
                    454: .B force
                    455: and
                    456: .BR no .
                    457: If set to
                    458: .BR yes ,
                    459: and the peer supports it, oversized IKE messages will be sent in fragments. If
                    460: set to
                    461: .BR accept ,
                    462: support for fragmentation is announced to the peer but the daemon does not send
                    463: its own messages in fragments. If set to
                    464: .B force
                    465: (only supported for IKEv1) the initial IKE message will already be fragmented
                    466: if required. Finally, setting the option to
                    467: .B no
                    468: will disable announcing support for this feature.
                    469: 
                    470: Note that fragmented IKE messages sent by a peer are always accepted
                    471: irrespective of the value of this option (even when set to
                    472: .BR no ).
                    473: .TP
                    474: .BR ike " = <cipher suites>"
                    475: comma-separated list of IKE/ISAKMP SA encryption/authentication algorithms
                    476: to be used, e.g.
                    477: .BR aes128-sha256-modp3072 .
                    478: The notation is
                    479: .BR encryption-integrity[-prf]-dhgroup .
                    480: If no PRF is given, the algorithms defined for integrity are used for the PRF.
                    481: The prf keywords are the same as the integrity algorithms, but have a
                    482: .B prf
                    483: prefix (such as
                    484: .BR prfsha1 ,
                    485: .B prfsha256
                    486: or
                    487: .BR prfaesxcbc ).
                    488: .br
                    489: In IKEv2, multiple algorithms and proposals may be included, such as
                    490: .BR aes128-aes256-sha1-modp3072-modp2048,3des-sha1-md5-modp1024 .
                    491: 
                    492: Defaults to
                    493: .BR aes128-sha256-modp3072 .
                    494: The daemon adds its extensive default proposal to this
                    495: default or the configured value.  To restrict it to the configured proposal an
                    496: exclamation mark
                    497: .RB ( ! )
                    498: can be added at the end.
                    499: 
                    500: .BR Note :
                    501: As a responder the daemon accepts the first supported proposal received from
                    502: the peer.  In order to restrict a responder to only accept specific cipher
                    503: suites, the strict flag
                    504: .RB ( ! ,
                    505: exclamation mark) can be used, e.g:
                    506: .BR aes256-sha512-modp4096!
                    507: .TP
                    508: .BR ikedscp " = " 000000 " | <DSCP field>"
                    509: Differentiated Services Field Codepoint to set on outgoing IKE packets sent
                    510: from this connection. The value is a six digit binary encoded string defining
                    511: the Codepoint to set, as defined in RFC 2474.
                    512: .TP
                    513: .BR ikelifetime " = " 3h " | <time>"
                    514: how long the keying channel of a connection (ISAKMP or IKE SA)
                    515: should last before being renegotiated. Also see EXPIRY/REKEY below.
                    516: .TP
                    517: .BR installpolicy " = " yes " | no"
                    518: decides whether IPsec policies are installed in the kernel by the charon daemon
                    519: for a given connection. Allows peaceful cooperation e.g. with
                    520: the Mobile IPv6 daemon mip6d who wants to control the kernel policies.
                    521: Acceptable values are
                    522: .B yes
                    523: (the default) and
                    524: .BR no .
                    525: .TP
                    526: .BR keyexchange " = " ike " | ikev1 | ikev2"
                    527: which key exchange protocol should be used to initiate the connection.
                    528: Connections marked with
                    529: .B ike
                    530: use IKEv2 when initiating, but accept any protocol version when responding.
                    531: .TP
                    532: .BR keyingtries " = " 3 " | <number> | %forever"
                    533: how many attempts (a whole number or \fB%forever\fP) should be made to
                    534: negotiate a connection, or a replacement for one, before giving up
                    535: (default
                    536: .BR 3 ).
                    537: The value \fB%forever\fP
                    538: means 'never give up'.
                    539: Relevant only locally, other end need not agree on it.
                    540: .TP
                    541: .BR left " = <ip address> | <fqdn> | " %any " | <range> | <subnet> "
                    542: The IP address of the left participant's public-network interface
                    543: or one of several magic values.
                    544: The value
                    545: .B %any
                    546: (the default) for the local endpoint signifies an address to be filled in (by
                    547: automatic keying) during negotiation. If the local peer initiates the
                    548: connection setup the routing table will be queried to determine the correct
                    549: local IP address.
                    550: In case the local peer is responding to a connection setup then any IP address
                    551: that is assigned to a local interface will be accepted.
                    552: 
                    553: The prefix
                    554: .B %
                    555: in front of a fully-qualified domain name or an IP address will implicitly set
                    556: .BR leftallowany =yes.
                    557: 
                    558: If
                    559: .B %any
                    560: is used for the remote endpoint it literally means any IP address.
                    561: 
                    562: If an
                    563: .B FQDN
                    564: is assigned it is resolved every time a configuration lookup is done. If DNS
                    565: resolution times out, the lookup is delayed for that time.
                    566: 
                    567: To limit the connection to a  specific range of hosts, a range (
                    568: .BR 10.1.0.0-10.2.255.255
                    569: ) or a subnet (
                    570: .BR 10.1.0.0/16
                    571: ) can be specified, and multiple addresses, ranges and subnets can be separated
                    572: by commas. While one can freely combine these items, to initiate the connection
                    573: at least one non-range/subnet is required.
                    574: 
                    575: Please note that with the usage of wildcards multiple connection descriptions
                    576: might match a given incoming connection attempt. The most specific description
                    577: is used in that case.
                    578: .TP
                    579: .BR leftallowany " = yes | " no
                    580: a modifier for
                    581: .BR left ,
                    582: making it behave as
                    583: .B %any
                    584: although a concrete IP address or domain name has been assigned.
                    585: .TP
                    586: .BR leftauth " = <auth method>"
                    587: Authentication method to use locally (left) or require from the remote (right)
                    588: side.
                    589: Acceptable values are
                    590: .B pubkey
                    591: for public key authentication (RSA/ECDSA),
                    592: .B psk
                    593: for pre-shared key authentication,
                    594: .B eap
                    595: to (require the) use of the Extensible Authentication Protocol in IKEv2, and
                    596: .B xauth
                    597: for IKEv1 eXtended Authentication.
                    598: 
                    599: To require a trustchain public key strength for the remote side, specify the
                    600: key type followed by the minimum strength in bits (for example
                    601: .BR ecdsa-384
                    602: or
                    603: .BR rsa-2048-ecdsa-256 ).
                    604: To limit the acceptable set of hashing algorithms for trustchain validation,
                    605: append hash algorithms to
                    606: .BR pubkey
                    607: or a key strength definition (for example
                    608: .BR pubkey-sha256-sha512 ,
                    609: .BR rsa-2048-sha256-sha384-sha512 ,
                    610: or
                    611: .BR rsa-2048-sha256-ecdsa-256-sha256-sha384 ).
                    612: Unless disabled in
                    613: .BR strongswan.conf (5),
                    614: or explicit IKEv2 signature constraints are configured (see below), such key
                    615: types and hash algorithms are also applied as constraints against IKEv2
                    616: signature authentication schemes used by the remote side.
                    617: 
                    618: If both peers support RFC 7427 ("Signature Authentication in IKEv2") specific
                    619: hash algorithms to be used during IKEv2 authentication may be configured.
                    620: The syntax is the same as above, but with ike: prefix. For example, with
                    621: .B ike:pubkey-sha384-sha256
                    622: a public key signature scheme with either SHA-384 or SHA-256 would get used for
                    623: authentication, in that order and depending on the hash algorithms supported by
                    624: the peer.  If no specific hash algorithms are configured, the default is to
                    625: prefer an algorithm that matches or exceeds the strength of the signature key.
                    626: If no constraints with ike: prefix are configured any signature scheme
                    627: constraint (without ike: prefix) will also apply to IKEv2 authentication, unless
                    628: this is disabled in
                    629: .BR strongswan.conf (5).
                    630: 
                    631: To use or require RSASSA-PSS signatures use rsa/pss instead of rsa as in e.g.
                    632: .BR ike:rsa/pss-sha256 .
                    633: If \fBpubkey\fR or \fBrsa\fR constraints are configured RSASSA-PSS signatures
                    634: will only be used/accepted if enabled in
                    635: .BR strongswan.conf (5).
                    636: 
                    637: For
                    638: .BR eap ,
                    639: an optional EAP method can be appended. Currently defined methods are
                    640: .BR eap-aka ,
                    641: .BR eap-gtc ,
                    642: .BR eap-md5 ,
                    643: .BR eap-mschapv2 ,
                    644: .BR eap-peap ,
                    645: .BR eap-sim ,
                    646: .BR eap-tls ,
                    647: .BR eap-ttls ,
                    648: .BR eap-dynamic ,
                    649: and
                    650: .BR eap-radius .
                    651: Alternatively, IANA assigned EAP method numbers are accepted. Vendor specific
                    652: EAP methods are defined in the form
                    653: .B eap-type-vendor
                    654: .RB "(e.g. " eap-7-12345 ).
                    655: To specify signature and trust chain constraints for EAP-(T)TLS, append a colon
                    656: to the EAP method, followed by the key type/size and hash algorithm as discussed
                    657: above. For
                    658: .B xauth,
                    659: an XAuth authentication backend can be specified, such as
                    660: .B xauth-generic
                    661: or
                    662: .BR xauth-eap .
                    663: If XAuth is used in
                    664: .BR leftauth ,
                    665: Hybrid authentication is used. For traditional XAuth authentication, define
                    666: XAuth in
                    667: .BR lefauth2 .
                    668: .TP
                    669: .BR leftauth2 " = <auth method>"
                    670: Same as
                    671: .BR leftauth ,
                    672: but defines an additional authentication exchange. In IKEv1, only XAuth can be
                    673: used in the second authentication round. IKEv2 supports multiple complete
                    674: authentication rounds using "Multiple Authentication Exchanges" defined
                    675: in RFC 4739. This allows, for example, separated authentication
                    676: of host and user.
                    677: .TP
                    678: .BR leftca " = <issuer dn> | %same"
                    679: the distinguished name of a certificate authority which is required to
                    680: lie in the trust path going from the left participant's certificate up
                    681: to the root certification authority.
                    682: .B %same
                    683: means that the value configured for the right participant should be reused.
                    684: .TP
                    685: .BR leftca2 " = <issuer dn> | %same"
                    686: Same as
                    687: .BR leftca ,
                    688: but for the second authentication round (IKEv2 only).
                    689: .TP
                    690: .BR leftcert " = <path>"
                    691: the path to the left participant's X.509 certificate. The file can be encoded
                    692: either in PEM or DER format. OpenPGP certificates are supported as well.
                    693: Both absolute paths or paths relative to \fI/etc/ipsec.d/certs\fP
                    694: are accepted. By default
                    695: .B leftcert
                    696: sets
                    697: .B leftid
                    698: to the distinguished name of the certificate's subject.
                    699: The left participant's ID can be overridden by specifying a
                    700: .B leftid
                    701: value which must be certified by the certificate, though.
                    702: .br
                    703: A value in the form
                    704: .B %smartcard[<slot nr>[@<module>]]:<keyid>
                    705: defines a specific certificate to load from a PKCS#11 backend for this
                    706: connection. See ipsec.secrets(5) for details about smartcard definitions.
                    707: .B leftcert
                    708: is required only if selecting the certificate with
                    709: .B leftid
                    710: is not sufficient, for example if multiple certificates use the same subject.
                    711: .br
                    712: Multiple certificate paths or PKCS#11 backends can be specified in a comma
                    713: separated list. The daemon chooses the certificate based on the received
                    714: certificate requests if possible before enforcing the first.
                    715: .TP
                    716: .BR leftcert2 " = <path>"
                    717: Same as
                    718: .B leftcert,
                    719: but for the second authentication round (IKEv2 only).
                    720: .TP
                    721: .BR leftcertpolicy " = <OIDs>"
                    722: Comma separated list of certificate policy OIDs the peer's certificate must
                    723: have.
                    724: OIDs are specified using the numerical dotted representation.
                    725: .TP
                    726: .BR leftdns " = <servers>"
                    727: Comma separated list of DNS server addresses to exchange as configuration
                    728: attributes. On the initiator, a server is a fixed IPv4/IPv6 address, or
                    729: .BR %config4 / %config6
                    730: to request attributes without an address. On the responder,
                    731: only fixed IPv4/IPv6 addresses are allowed and define DNS servers assigned
                    732: to the client.
                    733: .TP
                    734: .BR leftfirewall " = yes | " no
                    735: whether the left participant is doing forwarding-firewalling
                    736: (including masquerading) using iptables for traffic from \fIleftsubnet\fR,
                    737: which should be turned off (for traffic to the other subnet)
                    738: once the connection is established;
                    739: acceptable values are
                    740: .B yes
                    741: and
                    742: .B no
                    743: (the default).
                    744: May not be used in the same connection description with
                    745: .BR leftupdown .
                    746: Implemented as a parameter to the default \fBipsec _updown\fR script.
                    747: See notes below.
                    748: Relevant only locally, other end need not agree on it.
                    749: 
                    750: If one or both security gateways are doing forwarding firewalling
                    751: (possibly including masquerading),
                    752: and this is specified using the firewall parameters,
                    753: tunnels established with IPsec are exempted from it
                    754: so that packets can flow unchanged through the tunnels.
                    755: (This means that all subnets connected in this manner must have
                    756: distinct, non-overlapping subnet address blocks.)
                    757: This is done by the default \fBipsec _updown\fR script.
                    758: 
                    759: In situations calling for more control,
                    760: it may be preferable for the user to supply his own
                    761: .I updown
                    762: script,
                    763: which makes the appropriate adjustments for his system.
                    764: .TP
                    765: .BR leftgroups " = <group list>"
                    766: a comma separated list of group names. If the
                    767: .B leftgroups
                    768: parameter is present then the peer must be a member of at least one
                    769: of the groups defined by the parameter.
                    770: .TP
                    771: .BR leftgroups2 " = <group list>"
                    772: Same as
                    773: .B leftgroups,
                    774: but for the second authentication round defined with
                    775: .B leftauth2.
                    776: .TP
                    777: .BR lefthostaccess " = yes | " no
                    778: inserts a pair of INPUT and OUTPUT iptables rules using the default
                    779: \fBipsec _updown\fR script, thus allowing access to the host itself
                    780: in the case where the host's internal interface is part of the
                    781: negotiated client subnet.
                    782: Acceptable values are
                    783: .B yes
                    784: and
                    785: .B no
                    786: (the default).
                    787: .TP
                    788: .BR leftid " = <id>"
                    789: how the left participant should be identified for authentication;
                    790: defaults to
                    791: .B left
                    792: or the subject of the certificate configured with
                    793: .BR leftcert .
                    794: If
                    795: .B leftcert
                    796: is configured the identity has to be confirmed by the certificate.
                    797: 
                    798: Can be an IP address, a fully-qualified domain name, an email address or a
                    799: Distinguished Name for which the ID type is determined automatically and the
                    800: string is converted to the appropriate encoding. The rules for this conversion
                    801: are described in IDENTITY PARSING below.
                    802: 
                    803: In certain special situations the identity parsing above might be inadequate
                    804: or produce the wrong result. Examples are the need to encode a FQDN as KEY_ID or
                    805: the string parser being unable to produce the correct binary ASN.1 encoding of
                    806: a certificate's DN.  For these situations it is possible to enforce a specific
                    807: identity type and to provide the binary encoding of the identity. To do this a
                    808: prefix may be used, followed by a colon (:). If the number sign (#) follows the
                    809: colon, the remaining data is interpreted as hex encoding, otherwise the string
                    810: is used as is as the identification data.
                    811: .BR Note :
                    812: The latter implies that no conversion is performed for non-string identities.
                    813: For example,
                    814: \fIipv4:10.0.0.1\fP does not create a valid ID_IPV4_ADDR IKE identity, as it
                    815: does not get converted to binary 0x0a000001. Instead, one could use
                    816: \fIipv4:#0a000001\fP to get a valid identity, but just using the implicit type
                    817: with automatic conversion is usually simpler. The same applies to the ASN.1
                    818: encoded types. The following prefixes are known:
                    819: .BR ipv4 ,
                    820: .BR ipv6 ,
                    821: .BR rfc822 ,
                    822: .BR email ,
                    823: .BR userfqdn ,
                    824: .BR fqdn ,
                    825: .BR dns ,
                    826: .BR asn1dn ,
                    827: .B asn1gn
                    828: and
                    829: .BR keyid .
                    830: Custom type prefixes may be specified by surrounding the numerical type value by
                    831: curly brackets.
                    832: 
                    833: For IKEv2 and
                    834: .B rightid
                    835: the prefix
                    836: .B %
                    837: in front of the identity prevents the daemon from sending IDr in its IKE_AUTH
                    838: request and will allow it to verify the configured identity against the subject
                    839: and subjectAltNames contained in the responder's certificate (otherwise it is
                    840: only compared with the IDr returned by the responder).  The IDr sent by the
                    841: initiator might otherwise prevent the responder from finding a config if it
                    842: has configured a different value for
                    843: .BR leftid .
                    844: .TP
                    845: .BR leftid2 " = <id>"
                    846: identity to use for a second authentication for the left participant
                    847: (IKEv2 only); defaults to
                    848: .BR leftid .
                    849: .TP
                    850: .BR leftikeport " = <port>"
                    851: UDP port the left participant uses for IKE communication.
                    852: If unspecified, port 500 is used with the port floating
                    853: to 4500 if a NAT is detected or MOBIKE is enabled. Specifying a local IKE port
                    854: different from the default additionally requires a socket implementation that
                    855: listens on this port.
                    856: .TP
                    857: .BR leftprotoport " = <protocol>/<port>"
                    858: restrict the traffic selector to a single protocol and/or port. This option
                    859: is now deprecated, protocol/port information can be defined for each subnet
                    860: directly in
                    861: .BR leftsubnet .
                    862: .TP
                    863: .BR leftsigkey " = <raw public key> | <path to public key>"
                    864: the left participant's public key for public key signature authentication,
                    865: in PKCS#1 format using hex (0x prefix) or base64 (0s prefix) encoding. With the
                    866: optional
                    867: .B dns:
                    868: or
                    869: .B ssh:
                    870: prefix in front of 0x or 0s, the public key is expected to be in either
                    871: the RFC 3110 (not the full RR, only RSA key part) or RFC 4253 public key format,
                    872: respectively.
                    873: Also accepted is the path to a file containing the public key in PEM, DER or SSH
                    874: encoding. Both absolute paths or paths relative to \fI/etc/ipsec.d/certs\fP
                    875: are accepted.
                    876: .TP
                    877: .BR leftsendcert " = never | no | " ifasked " | always | yes"
                    878: Accepted values are
                    879: .B never
                    880: or
                    881: .BR no ,
                    882: .B always
                    883: or
                    884: .BR yes ,
                    885: and
                    886: .BR ifasked " (the default),"
                    887: the latter meaning that the peer must send a certificate request payload in
                    888: order to get a certificate in return.
                    889: .TP
                    890: .BR leftsourceip " = %config4 | %config6 | <ip address>"
                    891: Comma separated list of internal source IPs to use in a tunnel, also known as
                    892: virtual IP. If the value is one of the synonyms
                    893: .BR %config ,
                    894: .BR %cfg ,
                    895: .BR %modeconfig ,
                    896: or
                    897: .BR %modecfg ,
                    898: an address (from the tunnel address family) is requested from the peer. With
                    899: .B %config4
                    900: and
                    901: .B %config6
                    902: an address of the given address family will be requested explicitly.
                    903: If an IP address is configured, it will be requested from the responder,
                    904: which is free to respond with a different address.
                    905: .TP
                    906: .BR rightsourceip " = %config | <network>/<netmask> | <from>-<to> | %poolname"
                    907: Comma separated list of internal source IPs to use in a tunnel for the remote
                    908: peer. If the value is
                    909: .B %config
                    910: on the responder side, the initiator must propose an address which is then
                    911: echoed back. Also supported are address pools expressed as
                    912: \fInetwork\fB/\fInetmask\fR
                    913: and
                    914: \fIfrom\fB-\fIto\fR
                    915: or the use of an external IP address pool using %\fIpoolname\fR,
                    916: where \fIpoolname\fR is the name of the IP address pool used for the lookup.
                    917: .TP
                    918: .BR leftsubnet " = <ip subnet>[[<proto/port>]][,...]"
                    919: private subnet behind the left participant, expressed as
                    920: \fInetwork\fB/\fInetmask\fR;
                    921: if omitted, essentially assumed to be \fIleft\fB/32\fR,
                    922: signifying that the left end of the connection goes to the left participant
                    923: only. Configured subnets of the peers may differ, the protocol narrows it to
                    924: the greatest common subnet. In IKEv1, this may lead to problems with other
                    925: implementations, make sure to configure identical subnets in such
                    926: configurations. IKEv2 supports multiple subnets separated by commas. IKEv1 only
                    927: interprets the first subnet of such a definition, unless the Cisco Unity
                    928: extension plugin is enabled. This is due to a limitation of the IKEv1 protocol,
                    929: which only allows a single pair of subnets per CHILD_SA. So to tunnel several
                    930: subnets a conn entry has to be defined and brought up for each pair of subnets.
                    931: 
                    932: The optional part after each subnet enclosed in square brackets specifies a
                    933: protocol/port to restrict the selector for that subnet.
                    934: 
                    935: Examples:
                    936: .BR leftsubnet=10.0.0.1[tcp/http],10.0.0.2[6/80] " or"
                    937: .BR leftsubnet=fec1::1[udp],10.0.0.0/16[/53] .
                    938: Instead of omitting either value
                    939: .B %any
                    940: can be used to the same effect, e.g.
                    941: .BR leftsubnet=fec1::1[udp/%any],10.0.0.0/16[%any/53] .
                    942: 
                    943: If the protocol is
                    944: .B icmp
                    945: or
                    946: .B ipv6-icmp
                    947: the port is interpreted as ICMP message type if it is less than 256 or as type
                    948: and code if it is greater or equal to 256, with the type in the most significant
                    949: 8 bits and the code in the least significant 8 bits.
                    950: 
                    951: The port value can alternatively take the value
                    952: .B %opaque
                    953: for RFC 4301 OPAQUE selectors, or a numerical range in the form
                    954: .BR 1024-65535 .
                    955: None of the kernel backends currently supports opaque or port ranges and uses
                    956: .B %any
                    957: for policy installation instead.
                    958: 
                    959: Instead of specifying a subnet,
                    960: .B %dynamic
                    961: can be used to replace it with the IKE address, having the same effect
                    962: as omitting
                    963: .B leftsubnet
                    964: completely. Using
                    965: .B %dynamic
                    966: can be used to define multiple dynamic selectors, each having a potentially
                    967: different protocol/port definition.
                    968: 
                    969: .TP
                    970: .BR leftupdown " = <path>"
                    971: what ``updown'' script to run to adjust routing and/or firewalling
                    972: when the status of the connection
                    973: changes (default
                    974: .BR "ipsec _updown" ).
                    975: May include positional parameters separated by white space
                    976: (although this requires enclosing the whole string in quotes);
                    977: including shell metacharacters is unwise.
                    978: Relevant only locally, other end need not agree on it. Charon uses the updown
                    979: script to insert firewall rules only, since routing has been implemented
                    980: directly into the daemon.
                    981: .TP
                    982: .BR lifebytes " = <number>"
                    983: the number of bytes transmitted over an IPsec SA before it expires.
                    984: .TP
                    985: .BR lifepackets " = <number>"
                    986: the number of packets transmitted over an IPsec SA before it expires.
                    987: .TP
                    988: .BR lifetime " = " 1h " | <time>"
                    989: how long a particular instance of a connection
                    990: (a set of encryption/authentication keys for user packets) should last,
                    991: from successful negotiation to expiry;
                    992: acceptable values are an integer optionally followed by
                    993: .BR s
                    994: (a time in seconds)
                    995: or a decimal number followed by
                    996: .BR m ,
                    997: .BR h ,
                    998: or
                    999: .B d
                   1000: (a time
                   1001: in minutes, hours, or days respectively)
                   1002: (default
                   1003: .BR 1h ,
                   1004: maximum
                   1005: .BR 24h ).
                   1006: Normally, the connection is renegotiated (via the keying channel)
                   1007: before it expires (see
                   1008: .BR margintime ).
                   1009: The two ends need not exactly agree on
                   1010: .BR lifetime ,
                   1011: although if they do not,
                   1012: there will be some clutter of superseded connections on the end
                   1013: which thinks the lifetime is longer. Also see EXPIRY/REKEY below.
                   1014: .TP
                   1015: .BR marginbytes " = <number>"
                   1016: how many bytes before IPsec SA expiry (see
                   1017: .BR lifebytes )
                   1018: should attempts to negotiate a replacement begin.
                   1019: .TP
                   1020: .BR marginpackets " = <number>"
                   1021: how many packets before IPsec SA expiry (see
                   1022: .BR lifepackets )
                   1023: should attempts to negotiate a replacement begin.
                   1024: .TP
                   1025: .BR margintime " = " 9m " | <time>"
                   1026: how long before connection expiry or keying-channel expiry
                   1027: should attempts to
                   1028: negotiate a replacement
                   1029: begin; acceptable values as for
                   1030: .B lifetime
                   1031: (default
                   1032: .BR 9m ).
                   1033: Relevant only locally, other end need not agree on it. Also see EXPIRY/REKEY
                   1034: below.
                   1035: .TP
                   1036: .BR mark " = <value>[/<mask>]"
                   1037: sets an XFRM mark on the inbound policy and outbound
                   1038: IPsec SA and policy. If the mask is missing then a default
                   1039: mask of
                   1040: .B 0xffffffff
                   1041: is assumed. The special value
                   1042: .B %unique
                   1043: assigns a unique value to each newly created IPsec SA. To additionally
                   1044: make the mark unique for each IPsec SA direction (in/out) the special value
                   1045: .B %unique-dir
                   1046: may be used.
                   1047: .TP
                   1048: .BR mark_in " = <value>[/<mask>]"
                   1049: sets an XFRM mark on the inbound policy (not on the SA). If the mask is missing
                   1050: then a default mask of
                   1051: .B 0xffffffff
                   1052: is assumed.
                   1053: .TP
                   1054: .BR mark_out " = <value>[/<mask>]"
                   1055: sets an XFRM mark on the outbound IPsec SA and
                   1056: policy. If the mask is missing then a default mask of
                   1057: .B 0xffffffff
                   1058: is assumed.
                   1059: .TP
                   1060: .BR mobike " = " yes " | no"
                   1061: enables the IKEv2 MOBIKE protocol defined by RFC 4555. Accepted values are
                   1062: .B yes
                   1063: (the default) and
                   1064: .BR no .
                   1065: If set to
                   1066: .BR no ,
                   1067: the charon daemon will not actively propose MOBIKE as initiator and
                   1068: ignore the MOBIKE_SUPPORTED notify as responder.
                   1069: .TP
                   1070: .BR modeconfig " = push | " pull
                   1071: defines which mode is used to assign a virtual IP.
                   1072: Accepted values are
                   1073: .B push
                   1074: and
                   1075: .B pull
                   1076: (the default).
                   1077: Push mode is currently not supported with IKEv2.
                   1078: The setting must be the same on both sides.
                   1079: .TP
                   1080: .BR reauth " = " yes " | no"
                   1081: whether rekeying of an IKE_SA should also reauthenticate the peer. In IKEv1,
                   1082: reauthentication is always done. In IKEv2, a value of
                   1083: .B no
                   1084: rekeys without uninstalling the IPsec SAs, a value of
                   1085: .B yes
                   1086: (the default) creates a new IKE_SA from scratch and tries to recreate
                   1087: all IPsec SAs.
                   1088: .TP
                   1089: .BR rekey " = " yes " | no"
                   1090: whether a connection should be renegotiated when it is about to expire;
                   1091: acceptable values are
                   1092: .B yes
                   1093: (the default)
                   1094: and
                   1095: .BR no .
                   1096: The two ends need not agree, but while a value of
                   1097: .B no
                   1098: prevents charon from requesting renegotiation,
                   1099: it does not prevent responding to renegotiation requested from the other end,
                   1100: so
                   1101: .B no
                   1102: will be largely ineffective unless both ends agree on it. Also see
                   1103: .BR reauth .
                   1104: .TP
                   1105: .BR rekeyfuzz " = " 100% " | <percentage>"
                   1106: maximum percentage by which
                   1107: .BR marginbytes ,
                   1108: .B marginpackets
                   1109: and
                   1110: .B margintime
                   1111: should be randomly increased to randomize rekeying intervals
                   1112: (important for hosts with many connections);
                   1113: acceptable values are an integer,
                   1114: which may exceed 100,
                   1115: followed by a `%'
                   1116: (defaults to
                   1117: .BR 100% ).
                   1118: The value of
                   1119: .BR marginTYPE ,
                   1120: after this random increase,
                   1121: must not exceed
                   1122: .B lifeTYPE
                   1123: (where TYPE is one of
                   1124: .IR bytes ,
                   1125: .I packets
                   1126: or
                   1127: .IR time ).
                   1128: The value
                   1129: .B 0%
                   1130: will suppress randomization.
                   1131: Relevant only locally, other end need not agree on it. Also see EXPIRY/REKEY
                   1132: below.
                   1133: .TP
                   1134: .BR replay_window " = " \-1 " | <number>"
                   1135: The IPsec replay window size for this connection. With the default of \-1
                   1136: the value configured with
                   1137: .I charon.replay_window
                   1138: in
                   1139: .BR strongswan.conf (5)
                   1140: is used. Larger values than 32 are supported using the Netlink backend only,
                   1141: a value of 0 disables IPsec replay protection.
                   1142: .TP
                   1143: .BR reqid " = <number>"
                   1144: sets the reqid for a given connection to a pre-configured fixed value.
                   1145: .TP
                   1146: .BR sha256_96 " = " no " | yes"
                   1147: HMAC-SHA-256 is used with 128-bit truncation with IPsec. For compatibility
                   1148: with implementations that incorrectly use 96-bit truncation this option may be
                   1149: enabled to configure the shorter truncation length in the kernel.  This is not
                   1150: negotiated, so this only works with peers that use the incorrect truncation
                   1151: length (or have this option enabled).
                   1152: .TP
                   1153: .BR tfc " = <value>"
                   1154: number of bytes to pad ESP payload data to. Traffic Flow Confidentiality
                   1155: is currently supported in IKEv2 and applies to outgoing packets only. The
                   1156: special value
                   1157: .BR %mtu
                   1158: fills up ESP packets with padding to have the size of the MTU.
                   1159: .TP
                   1160: .BR type " = " tunnel " | transport | transport_proxy | passthrough | drop"
                   1161: the type of the connection; currently the accepted values
                   1162: are
                   1163: .B tunnel
                   1164: (the default)
                   1165: signifying a host-to-host, host-to-subnet, or subnet-to-subnet tunnel;
                   1166: .BR transport ,
                   1167: signifying host-to-host transport mode;
                   1168: .BR transport_proxy ,
                   1169: signifying the special Mobile IPv6 transport proxy mode;
                   1170: .BR passthrough ,
                   1171: signifying that no IPsec processing should be done at all;
                   1172: .BR drop ,
                   1173: signifying that packets should be discarded.
                   1174: .TP
                   1175: .BR xauth " = " client " | server"
                   1176: specifies the role in the XAuth protocol if activated by
                   1177: .B authby=xauthpsk
                   1178: or
                   1179: .B authby=xauthrsasig.
                   1180: Accepted values are
                   1181: .B server
                   1182: and
                   1183: .B client
                   1184: (the default).
                   1185: .TP
                   1186: .BR xauth_identity " = <id>"
                   1187: defines the identity/username the client uses to reply to an XAuth request.
                   1188: If not defined, the IKEv1 identity will be used as XAuth identity.
                   1189: 
                   1190: .SS "CONN PARAMETERS: IKEv2 MEDIATION EXTENSION"
                   1191: The following parameters are relevant to IKEv2 Mediation Extension
                   1192: operation only.
                   1193: .TP
                   1194: .BR mediation " = yes | " no
                   1195: whether this connection is a mediation connection, ie. whether this
                   1196: connection is used to mediate other connections.  Mediation connections
                   1197: create no child SA. Acceptable values are
                   1198: .B no
                   1199: (the default) and
                   1200: .BR yes .
                   1201: .TP
                   1202: .BR mediated_by " = <name>"
                   1203: the name of the connection to mediate this connection through.  If given,
                   1204: the connection will be mediated through the named mediation connection.
                   1205: The mediation connection must set
                   1206: .BR mediation=yes .
                   1207: .TP
                   1208: .BR me_peerid " = <id>"
                   1209: ID as which the peer is known to the mediation server, ie. which the other
                   1210: end of this connection uses as its
                   1211: .B leftid
                   1212: on its connection to the mediation server.  This is the ID we request the
                   1213: mediation server to mediate us with.  If
                   1214: .B me_peerid
                   1215: is not given, the
                   1216: .B rightid
                   1217: of this connection will be used as peer ID.
                   1218: 
                   1219: .SH "CA SECTIONS"
                   1220: These are optional sections that can be used to assign special
                   1221: parameters to a Certification Authority (CA). Because the daemons
                   1222: automatically import CA certificates from \fI/etc/ipsec.d/cacerts\fP,
                   1223: there is no need to explicitly add them with a CA section, unless you
                   1224: want to assign special parameters (like a CRL) to a CA.
                   1225: .TP
                   1226: .BR also " = <name>"
                   1227: includes ca section
                   1228: .BR <name> .
                   1229: .TP
                   1230: .BR auto " = " ignore " | add"
                   1231: currently can have either the value
                   1232: .B ignore
                   1233: (the default) or
                   1234: .BR add .
                   1235: .TP
                   1236: .BR cacert " = <path>"
                   1237: defines a path to the CA certificate either relative to
                   1238: \fI/etc/ipsec.d/cacerts\fP or as an absolute path.
                   1239: .br
                   1240: A value in the form
                   1241: .B %smartcard[<slot nr>[@<module>]]:<keyid>
                   1242: defines a specific CA certificate to load from a PKCS#11 backend for this CA.
                   1243: See ipsec.secrets(5) for details about smartcard definitions.
                   1244: .TP
                   1245: .BR crluri " = <uri>"
                   1246: defines a CRL distribution point (ldap, http, or file URI)
                   1247: .TP
                   1248: .B crluri1
                   1249: synonym for
                   1250: .B crluri.
                   1251: .TP
                   1252: .BR crluri2 " = <uri>"
                   1253: defines an alternative CRL distribution point (ldap, http, or file URI)
                   1254: .TP
                   1255: .TP
                   1256: .BR ocspuri " = <uri>"
                   1257: defines an OCSP URI.
                   1258: .TP
                   1259: .B ocspuri1
                   1260: synonym for
                   1261: .B ocspuri.
                   1262: .TP
                   1263: .BR ocspuri2 " = <uri>"
                   1264: defines an alternative OCSP URI.
                   1265: .TP
                   1266: .BR certuribase " = <uri>"
                   1267: defines the base URI for the Hash and URL feature supported by IKEv2.
                   1268: Instead of exchanging complete certificates, IKEv2 allows one to send an URI
                   1269: that resolves to the DER encoded certificate. The certificate URIs are built
                   1270: by appending the SHA1 hash of the DER encoded certificates to this base URI.
                   1271: .SH "CONFIG SECTIONS"
                   1272: At present, the only
                   1273: .B config
                   1274: section known to the IPsec software is the one named
                   1275: .BR setup ,
                   1276: which contains information used when the software is being started.
                   1277: The currently-accepted
                   1278: .I parameter
                   1279: names in a
                   1280: .B config
                   1281: .B setup
                   1282: section are:
                   1283: .TP
                   1284: .BR cachecrls " = yes | " no
                   1285: if enabled, certificate revocation lists (CRLs) fetched via HTTP or LDAP will
                   1286: be cached in
                   1287: .I /etc/ipsec.d/crls/
                   1288: under a unique file name derived from the certification authority's public key.
                   1289: .TP
                   1290: .BR charondebug " = <debug list>"
                   1291: how much charon debugging output should be logged.
                   1292: A comma separated list containing type/level-pairs may
                   1293: be specified, e.g:
                   1294: .B dmn 3, ike 1, net -1.
                   1295: Acceptable values for types are
                   1296: .B dmn, mgr, ike, chd, job, cfg, knl, net, asn, enc, lib, esp, tls,
                   1297: .B tnc, imc, imv, pts
                   1298: and the level is one of
                   1299: .B -1, 0, 1, 2, 3, 4
                   1300: (for silent, audit, control, controlmore, raw, private).  By default, the level
                   1301: is set to
                   1302: .B 1
                   1303: for all types.  For more flexibility see LOGGER CONFIGURATION in
                   1304: .IR strongswan.conf (5).
                   1305: .TP
                   1306: .BR strictcrlpolicy " = yes | ifuri | " no
                   1307: defines if a fresh CRL must be available in order for the peer authentication
                   1308: based on RSA signatures to succeed.
                   1309: IKEv2 additionally recognizes
                   1310: .B ifuri
                   1311: which reverts to
                   1312: .B yes
                   1313: if at least one CRL URI is defined and to
                   1314: .B no
                   1315: if no URI is known.
                   1316: .TP
                   1317: .BR uniqueids " = " yes " | no | never | replace | keep"
                   1318: whether a particular participant ID should be kept unique,
                   1319: with any new IKE_SA using an ID deemed to replace all old ones using that ID;
                   1320: acceptable values are
                   1321: .B yes
                   1322: (the default),
                   1323: .B no
                   1324: and
                   1325: .BR never .
                   1326: Participant IDs normally \fIare\fR unique, so a new IKE_SA using the same ID is
                   1327: almost invariably intended to replace an old one. The difference between
                   1328: .B no
                   1329: and
                   1330: .B never
                   1331: is that the daemon will replace old IKE_SAs when receiving an INITIAL_CONTACT
                   1332: notify if the option is
                   1333: .B no
                   1334: but will ignore these notifies if
                   1335: .B never
                   1336: is configured.
                   1337: The daemon also accepts the value
                   1338: .B replace
                   1339: which is identical to
                   1340: .B yes
                   1341: and the value
                   1342: .B keep
                   1343: to reject new IKE_SA setups and keep the duplicate established earlier.
                   1344: 
                   1345: .SH IDENTITY PARSING
                   1346: The type and binary encoding of identity strings specified in \fIleftid\fR
                   1347: are detected as follows:
                   1348: .IP \[bu]
                   1349: If the string value contains an equal sign (=) it is assumed to be a
                   1350: Distinguished Name, with RDNs separated by commas (,) \fIor\fR slashes (/ - the string
                   1351: must start with a slash to use this syntax). An attempt is made to create a
                   1352: binary ASN.1 encoding from this string. If that fails the type is set to KEY_ID
                   1353: with the literal string value adopted as encoding.
                   1354: .IP \[bu]
                   1355: If the string value contains an @ the type depends on the position of that
                   1356: character:
                   1357: .RS
                   1358: .IP \[bu]
                   1359: If the string begins with @# the type is set to KEY_ID and the string following
                   1360: that prefix is assumed to be the hex-encoded binary value of the identity.
                   1361: .IP \[bu]
                   1362: If the string begins with @@ the type is set to USER_FQDN and the encoding is
                   1363: the literal string after that prefix.
                   1364: .IP \[bu]
                   1365: If the string begins with @ the type is set to FQDN and the encoding is the
                   1366: literal string after that prefix.
                   1367: .IP \[bu]
                   1368: All remaining strings containing an @ are assumed to be of type USER_FQDN/RFC822
                   1369: with the literal string value as encoding.
                   1370: .RE
                   1371: .IP \[bu]
                   1372: If the value does not contain any @ or = characters it is parsed as follows:
                   1373: .RS
                   1374: .IP \[bu]
                   1375: If the value is an empty string, or equals %any[6], 0.0.0.0, ::, or * the
                   1376: type is set to ID_ANY, which matches any other identity.
                   1377: .IP \[bu]
                   1378: If the value contains a colon (:) it is assumed to be an IPv6 address. But if
                   1379: parsing the address and converting it to its binary encoding fails the type is
                   1380: set to KEY_ID and the encoding is the literal value.
                   1381: .IP \[bu]
                   1382: For all other strings an attempt at parsing them as IPv4 addresses is made. If
                   1383: that fails the type is set to FQDN and the literal value is adopted as
                   1384: encoding (this is where domain names and simple names end up).
                   1385: .RE
                   1386: 
                   1387: .SH SA EXPIRY/REKEY
                   1388: The IKE SAs and IPsec SAs negotiated by the daemon can be configured to expire
                   1389: after a specific amount of time. For IPsec SAs this can also happen after a
                   1390: specified number of transmitted packets or transmitted bytes. The following
                   1391: settings can be used to configure this:
                   1392: .TS
                   1393: l r l r,- - - -,lB s lB s,a r a r.
                   1394: Setting        Default Setting Default
                   1395: IKE SA IPsec SA
                   1396: ikelifetime    3h      lifebytes       -
                   1397:                lifepackets     -
                   1398:                lifetime        1h
                   1399: .TE
                   1400: .SS Rekeying
                   1401: IKE SAs as well as IPsec SAs can be rekeyed before they expire. This can be
                   1402: configured using the following settings:
                   1403: .TS
                   1404: l r l r,- - - -,lB s lB s,a r a r.
                   1405: Setting        Default Setting Default
                   1406: IKE and IPsec SA       IPsec SA
                   1407: margintime     9m      marginbytes     -
                   1408:                marginpackets   -
                   1409: .TE
                   1410: .SS Randomization
                   1411: To avoid collisions the specified margins are increased randomly before
                   1412: subtracting them from the expiration limits (see formula below). This is
                   1413: controlled by the
                   1414: .B rekeyfuzz
                   1415: setting:
                   1416: .TS
                   1417: l r,- -,lB s,a r.
                   1418: Setting        Default
                   1419: IKE and IPsec SA
                   1420: rekeyfuzz      100%
                   1421: .TE
                   1422: .PP
                   1423: Randomization can be disabled by setting
                   1424: .BR rekeyfuzz " to " 0% .
                   1425: .SS Formula
                   1426: The following formula is used to calculate the rekey time of IPsec SAs:
                   1427: .PP
                   1428: .EX
                   1429:  rekeytime = lifetime - (margintime + random(0, margintime * rekeyfuzz))
                   1430: .EE
                   1431: .PP
                   1432: It applies equally to IKE SAs and byte and packet limits for IPsec SAs.
                   1433: .SS Example
                   1434: Let's consider the default configuration:
                   1435: .PP
                   1436: .EX
                   1437:        lifetime = 1h
                   1438:        margintime = 9m
                   1439:        rekeyfuzz = 100%
                   1440: .EE
                   1441: .PP
                   1442: From the formula above follows that the rekey time lies between:
                   1443: .PP
                   1444: .EX
                   1445:        rekeytime_min = 1h - (9m + 9m) = 42m
                   1446:        rekeytime_max = 1h - (9m + 0m) = 51m
                   1447: .EE
                   1448: .PP
                   1449: Thus, the daemon will attempt to rekey the IPsec SA at a random time
                   1450: between 42 and 51 minutes after establishing the SA. Or, in other words,
                   1451: between 9 and 18 minutes before the SA expires.
                   1452: .SS Notes
                   1453: .IP \[bu]
                   1454: Since the rekeying of an SA needs some time, the margin values must not be
                   1455: too low.
                   1456: .IP \[bu]
                   1457: The value
                   1458: .B margin... + margin... * rekeyfuzz
                   1459: must not exceed the original limit. For example, specifying
                   1460: .B margintime = 30m
                   1461: in the default configuration is a bad idea as there is a chance that the rekey
                   1462: time equals zero and, thus, rekeying gets disabled.
                   1463: 
                   1464: .SH FILES
                   1465: .nf
                   1466: /etc/ipsec.conf
                   1467: /etc/ipsec.d/aacerts
                   1468: /etc/ipsec.d/acerts
                   1469: /etc/ipsec.d/cacerts
                   1470: /etc/ipsec.d/certs
                   1471: /etc/ipsec.d/crls
                   1472: 
                   1473: .SH SEE ALSO
                   1474: strongswan.conf(5), ipsec.secrets(5), ipsec(8)
                   1475: .SH HISTORY
                   1476: Originally written for the FreeS/WAN project by Henry Spencer.
                   1477: Updated and extended for the strongSwan project <http://www.strongswan.org> by
                   1478: Tobias Brunner, Andreas Steffen and Martin Willi.

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