Annotation of embedaddon/strongswan/man/ipsec.conf.5.in, revision 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>