]> git.ipfire.org Git - thirdparty/strongswan.git/blame - man/ipsec.conf.5.in
man: Fix documentation of inbound mark behavior in ipsec.conf(5)
[thirdparty/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
326used if the peer uses reauthentication or uniquids 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
541.B keylife
deddfde9
TB
542synonym for
543.BR lifetime .
fea5e716 544.TP
6301ec0a
MW
545.BR left " = <ip address> | <fqdn> | " %any " | <range> | <subnet> "
546The IP address of the left participant's public-network interface
c2bc2b27 547or one of several magic values.
75e3d90d 548The value
f115838b 549.B %any
72970b45
TB
550(the default) for the local endpoint signifies an address to be filled in (by
551automatic keying) during negotiation. If the local peer initiates the
552connection setup the routing table will be queried to determine the correct
553local IP address.
f115838b
TB
554In case the local peer is responding to a connection setup then any IP address
555that is assigned to a local interface will be accepted.
66e12b92
TB
556
557The prefix
558.B %
559in front of a fully-qualified domain name or an IP address will implicitly set
560.BR leftallowany =yes.
f115838b
TB
561
562If
563.B %any
564is used for the remote endpoint it literally means any IP address.
565
31456d1f
NK
566If an
567.B FQDN
568is assigned it is resolved every time a configuration lookup is done. If DNS
569resolution times out, the lookup is delayed for that time.
570
6301ec0a
MW
571To limit the connection to a specific range of hosts, a range (
572.BR 10.1.0.0-10.2.255.255
573) or a subnet (
574.BR 10.1.0.0/16
575) can be specified, and multiple addresses, ranges and subnets can be separated
576by commas. While one can freely combine these items, to initiate the connection
577at least one non-range/subnet is required.
578
f115838b
TB
579Please note that with the usage of wildcards multiple connection descriptions
580might match a given incoming connection attempt. The most specific description
581is used in that case.
c2bc2b27 582.TP
66e12b92
TB
583.BR leftallowany " = yes | " no
584a modifier for
585.BR left ,
586making it behave as
587.B %any
588although a concrete IP address or domain name has been assigned.
589.TP
6bcf6016 590.BR leftauth " = <auth method>"
f115838b
TB
591Authentication method to use locally (left) or require from the remote (right)
592side.
75e3d90d 593Acceptable values are
a44bb934 594.B pubkey
8015c91c 595for public key authentication (RSA/ECDSA),
a44bb934 596.B psk
75e3d90d 597for pre-shared key authentication,
a44bb934 598.B eap
75e3d90d
MW
599to (require the) use of the Extensible Authentication Protocol in IKEv2, and
600.B xauth
601for IKEv1 eXtended Authentication.
276cf3b7 602
44e513a3 603To require a trustchain public key strength for the remote side, specify the
7c4214bd
MW
604key type followed by the minimum strength in bits (for example
605.BR ecdsa-384
44e513a3 606or
7c4214bd
MW
607.BR rsa-2048-ecdsa-256 ).
608To limit the acceptable set of hashing algorithms for trustchain validation,
609append hash algorithms to
610.BR pubkey
611or a key strength definition (for example
612.BR pubkey-sha1-sha256
613or
614.BR rsa-2048-ecdsa-256-sha256-sha384-sha512 ).
276cf3b7 615Unless disabled in
3c23a751
TB
616.BR strongswan.conf (5),
617or explicit IKEv2 signature constraints are configured (see below), such key
618types and hash algorithms are also applied as constraints against IKEv2
276cf3b7
TB
619signature authentication schemes used by the remote side.
620
621If both peers support RFC 7427 ("Signature Authentication in IKEv2") specific
622hash algorithms to be used during IKEv2 authentication may be configured.
3c23a751
TB
623The syntax is the same as above, but with ike: prefix. For example, with
624.B ike:pubkey-sha384-sha256
276cf3b7
TB
625a public key signature scheme with either SHA-384 or SHA-256 would get used for
626authentication, in that order and depending on the hash algorithms supported by
627the peer. If no specific hash algorithms are configured, the default is to
628prefer an algorithm that matches or exceeds the strength of the signature key.
3c23a751
TB
629If no constraints with ike: prefix are configured any signature scheme
630constraint (without ike: prefix) will also apply to IKEv2 authentication, unless
631this is disabled in
632.BR strongswan.conf (5).
276cf3b7 633
44e513a3 634For
72970b45 635.BR eap ,
a44bb934 636an optional EAP method can be appended. Currently defined methods are
f115838b
TB
637.BR eap-aka ,
638.BR eap-gtc ,
639.BR eap-md5 ,
0293f095
AS
640.BR eap-mschapv2 ,
641.BR eap-peap ,
642.BR eap-sim ,
21079538 643.BR eap-tls ,
b24be296 644.BR eap-ttls ,
5f6ef5d5 645.BR eap-dynamic ,
a44bb934 646and
c8d46f29 647.BR eap-radius .
a44bb934
MW
648Alternatively, IANA assigned EAP method numbers are accepted. Vendor specific
649EAP methods are defined in the form
650.B eap-type-vendor
f115838b 651.RB "(e.g. " eap-7-12345 ).
f2e2cce2
MW
652To specify signature and trust chain constraints for EAP-(T)TLS, append a colon
653to the EAP method, followed by the key type/size and hash algorithm as discussed
654above. For
75e3d90d 655.B xauth,
66e12b92 656an XAuth authentication backend can be specified, such as
75e3d90d
MW
657.B xauth-generic
658or
66e12b92 659.BR xauth-eap .
75e3d90d
MW
660If XAuth is used in
661.BR leftauth ,
662Hybrid authentication is used. For traditional XAuth authentication, define
663XAuth in
664.BR lefauth2 .
a44bb934 665.TP
6bcf6016 666.BR leftauth2 " = <auth method>"
8015c91c 667Same as
f115838b 668.BR leftauth ,
75e3d90d
MW
669but defines an additional authentication exchange. In IKEv1, only XAuth can be
670used in the second authentication round. IKEv2 supports multiple complete
a44bb934 671authentication rounds using "Multiple Authentication Exchanges" defined
72970b45 672in RFC 4739. This allows, for example, separated authentication
75e3d90d 673of host and user.
a44bb934 674.TP
6bcf6016 675.BR leftca " = <issuer dn> | %same"
fea5e716
MW
676the distinguished name of a certificate authority which is required to
677lie in the trust path going from the left participant's certificate up
8015c91c 678to the root certification authority.
72970b45
TB
679.B %same
680means that the value configured for the right participant should be reused.
fea5e716 681.TP
6bcf6016 682.BR leftca2 " = <issuer dn> | %same"
a44bb934 683Same as
6bcf6016 684.BR leftca ,
a44bb934
MW
685but for the second authentication round (IKEv2 only).
686.TP
6bcf6016 687.BR leftcert " = <path>"
f115838b
TB
688the path to the left participant's X.509 certificate. The file can be encoded
689either in PEM or DER format. OpenPGP certificates are supported as well.
7900ab1b 690Both absolute paths or paths relative to \fI/etc/ipsec.d/certs\fP
fea5e716
MW
691are accepted. By default
692.B leftcert
8015c91c 693sets
fea5e716 694.B leftid
72970b45 695to the distinguished name of the certificate's subject.
84545f6e 696The left participant's ID can be overridden by specifying a
fea5e716
MW
697.B leftid
698value which must be certified by the certificate, though.
05e266ea
MW
699.br
700A value in the form
f6d8fb36 701.B %smartcard[<slot nr>[@<module>]]:<keyid>
05e266ea 702defines a specific certificate to load from a PKCS#11 backend for this
f6d8fb36 703connection. See ipsec.secrets(5) for details about smartcard definitions.
05e266ea
MW
704.B leftcert
705is required only if selecting the certificate with
706.B leftid
707is not sufficient, for example if multiple certificates use the same subject.
11a7abf5
MW
708.br
709Multiple certificate paths or PKCS#11 backends can be specified in a comma
710separated list. The daemon chooses the certificate based on the received
711certificate requests if possible before enforcing the first.
fea5e716 712.TP
6bcf6016 713.BR leftcert2 " = <path>"
a44bb934
MW
714Same as
715.B leftcert,
716but for the second authentication round (IKEv2 only).
717.TP
6367de28 718.BR leftcertpolicy " = <OIDs>"
66e12b92
TB
719Comma separated list of certificate policy OIDs the peer's certificate must
720have.
721OIDs are specified using the numerical dotted representation.
6367de28 722.TP
c60f1da4
MW
723.BR leftdns " = <servers>"
724Comma separated list of DNS server addresses to exchange as configuration
72970b45
TB
725attributes. On the initiator, a server is a fixed IPv4/IPv6 address, or
726.BR %config4 / %config6
c60f1da4 727to request attributes without an address. On the responder,
72970b45 728only fixed IPv4/IPv6 addresses are allowed and define DNS servers assigned
c60f1da4
MW
729to the client.
730.TP
6bcf6016 731.BR leftfirewall " = yes | " no
c2bc2b27
AS
732whether the left participant is doing forwarding-firewalling
733(including masquerading) using iptables for traffic from \fIleftsubnet\fR,
734which should be turned off (for traffic to the other subnet)
735once the connection is established;
736acceptable values are
737.B yes
738and
739.B no
740(the default).
741May not be used in the same connection description with
742.BR leftupdown .
743Implemented as a parameter to the default \fBipsec _updown\fR script.
744See notes below.
745Relevant only locally, other end need not agree on it.
746
747If one or both security gateways are doing forwarding firewalling
748(possibly including masquerading),
749and this is specified using the firewall parameters,
750tunnels established with IPsec are exempted from it
751so that packets can flow unchanged through the tunnels.
752(This means that all subnets connected in this manner must have
753distinct, non-overlapping subnet address blocks.)
75e3d90d 754This is done by the default \fBipsec _updown\fR script.
c2bc2b27
AS
755
756In situations calling for more control,
757it may be preferable for the user to supply his own
758.I updown
759script,
760which makes the appropriate adjustments for his system.
761.TP
6bcf6016 762.BR leftgroups " = <group list>"
c2bc2b27
AS
763a comma separated list of group names. If the
764.B leftgroups
765parameter is present then the peer must be a member of at least one
75e3d90d 766of the groups defined by the parameter.
c2bc2b27 767.TP
46df61df
MW
768.BR leftgroups2 " = <group list>"
769Same as
770.B leftgroups,
771but for the second authentication round defined with
772.B leftauth2.
773.TP
6bcf6016 774.BR lefthostaccess " = yes | " no
c2bc2b27
AS
775inserts a pair of INPUT and OUTPUT iptables rules using the default
776\fBipsec _updown\fR script, thus allowing access to the host itself
777in the case where the host's internal interface is part of the
778negotiated client subnet.
779Acceptable values are
780.B yes
781and
782.B no
783(the default).
784.TP
6bcf6016 785.BR leftid " = <id>"
f115838b 786how the left participant should be identified for authentication;
c2bc2b27 787defaults to
66e12b92
TB
788.B left
789or the subject of the certificate configured with
790.BR leftcert .
9388bf13 791If
72970b45
TB
792.B leftcert
793is configured the identity has to be confirmed by the certificate.
b7a500e9 794
9388bf13
MW
795Can be an IP address, a fully-qualified domain name, an email address or a
796Distinguished Name for which the ID type is determined automatically and the
4a2e1799
TB
797string is converted to the appropriate encoding. The rules for this conversion
798are described in IDENTITY PARSING below.
799
800In certain special situations the identity parsing above might be inadequate
801or produce the wrong result. Examples are the need to encode a FQDN as KEY_ID or
802the string parser being unable to produce the correct binary ASN.1 encoding of
803a certificate's DN. For these situations it is possible to enforce a specific
804identity type and to provide the binary encoding of the identity. To do this a
805prefix may be used, followed by a colon (:). If the number sign (#) follows the
806colon, the remaining data is interpreted as hex encoding, otherwise the string
807is used as is as the identification data.
808.BR Note :
809The latter implies that no conversion is performed for non-string identities.
810For example,
9388bf13
MW
811\fIipv4:10.0.0.1\fP does not create a valid ID_IPV4_ADDR IKE identity, as it
812does not get converted to binary 0x0a000001. Instead, one could use
813\fIipv4:#0a000001\fP to get a valid identity, but just using the implicit type
4a2e1799 814with automatic conversion is usually simpler. The same applies to the ASN.1
9388bf13
MW
815encoded types. The following prefixes are known:
816.BR ipv4 ,
817.BR ipv6 ,
818.BR rfc822 ,
819.BR email ,
820.BR userfqdn ,
821.BR fqdn ,
822.BR dns ,
823.BR asn1dn ,
824.B asn1gn
825and
826.BR keyid .
827Custom type prefixes may be specified by surrounding the numerical type value by
828curly brackets.
829
b7a500e9
TB
830For IKEv2 and
831.B rightid
832the prefix
833.B %
834in front of the identity prevents the daemon from sending IDr in its IKE_AUTH
835request and will allow it to verify the configured identity against the subject
836and subjectAltNames contained in the responder's certificate (otherwise it is
837only compared with the IDr returned by the responder). The IDr sent by the
838initiator might otherwise prevent the responder from finding a config if it
839has configured a different value for
840.BR leftid .
c2bc2b27 841.TP
6bcf6016 842.BR leftid2 " = <id>"
a44bb934
MW
843identity to use for a second authentication for the left participant
844(IKEv2 only); defaults to
845.BR leftid .
846.TP
6bcf6016 847.BR leftikeport " = <port>"
75e3d90d
MW
848UDP port the left participant uses for IKE communication.
849If unspecified, port 500 is used with the port floating
f115838b 850to 4500 if a NAT is detected or MOBIKE is enabled. Specifying a local IKE port
667b7372 851different from the default additionally requires a socket implementation that
72970b45 852listens on this port.
667b7372 853.TP
6bcf6016 854.BR leftprotoport " = <protocol>/<port>"
24df0678
MW
855restrict the traffic selector to a single protocol and/or port. This option
856is now deprecated, protocol/port information can be defined for each subnet
857directly in
858.BR leftsubnet .
7900ab1b 859.TP
87692be2
TB
860.BR leftsigkey " = <raw public key> | <path to public key>"
861the left participant's public key for public key signature authentication,
862in PKCS#1 format using hex (0x prefix) or base64 (0s prefix) encoding. With the
863optional
fa1d3d39
TB
864.B dns:
865or
866.B ssh:
867prefix in front of 0x or 0s, the public key is expected to be in either
87692be2
TB
868the RFC 3110 (not the full RR, only RSA key part) or RFC 4253 public key format,
869respectively.
b906d412
TB
870Also accepted is the path to a file containing the public key in PEM, DER or SSH
871encoding. Both absolute paths or paths relative to \fI/etc/ipsec.d/certs\fP
872are accepted.
66e12b92 873.TP
6bcf6016 874.BR leftsendcert " = never | no | " ifasked " | always | yes"
c2bc2b27
AS
875Accepted values are
876.B never
877or
878.BR no ,
879.B always
880or
881.BR yes ,
882and
a5477a6f 883.BR ifasked " (the default),"
f115838b
TB
884the latter meaning that the peer must send a certificate request payload in
885order to get a certificate in return.
fea5e716 886.TP
26bc6958
MW
887.BR leftsourceip " = %config4 | %config6 | <ip address>"
888Comma separated list of internal source IPs to use in a tunnel, also known as
889virtual IP. If the value is one of the synonyms
7900ab1b 890.BR %config ,
f115838b 891.BR %cfg ,
a5477a6f
TB
892.BR %modeconfig ,
893or
894.BR %modecfg ,
72970b45
TB
895an address (from the tunnel address family) is requested from the peer. With
896.B %config4
897and
898.B %config6
899an address of the given address family will be requested explicitly.
900If an IP address is configured, it will be requested from the responder,
901which is free to respond with a different address.
8e79d8d3 902.TP
c355e2b2 903.BR rightsourceip " = %config | <network>/<netmask> | <from>-<to> | %poolname"
26bc6958
MW
904Comma separated list of internal source IPs to use in a tunnel for the remote
905peer. If the value is
8e79d8d3 906.B %config
f115838b
TB
907on the responder side, the initiator must propose an address which is then
908echoed back. Also supported are address pools expressed as
b0103105 909\fInetwork\fB/\fInetmask\fR
c355e2b2
TB
910and
911\fIfrom\fB-\fIto\fR
f115838b
TB
912or the use of an external IP address pool using %\fIpoolname\fR,
913where \fIpoolname\fR is the name of the IP address pool used for the lookup.
fea5e716 914.TP
b7b5432f 915.BR leftsubnet " = <ip subnet>[[<proto/port>]][,...]"
c2bc2b27 916private subnet behind the left participant, expressed as
f115838b 917\fInetwork\fB/\fInetmask\fR;
c2bc2b27
AS
918if omitted, essentially assumed to be \fIleft\fB/32\fR,
919signifying that the left end of the connection goes to the left participant
66e12b92 920only. Configured subnets of the peers may differ, the protocol narrows it to
75e3d90d
MW
921the greatest common subnet. In IKEv1, this may lead to problems with other
922implementations, make sure to configure identical subnets in such
55f126fd
MW
923configurations. IKEv2 supports multiple subnets separated by commas. IKEv1 only
924interprets the first subnet of such a definition, unless the Cisco Unity
11ebba00
NK
925extension plugin is enabled. This is due to a limitation of the IKEv1 protocol,
926which only allows a single pair of subnets per CHILD_SA. So to tunnel several
927subnets a conn entry has to be defined and brought up for each pair of subnets.
24df0678 928
b7b5432f
TB
929The optional part after each subnet enclosed in square brackets specifies a
930protocol/port to restrict the selector for that subnet.
24df0678 931
b7b5432f
TB
932Examples:
933.BR leftsubnet=10.0.0.1[tcp/http],10.0.0.2[6/80] " or"
934.BR leftsubnet=fec1::1[udp],10.0.0.0/16[/53] .
24df0678
MW
935Instead of omitting either value
936.B %any
937can be used to the same effect, e.g.
b7b5432f 938.BR leftsubnet=fec1::1[udp/%any],10.0.0.0/16[%any/53] .
24df0678 939
69560611
TB
940If the protocol is
941.B icmp
942or
943.B ipv6-icmp
944the port is interpreted as ICMP message type if it is less than 256 or as type
945and code if it is greater or equal to 256, with the type in the most significant
9468 bits and the code in the least significant 8 bits.
947
24df0678
MW
948The port value can alternatively take the value
949.B %opaque
950for RFC 4301 OPAQUE selectors, or a numerical range in the form
951.BR 1024-65535 .
952None of the kernel backends currently supports opaque or port ranges and uses
953.B %any
954for policy installation instead.
955
956Instead of specifying a subnet,
957.B %dynamic
958can be used to replace it with the IKE address, having the same effect
959as omitting
960.B leftsubnet
961completely. Using
962.B %dynamic
963can be used to define multiple dynamic selectors, each having a potentially
0ceb2888 964different protocol/port definition.
24df0678 965
c2bc2b27 966.TP
6bcf6016 967.BR leftupdown " = <path>"
c2bc2b27
AS
968what ``updown'' script to run to adjust routing and/or firewalling
969when the status of the connection
970changes (default
971.BR "ipsec _updown" ).
972May include positional parameters separated by white space
973(although this requires enclosing the whole string in quotes);
974including shell metacharacters is unwise.
75e3d90d 975Relevant only locally, other end need not agree on it. Charon uses the updown
f115838b 976script to insert firewall rules only, since routing has been implemented
75e3d90d 977directly into the daemon.
c2bc2b27 978.TP
6bcf6016 979.BR lifebytes " = <number>"
75e3d90d 980the number of bytes transmitted over an IPsec SA before it expires.
deddfde9 981.TP
6bcf6016 982.BR lifepackets " = <number>"
75e3d90d 983the number of packets transmitted over an IPsec SA before it expires.
deddfde9 984.TP
6bcf6016 985.BR lifetime " = " 1h " | <time>"
deddfde9
TB
986how long a particular instance of a connection
987(a set of encryption/authentication keys for user packets) should last,
988from successful negotiation to expiry;
989acceptable values are an integer optionally followed by
990.BR s
991(a time in seconds)
992or a decimal number followed by
993.BR m ,
994.BR h ,
995or
996.B d
997(a time
998in minutes, hours, or days respectively)
999(default
1000.BR 1h ,
1001maximum
1002.BR 24h ).
1003Normally, the connection is renegotiated (via the keying channel)
1004before it expires (see
1005.BR margintime ).
1006The two ends need not exactly agree on
1007.BR lifetime ,
1008although if they do not,
1009there will be some clutter of superseded connections on the end
9f8ceffb 1010which thinks the lifetime is longer. Also see EXPIRY/REKEY below.
deddfde9 1011.TP
6bcf6016 1012.BR marginbytes " = <number>"
deddfde9
TB
1013how many bytes before IPsec SA expiry (see
1014.BR lifebytes )
75e3d90d 1015should attempts to negotiate a replacement begin.
deddfde9 1016.TP
6bcf6016 1017.BR marginpackets " = <number>"
deddfde9
TB
1018how many packets before IPsec SA expiry (see
1019.BR lifepackets )
75e3d90d 1020should attempts to negotiate a replacement begin.
deddfde9 1021.TP
6bcf6016 1022.BR margintime " = " 9m " | <time>"
deddfde9
TB
1023how long before connection expiry or keying-channel expiry
1024should attempts to
1025negotiate a replacement
1026begin; acceptable values as for
1027.B lifetime
1028(default
1029.BR 9m ).
9f8ceffb
TB
1030Relevant only locally, other end need not agree on it. Also see EXPIRY/REKEY
1031below.
d5f29da3 1032.TP
6bcf6016 1033.BR mark " = <value>[/<mask>]"
2269444b
TB
1034sets an XFRM mark on the inbound policy and outbound
1035IPsec SA and policy. If the mask is missing then a default
d5f29da3
AS
1036mask of
1037.B 0xffffffff
cc1682be
MW
1038is assumed. The special value
1039.B %unique
32e5c492
EB
1040assigns a unique value to each newly created IPsec SA. To additionally
1041make the mark unique for each IPsec SA direction (in/out) the special value
1042.B %unique-dir
1043may be used.
d5f29da3 1044.TP
6bcf6016 1045.BR mark_in " = <value>[/<mask>]"
2269444b
TB
1046sets an XFRM mark on the inbound policy (not on the SA). If the mask is missing
1047then a default mask of
d5f29da3
AS
1048.B 0xffffffff
1049is assumed.
1050.TP
6bcf6016 1051.BR mark_out " = <value>[/<mask>]"
2269444b 1052sets an XFRM mark on the outbound IPsec SA and
a674c79a 1053policy. If the mask is missing then a default mask of
d5f29da3
AS
1054.B 0xffffffff
1055is assumed.
deddfde9 1056.TP
6bcf6016 1057.BR mobike " = " yes " | no"
8c4339bd
AS
1058enables the IKEv2 MOBIKE protocol defined by RFC 4555. Accepted values are
1059.B yes
1060(the default) and
1061.BR no .
1062If set to
1063.BR no ,
75e3d90d 1064the charon daemon will not actively propose MOBIKE as initiator and
78279973 1065ignore the MOBIKE_SUPPORTED notify as responder.
8c4339bd 1066.TP
6bcf6016 1067.BR modeconfig " = push | " pull
7900ab1b
AS
1068defines which mode is used to assign a virtual IP.
1069Accepted values are
1070.B push
1071and
1072.B pull
1073(the default).
16149401 1074Push mode is currently not supported with IKEv2.
c055c701 1075The setting must be the same on both sides.
fea5e716 1076.TP
6bcf6016 1077.BR reauth " = " yes " | no"
c2bc2b27
AS
1078whether rekeying of an IKE_SA should also reauthenticate the peer. In IKEv1,
1079reauthentication is always done. In IKEv2, a value of
1080.B no
1081rekeys without uninstalling the IPsec SAs, a value of
1082.B yes
1083(the default) creates a new IKE_SA from scratch and tries to recreate
1084all IPsec SAs.
1085.TP
6bcf6016 1086.BR rekey " = " yes " | no"
fea5e716
MW
1087whether a connection should be renegotiated when it is about to expire;
1088acceptable values are
1089.B yes
1090(the default)
1091and
1092.BR no .
7900ab1b 1093The two ends need not agree, but while a value of
fea5e716 1094.B no
75e3d90d 1095prevents charon from requesting renegotiation,
fea5e716
MW
1096it does not prevent responding to renegotiation requested from the other end,
1097so
1098.B no
66e12b92
TB
1099will be largely ineffective unless both ends agree on it. Also see
1100.BR reauth .
fea5e716 1101.TP
6bcf6016 1102.BR rekeyfuzz " = " 100% " | <percentage>"
fea5e716 1103maximum percentage by which
deddfde9
TB
1104.BR marginbytes ,
1105.B marginpackets
1106and
1107.B margintime
fea5e716
MW
1108should be randomly increased to randomize rekeying intervals
1109(important for hosts with many connections);
1110acceptable values are an integer,
1111which may exceed 100,
1112followed by a `%'
deddfde9 1113(defaults to
fea5e716
MW
1114.BR 100% ).
1115The value of
deddfde9 1116.BR marginTYPE ,
fea5e716
MW
1117after this random increase,
1118must not exceed
deddfde9
TB
1119.B lifeTYPE
1120(where TYPE is one of
1121.IR bytes ,
1122.I packets
1123or
1124.IR time ).
fea5e716
MW
1125The value
1126.B 0%
deddfde9 1127will suppress randomization.
9f8ceffb
TB
1128Relevant only locally, other end need not agree on it. Also see EXPIRY/REKEY
1129below.
fea5e716
MW
1130.TP
1131.B rekeymargin
deddfde9
TB
1132synonym for
1133.BR margintime .
532f2347 1134.TP
8b123d2e
TB
1135.BR replay_window " = " \-1 " | <number>"
1136The IPsec replay window size for this connection. With the default of \-1
1137the value configured with
1138.I charon.replay_window
1139in
1140.BR strongswan.conf (5)
1141is used. Larger values than 32 are supported using the Netlink backend only,
1142a value of 0 disables IPsec replay protection.
1143.TP
6bcf6016 1144.BR reqid " = <number>"
b5be105a 1145sets the reqid for a given connection to a pre-configured fixed value.
a729d17a 1146.TP
4270c8fc
TB
1147.BR sha256_96 " = " no " | yes"
1148HMAC-SHA-256 is used with 128-bit truncation with IPsec. For compatibility
1149with implementations that incorrectly use 96-bit truncation this option may be
1150enabled to configure the shorter truncation length in the kernel. This is not
1151negotiated, so this only works with peers that use the incorrect truncation
1152length (or have this option enabled).
1153.TP
6c302616
MW
1154.BR tfc " = <value>"
1155number of bytes to pad ESP payload data to. Traffic Flow Confidentiality
1156is currently supported in IKEv2 and applies to outgoing packets only. The
1157special value
1158.BR %mtu
1159fills up ESP packets with padding to have the size of the MTU.
1160.TP
6bcf6016 1161.BR type " = " tunnel " | transport | transport_proxy | passthrough | drop"
c2bc2b27
AS
1162the type of the connection; currently the accepted values
1163are
1164.B tunnel
1165(the default)
1166signifying a host-to-host, host-to-subnet, or subnet-to-subnet tunnel;
1167.BR transport ,
1168signifying host-to-host transport mode;
84bec926
AS
1169.BR transport_proxy ,
1170signifying the special Mobile IPv6 transport proxy mode;
c2bc2b27
AS
1171.BR passthrough ,
1172signifying that no IPsec processing should be done at all;
1173.BR drop ,
75e3d90d 1174signifying that packets should be discarded.
fea5e716 1175.TP
6bcf6016 1176.BR xauth " = " client " | server"
b768d6a4 1177specifies the role in the XAuth protocol if activated by
c2bc2b27
AS
1178.B authby=xauthpsk
1179or
1180.B authby=xauthrsasig.
1181Accepted values are
1182.B server
1183and
1184.B client
1185(the default).
b768d6a4
TB
1186.TP
1187.BR xauth_identity " = <id>"
1188defines the identity/username the client uses to reply to an XAuth request.
1189If not defined, the IKEv1 identity will be used as XAuth identity.
d5cc1758 1190
e74bc8e5 1191.SS "CONN PARAMETERS: IKEv2 MEDIATION EXTENSION"
8015c91c 1192The following parameters are relevant to IKEv2 Mediation Extension
e74bc8e5 1193operation only.
6bcf6016
TB
1194.TP
1195.BR mediation " = yes | " no
e74bc8e5 1196whether this connection is a mediation connection, ie. whether this
d5cc1758
TB
1197connection is used to mediate other connections. Mediation connections
1198create no child SA. Acceptable values are
1199.B no
1200(the default) and
1201.BR yes .
1202.TP
6bcf6016 1203.BR mediated_by " = <name>"
d5cc1758
TB
1204the name of the connection to mediate this connection through. If given,
1205the connection will be mediated through the named mediation connection.
1206The mediation connection must set
e74bc8e5 1207.BR mediation=yes .
d5cc1758 1208.TP
6bcf6016 1209.BR me_peerid " = <id>"
d5cc1758
TB
1210ID as which the peer is known to the mediation server, ie. which the other
1211end of this connection uses as its
1212.B leftid
1213on its connection to the mediation server. This is the ID we request the
1214mediation server to mediate us with. If
e74bc8e5 1215.B me_peerid
d5cc1758
TB
1216is not given, the
1217.B rightid
1218of this connection will be used as peer ID.
1219
fea5e716 1220.SH "CA SECTIONS"
bf3c3715
TB
1221These are optional sections that can be used to assign special
1222parameters to a Certification Authority (CA). Because the daemons
1223automatically import CA certificates from \fI/etc/ipsec.d/cacerts\fP,
1224there is no need to explicitly add them with a CA section, unless you
1225want to assign special parameters (like a CRL) to a CA.
6bcf6016 1226.TP
a5477a6f
TB
1227.BR also " = <name>"
1228includes ca section
1229.BR <name> .
1230.TP
6bcf6016 1231.BR auto " = " ignore " | add"
fea5e716
MW
1232currently can have either the value
1233.B ignore
6bcf6016
TB
1234(the default) or
1235.BR add .
fea5e716 1236.TP
6bcf6016 1237.BR cacert " = <path>"
8015c91c 1238defines a path to the CA certificate either relative to
fea5e716 1239\fI/etc/ipsec.d/cacerts\fP or as an absolute path.
f6d8fb36
MW
1240.br
1241A value in the form
1242.B %smartcard[<slot nr>[@<module>]]:<keyid>
1243defines a specific CA certificate to load from a PKCS#11 backend for this CA.
1244See ipsec.secrets(5) for details about smartcard definitions.
fea5e716 1245.TP
6bcf6016 1246.BR crluri " = <uri>"
fea5e716
MW
1247defines a CRL distribution point (ldap, http, or file URI)
1248.TP
7900ab1b
AS
1249.B crluri1
1250synonym for
1251.B crluri.
1252.TP
6bcf6016 1253.BR crluri2 " = <uri>"
fea5e716
MW
1254defines an alternative CRL distribution point (ldap, http, or file URI)
1255.TP
fea5e716 1256.TP
6bcf6016 1257.BR ocspuri " = <uri>"
fea5e716 1258defines an OCSP URI.
7900ab1b
AS
1259.TP
1260.B ocspuri1
1261synonym for
1262.B ocspuri.
1263.TP
6bcf6016 1264.BR ocspuri2 " = <uri>"
75e3d90d 1265defines an alternative OCSP URI.
f115838b 1266.TP
6bcf6016 1267.BR certuribase " = <uri>"
6439267a 1268defines the base URI for the Hash and URL feature supported by IKEv2.
72970b45 1269Instead of exchanging complete certificates, IKEv2 allows one to send an URI
6439267a
TB
1270that resolves to the DER encoded certificate. The certificate URIs are built
1271by appending the SHA1 hash of the DER encoded certificates to this base URI.
fea5e716
MW
1272.SH "CONFIG SECTIONS"
1273At present, the only
1274.B config
1275section known to the IPsec software is the one named
1276.BR setup ,
f115838b 1277which contains information used when the software is being started.
fea5e716
MW
1278The currently-accepted
1279.I parameter
1280names in a
1281.B config
1282.B setup
75e3d90d 1283section are:
fea5e716 1284.TP
72970b45
TB
1285.BR cachecrls " = yes | " no
1286if enabled, certificate revocation lists (CRLs) fetched via HTTP or LDAP will
1287be cached in
1288.I /etc/ipsec.d/crls/
1289under a unique file name derived from the certification authority's public key.
1290.TP
1291.BR charondebug " = <debug list>"
1292how much charon debugging output should be logged.
1293A comma separated list containing type/level-pairs may
1294be specified, e.g:
1295.B dmn 3, ike 1, net -1.
1296Acceptable values for types are
1297.B dmn, mgr, ike, chd, job, cfg, knl, net, asn, enc, lib, esp, tls,
1298.B tnc, imc, imv, pts
1299and the level is one of
1300.B -1, 0, 1, 2, 3, 4
1301(for silent, audit, control, controlmore, raw, private). By default, the level
1302is set to
1303.B 1
1304for all types. For more flexibility see LOGGER CONFIGURATION in
1305.IR strongswan.conf (5).
1306.TP
6bcf6016
TB
1307.BR strictcrlpolicy " = yes | ifuri | " no
1308defines if a fresh CRL must be available in order for the peer authentication
1309based on RSA signatures to succeed.
e0e7ef07
AS
1310IKEv2 additionally recognizes
1311.B ifuri
1312which reverts to
1313.B yes
1314if at least one CRL URI is defined and to
1315.B no
1316if no URI is known.
b360e393 1317.TP
f4cc7ea1 1318.BR uniqueids " = " yes " | no | never | replace | keep"
b360e393 1319whether a particular participant ID should be kept unique,
f4cc7ea1 1320with any new IKE_SA using an ID deemed to replace all old ones using that ID;
b360e393 1321acceptable values are
72970b45
TB
1322.B yes
1323(the default),
f4cc7ea1 1324.B no
b360e393 1325and
f4cc7ea1
TB
1326.BR never .
1327Participant IDs normally \fIare\fR unique, so a new IKE_SA using the same ID is
1328almost invariably intended to replace an old one. The difference between
1329.B no
1330and
1331.B never
72970b45
TB
1332is that the daemon will replace old IKE_SAs when receiving an INITIAL_CONTACT
1333notify if the option is
f4cc7ea1
TB
1334.B no
1335but will ignore these notifies if
1336.B never
1337is configured.
75e3d90d 1338The daemon also accepts the value
b360e393 1339.B replace
f3bb1bd0 1340which is identical to
b360e393
MW
1341.B yes
1342and the value
1343.B keep
1344to reject new IKE_SA setups and keep the duplicate established earlier.
a5477a6f 1345
4a2e1799
TB
1346.SH IDENTITY PARSING
1347The type and binary encoding of identity strings specified in \fIleftid\fR
1348are detected as follows:
1349.IP \[bu]
1350If the string value contains an equal sign (=) it is assumed to be a
1351Distinguished Name, with RDNs separated by commas (,) \fIor\fR slashes (/ - the string
1352must start with a slash to use this syntax). An attempt is made to create a
1353binary ASN.1 encoding from this string. If that fails the type is set to KEY_ID
1354with the literal string value adopted as encoding.
1355.IP \[bu]
1356If the string value contains an @ the type depends on the position of that
1357character:
1358.RS
1359.IP \[bu]
1360If the string begins with @# the type is set to KEY_ID and the string following
1361that prefix is assumed to be the hex-encoded binary value of the identity.
1362.IP \[bu]
1363If the string begins with @@ the type is set to USER_FQDN and the encoding is
1364the literal string after that prefix.
1365.IP \[bu]
1366If the string begins with @ the type is set to FQDN and the encoding is the
1367literal string after that prefix.
1368.IP \[bu]
1369All remaining strings containing an @ are assumed to be of type USER_FQDN/RFC822
1370with the literal string value as encoding.
1371.RE
1372.IP \[bu]
1373If the value does not contain any @ or = characters it is parsed as follows:
1374.RS
1375.IP \[bu]
1376If the value is an empty string, or equals %any[6], 0.0.0.0, ::, or * the
1377type is set to ID_ANY, which matches any other identity.
1378.IP \[bu]
1379If the value contains a colon (:) it is assumed to be an IPv6 address. But if
1380parsing the address and converting it to its binary encoding fails the type is
1381set to KEY_ID and the encoding is the literal value.
1382.IP \[bu]
1383For all other strings an attempt at parsing them as IPv4 addresses is made. If
1384that fails the type is set to FQDN and the literal value is adopted as
1385encoding (this is where domain names and simple names end up).
1386.RE
1387
75e3d90d 1388.SH SA EXPIRY/REKEY
9f8ceffb
TB
1389The IKE SAs and IPsec SAs negotiated by the daemon can be configured to expire
1390after a specific amount of time. For IPsec SAs this can also happen after a
1391specified number of transmitted packets or transmitted bytes. The following
1392settings can be used to configure this:
1393.TS
1394l r l r,- - - -,lB s lB s,a r a r.
1395Setting Default Setting Default
1396IKE SA IPsec SA
1397ikelifetime 3h lifebytes -
1398 lifepackets -
1399 lifetime 1h
1400.TE
1401.SS Rekeying
1402IKE SAs as well as IPsec SAs can be rekeyed before they expire. This can be
1403configured using the following settings:
1404.TS
1405l r l r,- - - -,lB s lB s,a r a r.
1406Setting Default Setting Default
1407IKE and IPsec SA IPsec SA
1408margintime 9m marginbytes -
1409 marginpackets -
1410.TE
1411.SS Randomization
1412To avoid collisions the specified margins are increased randomly before
1413subtracting them from the expiration limits (see formula below). This is
1414controlled by the
1415.B rekeyfuzz
1416setting:
1417.TS
1418l r,- -,lB s,a r.
1419Setting Default
1420IKE and IPsec SA
1421rekeyfuzz 100%
1422.TE
1423.PP
1424Randomization can be disabled by setting
1425.BR rekeyfuzz " to " 0% .
1426.SS Formula
1427The following formula is used to calculate the rekey time of IPsec SAs:
1428.PP
1429.EX
1430 rekeytime = lifetime - (margintime + random(0, margintime * rekeyfuzz))
1431.EE
1432.PP
1433It applies equally to IKE SAs and byte and packet limits for IPsec SAs.
1434.SS Example
1435Let's consider the default configuration:
1436.PP
1437.EX
1438 lifetime = 1h
1439 margintime = 9m
1440 rekeyfuzz = 100%
1441.EE
1442.PP
1443From the formula above follows that the rekey time lies between:
1444.PP
1445.EX
1446 rekeytime_min = 1h - (9m + 9m) = 42m
1447 rekeytime_max = 1h - (9m + 0m) = 51m
1448.EE
1449.PP
1450Thus, the daemon will attempt to rekey the IPsec SA at a random time
1451between 42 and 51 minutes after establishing the SA. Or, in other words,
1452between 9 and 18 minutes before the SA expires.
1453.SS Notes
1454.IP \[bu]
1455Since the rekeying of an SA needs some time, the margin values must not be
1456too low.
1457.IP \[bu]
1458The value
1459.B margin... + margin... * rekeyfuzz
1460must not exceed the original limit. For example, specifying
1461.B margintime = 30m
1462in the default configuration is a bad idea as there is a chance that the rekey
1463time equals zero and, thus, rekeying gets disabled.
4a2e1799 1464
fea5e716
MW
1465.SH FILES
1466.nf
1467/etc/ipsec.conf
7900ab1b
AS
1468/etc/ipsec.d/aacerts
1469/etc/ipsec.d/acerts
fea5e716
MW
1470/etc/ipsec.d/cacerts
1471/etc/ipsec.d/certs
1472/etc/ipsec.d/crls
fea5e716
MW
1473
1474.SH SEE ALSO
75e3d90d 1475strongswan.conf(5), ipsec.secrets(5), ipsec(8)
fea5e716 1476.SH HISTORY
f115838b
TB
1477Originally written for the FreeS/WAN project by Henry Spencer.
1478Updated and extended for the strongSwan project <http://www.strongswan.org> by
1479Tobias Brunner, Andreas Steffen and Martin Willi.