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