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