1IPSEC.CONF(5)                 Executable programs                IPSEC.CONF(5)
2
3
4

NAME

6       ipsec.conf - IPsec configuration and connections
7

DESCRIPTION

9       The ipsec.conf file specifies most configuration and control
10       information for the Libreswan IPsec subsystem. (The major exception is
11       secrets for authentication; see ipsec.secrets(5).) Its contents are not
12       security-sensitive. Configurations can be added using this
13       configuration file or by using ipsec whack directly. This means that
14       technically, the ipsec.conf file is optional, but a few warnings might
15       show up when this file is missing.
16
17       ipsec.conf is a text file, consisting of one or more sections. White
18       space followed by # followed by anything to the end of the line is a
19       comment and is ignored, as are empty lines that are not within a
20       section.
21
22       A line that contains include and a file name, separated by white space,
23       is replaced by the contents of that file, preceded and followed by
24       empty lines. If the file name is not a full pathname, it is considered
25       to be relative to the directory that contains the including file. Such
26       inclusions can be nested. Only a single filename may be supplied, and
27       it may not contain white space, but it may include shell wildcards (see
28       sh(1)); for example:
29
30       include /etc/ipsec.d/*.conf
31
32       The intention of the include facility is mostly to permit keeping
33       information on connections, or sets of connections, separate from the
34       main configuration file. This permits such connection descriptions to
35       be changed, copied to the other security gateways involved, etc.,
36       without having to constantly extract them from the configuration file
37       and then insert them back into it. Note also the also and alsoflip
38       parameters (described below) which permit splitting a single logical
39       section (e.g. a connection description) into several distinct sections.
40
41       The first significant line of the file may specify a version of this
42       specification for backwards compatibility with freeswan and openswan.
43       It is ignored and unused. For compatibility with openswan, specify:
44
45       version 2
46
47       A section begins with a line of the form:
48
49       type name
50
51       where type indicates what type of section follows, and name is an
52       arbitrary name that distinguishes the section from others of the same
53       type. (Names must start with a letter and may contain only letters,
54       digits, periods, underscores, and hyphens.) All subsequent non-empty
55       lines that begin with white space are part of the section; comments
56       within a section must begin with white space too. There may be only one
57       section of a given type with a given name.
58
59       Lines within the section are generally of the form
60
61            parameter=value
62
63       (note the mandatory preceding white space). There can be white space on
64       either side of the =. Parameter names follow the same syntax as section
65       names, and are specific to a section type. Unless otherwise explicitly
66       specified, no parameter name may appear more than once in a section.
67
68       An empty value stands for the system default value (if any) of the
69       parameter, i.e. it is roughly equivalent to omitting the parameter line
70       entirely. A value may contain white space only if the entire value is
71       enclosed in double quotes ("); a value cannot itself contain a double
72       quote, nor may it be continued across more than one line.
73
74       Numeric values are specified to be either an “integer” (a sequence of
75       digits) or a “decimal number” (sequence of digits optionally followed
76       by `.' and another sequence of digits).
77
78       There is currently one parameter that is available in any type of
79       section:
80
81       also
82           the value is a section name; the parameters of that section are
83           appended to this section, as if they had been written as part of
84           it. The specified section must exist, must follow the current one,
85           and must have the same section type. (Nesting is permitted, and
86           there may be more than one also in a single section, although it is
87           forbidden to append the same section more than once.) This allows,
88           for example, keeping the encryption keys for a connection in a
89           separate file from the rest of the description, by using both an
90           also parameter and an include line. (Caution, see BUGS below for
91           some restrictions.)
92
93       alsoflip
94           can be used in a conn section. It acts like an also that flips the
95           referenced section's entries left-for-right.
96
97       Parameter names beginning with x- (or X-, or x_, or X_) are reserved
98       for user extensions and will never be assigned meanings by IPsec.
99       Parameters with such names must still observe the syntax rules (limits
100       on characters used in the name; no white space in a non-quoted value;
101       no newlines or double quotes within the value). All other as-yet-unused
102       parameter names are reserved for future IPsec improvements.
103
104       A section with name %default specifies defaults for sections of the
105       same type. For each parameter in it, any section of that type that does
106       not have a parameter of the same name gets a copy of the one from the
107       %default section. There may be multiple %default sections of a given
108       type, but only one default may be supplied for any specific parameter
109       name.  %default sections may not contain also or alsoflip parameters.
110
111       Currently there are two types of section: a config section specifies
112       general configuration information for IPsec, while a conn section
113       specifies an IPsec connection.
114

CONN SECTIONS

116       A conn section contains a connection specification, defining a network
117       connection to be made using IPsec. The name given is arbitrary, and is
118       used to identify the connection to ipsec_auto(8) Here's a simple
119       example:
120
121
122           conn snt
123                left=10.11.11.1
124                leftsubnet=10.0.1.0/24
125                leftnexthop=172.16.55.66
126                leftsourceip=10.0.1.1
127                right=192.168.22.1
128                rightsubnet=10.0.2.0/24
129                rightnexthop=172.16.88.99
130                rightsourceip=10.0.2.1
131                keyingtries=%forever
132
133       A note on terminology... In automatic keying, there are two kinds of
134       communications going on: transmission of user IP packets, and
135       gateway-to-gateway negotiations for keying, rekeying, and general
136       control. The data path (a set of “IPsec SAs”) used for user packets is
137       herein referred to as the “connection”; the path used for negotiations
138       (built with “ISAKMP SAs”) is referred to as the “keying channel”.
139
140       To avoid trivial editing of the configuration file to suit it to each
141       system involved in a connection, connection specifications are written
142       in terms of left and right participants, rather than in terms of local
143       and remote. Which participant is considered left or right is arbitrary;
144       IPsec figures out which one it is being run on based on internal
145       information. This permits using identical connection specifications on
146       both ends. There are cases where there is no symmetry; a good
147       convention is to use left for the local side and right for the remote
148       side (the first letters are a good mnemonic).
149
150       Many of the parameters relate to one participant or the other; only the
151       ones for left are listed here, but every parameter whose name begins
152       with left has a right counterpart, whose description is the same but
153       with left and right reversed.
154
155       Parameters are optional unless marked “(required)”
156
157   CONN PARAMETERS: GENERAL
158       The following parameters are relevant to IKE automatic keying. Unless
159       otherwise noted, for a connection to work, in general it is necessary
160       for the two ends to agree exactly on the values of these parameters.
161
162       keyexchange
163           method of key exchange; the default and currently the only accepted
164           value is ike
165
166       hostaddrfamily
167           the address family of the hosts; currently the accepted values are
168           ipv4 and ipv6. The default is to detect this based on the IP
169           addresses specified or the IP addresses resolved, so this option is
170           not needed, unless you specify hostnames that resolve to both IPv4
171           and IPv6. This option used to be named connaddrfamily but its use
172           was broken so it was obsoleted in favour or using the new
173           hostaddrfamily and clientaddrfamily.
174
175       clientaddrfamily
176           the address family of the clients (subnets); currently the accepted
177           values are ipv4 and ipv6. The default is to detect this based on
178           the network IP addresses specified or the network IP addresses
179           resolved, so this option is not needed, unless you specify names
180           that resolve to both IPv4 and IPv6.
181
182       type
183           the type of the connection; currently the accepted values are
184           tunnel (the default) signifying a host-to-host, host-to-subnet, or
185           subnet-to-subnet tunnel; transport, signifying host-to-host
186           transport mode; passthrough, signifying that no IPsec processing
187           should be done at all; drop, signifying that packets should be
188           discarded; and reject, signifying that packets should be discarded
189           and a diagnostic ICMP returned.
190
191       left
192           (required) the IP address or DNS hostname of the left participant's
193           public-network interface, Currently, IPv4 and IPv6 IP addresses are
194           supported. If a DNS hostname is used, it will be resolved to an IP
195           address on load time, and whenever a connection is rekeying or
196           restarting (such as when restarted via a DPD failure detection).
197           This allows one to use a DNS hostname when the endpoint is on a
198           dynamic IP address.
199
200           There are several magic values. If it is %defaultroute, left will
201           be filled in automatically with the local address of the
202           default-route interface (as determined at IPsec startup time); this
203           also overrides any value supplied for leftnexthop. (Either left or
204           right may be %defaultroute, but not both.) The value %any signifies
205           an address to be filled in (by automatic keying) during
206           negotiation. The value %opportunistic signifies that both left and
207           leftnexthop are to be filled in (by automatic keying) from DNS data
208           for left's client. The value can also contain the interface name,
209           which will then later be used to obtain the IP address from to fill
210           in. For example %ppp0. The values %group and %opportunisticgroup
211           makes this a policy group conn: one that will be instantiated into
212           a regular or opportunistic conn for each CIDR block listed in the
213           policy group file with the same name as the conn.
214
215           If using IP addresses in combination with NAT, always use the
216           actual local machine's (NATed) IP address, and if the remote (eg
217           right=) is NATed as well, the remote's public (not NATed) IP
218           address. Note that this makes the configuration no longer
219           symmetrical on both sides, so you cannot use an identical
220           configuration file on both hosts.
221
222       leftsubnet
223           private subnet behind the left participant, expressed as
224           network/netmask (actually, any form acceptable to
225           ipsec_ttosubnet(3)); Currently, IPv4 and IPv6 ranges are supported.
226           if omitted, essentially assumed to be left/32, signifying that the
227           left end of the connection goes to the left participant only
228
229           It supports two magic shorthands vhost: and vnet:, which can list
230           subnets in the same syntax as virtual-private. The value %priv
231           expands to the networks specified in virtual-private. The value %no
232           means no subnet. A common use for allowing roadwarriors to come in
233           on public IPs or via accepted NATed networks from RFC1918 is to use
234           leftsubnet=vhost:%no,%priv. The vnet: option can be used to allow
235           RFC1918 subnets without hardcoding them. When using vnet the
236           connection will instantiate, allowing for multiple tunnels with
237           different subnets.
238
239       leftsubnets
240           specify multiple private subnets behind the left participant,
241           expressed as { networkA/netmaskA, networkB/netmaskB [...]  } If
242           both a leftsubnets= and rightsubnets= are defined, all combinations
243           of subnet tunnels will be established as IPsec tunnels. You cannot
244           use leftsubnet= and leftsubnets= together. For examples see
245           testing/pluto/multinet-*. Be aware that when using spaces as
246           separator, that the entire option value needs to be in double
247           quotes.
248
249       leftvti
250           the address/mask to configure on the VTI interface when
251           vti-interface is set. It takes the form of network/netmask
252           (actually, any form acceptable to ipsec_ttosubnet(3)); Currently,
253           IPv4 and IPv6 ranges are supported. This option is often used in
254           combination with routed based VPNs.
255
256       leftaddresspool
257           address pool from where the IKEv1 ModeCFG or IKEv2 server can
258           assign IP addresses to clients. When configured as a server, using
259           leftxauthserver=yes this option specifies the address pool from
260           which IP addresses are taken to assign the clients. The syntax of
261           the address pool specifies a range (not a CIDR) for IPv4 and CIDR
262           for IPv6, in the following syntax:
263           rightaddresspool=192.168.1.100-192.168.1.200 or
264           rightaddresspool=2001:db8:0:3:1::/97 Generally, the
265           rightaddresspool= option will be accompanied by
266           rightxauthclient=yes, leftxauthserver=yes and leftsubnet=0.0.0.0/0
267           option.
268
269           When leftaddresspool= is specified, the connection may not specify
270           either leftsubnet= or leftsubnets=. Address pools are fully
271           allocated when the connection is loaded, so the ranges should be
272           sane. For example, specifying a range
273           rightaddresspool=10.0.0.0-11.0.0.0 will lead to massive memory
274           allocation. Address pools specifying the exact same range are
275           shared between different connections. Different addresspools should
276           not be defined to partially overlap.
277
278       leftprotoport
279           allowed protocols and ports over connection, also called Port
280           Selectors. The argument is in the form protocol, which can be a
281           number or a name that will be looked up in /etc/protocols, such as
282           leftprotoport=icmp, or in the form of protocol/port, such as
283           tcp/smtp. Ports can be defined as a number (eg. 25) or as a name
284           (eg smtp) which will be looked up in /etc/services. A special
285           keyword %any can be used to allow all ports of a certain protocol.
286           The most common use of this option is for L2TP connections to only
287           allow l2tp packets (UDP port 1701), eg: leftprotoport=17/1701.
288
289           To filter on specific icmp type and code, use the higher 8 bits for
290           type and the lower 8 bits for port. For example, to allow icmp echo
291           packets (type 8, code 0) the 'port' would be 0x0800, or 2048 in
292           decimal, so you configure leftprotoport=icmp/2048. Similarly, to
293           allow ipv6-icmp Neighbour Discovery which has type 136 (0x88) and
294           code 0(0x00) this becomes 0x8800 or in decimal 34816 resulting in
295           leftprotoport=ipv6-icmp/34816 .
296
297           Some clients, notably older Windows XP and some Mac OSX clients,
298           use a random high port as source port. In those cases
299           rightprotoport=17/%any can be used to allow all UDP traffic on the
300           connection. Note that this option is part of the proposal, so it
301           cannot be arbitrarily left out if one end does not care about the
302           traffic selection over this connection - both peers have to agree.
303           The Port Selectors show up in the output of ipsec eroute and ipsec
304           auto --status eg:"l2tp":
305           193.110.157.131[@aivd.libreswan.org]:7/1701...%any:17/1701 This
306           option only filters outbound traffic. Inbound traffic selection
307           must still be based on firewall rules activated by an updown
308           script. The variables $PLUTO_MY_PROTOCOL, $PLUTO_PEER_PROTOCOL,
309           $PLUTO_MY_PORT, and $PLUTO_PEER_PORT are available for use in
310           updown scripts. Older workarounds for bugs involved a setting of
311           17/0 to denote any single UDP port (not UDP port 0). Some clients,
312           most notably OSX, uses a random high port, instead of port 1701 for
313           L2TP.
314
315       leftnexthop
316           next-hop gateway IP address for the left participant's connection
317           to the public network; defaults to %direct (meaning right). If the
318           value is to be overridden by the left=%defaultroute method (see
319           above), an explicit value must not be given. If that method is not
320           being used, but leftnexthop is %defaultroute, and
321           interfaces=%defaultroute is used in the config setup section, the
322           next-hop gateway address of the default-route interface will be
323           used. The magic value %direct signifies a value to be filled in (by
324           automatic keying) with the peer's address. Relevant only locally,
325           other end need not agree on it.
326
327       leftsourceip
328           the IP address for this host to use when transmitting a packet to
329           the other side of this link. Relevant only locally, the other end
330           need not agree. This option is used to make the gateway itself use
331           its internal IP, which is part of the leftsubnet, to communicate to
332           the rightsubnet or right. Otherwise, it will use its nearest IP
333           address, which is its public IP address. This option is mostly used
334           when defining subnet-subnet connections, so that the gateways can
335           talk to each other and the subnet at the other end, without the
336           need to build additional host-subnet, subnet-host and host-host
337           tunnels. Both IPv4 and IPv6 addresses are supported.
338
339       leftupdown
340           what "updown" script to run to adjust routing and/or firewalling
341           when the status of the connection changes (default ipsec _updown).
342           May include positional parameters separated by white space
343           (although this requires enclosing the whole string in quotes);
344           including shell metacharacters is unwise. An example to enable
345           routing when using the NETKEY stack, one can use:
346
347           leftupdown="ipsec _updown --route yes"
348
349           To disable calling an updown script, set it to the empty string, eg
350           leftupdown="" or leftupdown="%disabled".
351
352           See ipsec_pluto(8) for details. Relevant only locally, other end
353           need not agree on it.
354
355       leftcat
356           Whether to perform Client Address Translation ("CAT") when using
357           Opportunistic IPsec behind NAT. Accepted values are no (the
358           default) and yes. This option should only be enabled on the special
359           Opportunistic IPsec connections, usually called "private" and
360           "private-or-clear". When set, this option causes the given
361           addresspool IP from the remote peer to be NATed with iptables. It
362           will also install an additional IPsec SA policy to cover the
363           pre-NAT IP. See the Opportunistic IPsec information on the
364           libreswan website for more information and examples.
365
366       leftfirewall
367           This option is obsolete and should not used anymore.
368
369       If one or both security gateways are doing forwarding firewalling
370       (possibly including masquerading), and this is specified using the
371       firewall parameters, tunnels established with IPsec are exempted from
372       it so that packets can flow unchanged through the tunnels. (This means
373       that all subnets connected in this manner must have distinct,
374       non-overlapping subnet address blocks.) This is done by the default
375       updown script (see ipsec_pluto(8)).
376
377       The implementation of this makes certain assumptions about firewall
378       setup, and the availability of the Linux Advanced Routing tools. In
379       situations calling for more control, it may be preferable for the user
380       to supply his own updown script, which makes the appropriate
381       adjustments for his system.
382
383   CONN PARAMETERS: AUTOMATIC KEYING
384       The following parameters are relevant to automatic keying via IKE.
385       Unless otherwise noted, for a connection to work, in general it is
386       necessary for the two ends to agree exactly on the values of these
387       parameters.
388
389       auto
390           what operation, if any, should be done automatically at IPsec
391           startup; currently-accepted values are add (signifying an ipsec
392           auto --add), ondemand (signifying that plus an ipsec auto
393           --ondemand), start (signifying that plus an ipsec auto --up), and
394           ignore (also the default) (signifying no automatic startup
395           operation), and keep (signifying an add plus an attempt to keep the
396           connection up once the remote peer brought it up). See the config
397           setup discussion below. Relevant only locally, other end need not
398           agree on it (but in general, for an intended-to-be-permanent
399           connection, both ends should use auto=start to ensure that any
400           reboot causes immediate renegotiation).
401
402           The option ondemand used to be called route
403
404       authby
405           how the two security gateways should authenticate each other;
406           acceptable values are rsasig (the default) for RSA authentication
407           with SHA-1, rsa-sha2 for RSASSA-PSS digital signatures based
408           authentication with SHA2-256, rsa-sha2_384 for RSASSA-PSS digital
409           signatures based authentication with SHA2-384, rsa-sha2_512 for
410           RSASSA-PSS digital signatures based authentication with SHA2-512,
411           secret for shared secrets (PSK) authentication, secret|rsasig for
412           either, never if negotiation is never to be attempted or accepted
413           (useful for shunt-only conns), and null for null-authentication.
414
415           If asymmetric authentication is requested, IKEv2 must be enabled,
416           and the options leftauth= and rightauth= should be used instead of
417           authby.
418
419           Digital signatures are superior in every way to shared secrets.
420           Especially IKEv1 in Aggressive Mode is vulnerable to offline
421           dictionary attacks and is performed routinely by at least the NSA
422           on monitored internet traffic globally. The never option is only
423           used for connections that do not actually start an IKE negotiation,
424           such as type=passthrough connections. The auth method null is used
425           for "anonymous opportunistic IPsec" and should not be used for
426           regular pre-configured IPsec VPNs.
427
428       ike
429           IKE encryption/authentication algorithm to be used for the
430           connection (phase 1 aka ISAKMP SA). The format is
431           "cipher-hash;modpgroup, cipher-hash;modpgroup, ..."  Any left out
432           option will be filled in with all allowed default options. Multiple
433           proposals are separated by a comma. If an ike= line is specified,
434           no other received proposals will be accepted. Formerly there was a
435           distinction (by using a "!"  symbol) between "strict mode" or not.
436           That mode has been obsoleted. If an ike= option is specified, the
437           mode is always strict, meaning no other received proposals will be
438           accepted. Some examples are ike=3des-sha1,aes-sha1, ike=aes,
439           ike=aes_ctr, ike=aes_gcm256-sha2, ike=aes128-md5;modp2048,
440           ike=aes256-sha2;dh19, ike=aes128-sha1;dh22,
441           ike=3des-md5;modp1024,aes-sha1;modp1536. The options must be
442           suitable as a value of ipsec_spi(8)'s --ike option. The default IKE
443           proposal depends on the version of libreswan used. It follow the
444           recommendations of RFC4306, RFC7321 and as of this writing their
445           successor draft documents RFC4306bis and RFC7321bis. For IKEv1,
446           SHA1 and MODP1536 are still allowed per default for backwards
447           compatibility, but 3DES and MODP1024 are not allowed per default.
448           IKEv2's minimum is AES, MODP2048 and SHA2. The default key size is
449           256 bits. The default AES_GCM ICV is 16 bytes.
450
451           Note that AES-GCM is an AEAD algorithm, meaning that it performs
452           encryption+authentication in one step. This means that AES-GCM must
453           not specify an authentication algorithm. However, it does require a
454           PRF function, so the second argument to an AEAD algorithm denotes
455           the PRF. So ike=aes_gcm-sha2 means propose AES_GCM with no
456           authentication and using SHA2 as the prf. Note that for phase2alg,
457           there is no prf, so AES-GCM is specified for ESP as
458           phase2alg=aes_gcm-null. The AES-GCM and AES-CCM algorithms support
459           8,12 and 16 byte ICV's. These can be specified using a postfix, for
460           example aes_gcm_a (for 8), aes_gcm_b (for 12) and aes_gcm_c (for
461           16). The default (aes_gcm without postfix) refers to the 16 byte
462           ICV version. It is strongly recommended to NOT use the 8 or 12 byte
463           versions of GCM or CCM.
464
465           Weak algorithms are regularly removed from libreswan. Currently,
466           1DES and modp768 have been removed and modp1024 will be removed in
467           the near future. Additionally, md5 and sha1 will be removed within
468           the next few years. Null encryption is available, and should only
469           be used for testing or benchmarking purposes. Please do not request
470           for insecure algorithms to be re-added to libreswan.
471
472           Diffie-Hellman groups 19,20 and 21 from RFC- 5903 and 22, 23 and 24
473           from RFC-5114 are also supported. For all groups, the "dh" keyword
474           can be used. For the MODP based groups, the modp= keyword can be
475           used. for example ike=3des-sha1;dh19. The RFC-5114 DH groups are
476           extremely controversial and MUST NOT be used unless forced
477           (administratively) by the other party. Support for these groups
478           will most likely be removed in 2017, as it cannot be proven these
479           DH groups do not have a cryptographic trapdoor embedded in them (a
480           backdoor by the USG who provided these primes without revealing the
481           seeds and generation process used). Due the the weakness of DH22,
482           support for this group is not compiled in by default and can be
483           re-enabled using USE_DH22=true.
484
485           The modp syntax will be removed in favour of the dh syntax in the
486           future
487
488       phase2
489           Sets the type of SA that will be produced. Valid options are: esp
490           for encryption (the default), ah for authentication only.
491
492           The very first IPsec designs called for use of AH plus ESP to offer
493           authentication, integrity and confidentiality. That dual protocol
494           use was a significant burden, so ESP was extended to offer all
495           three services, and AH remained as an auth/integ. The old mode of
496           ah+esp is no longer supported in compliance with RFC 8221 Section
497           4. Additionally, AH does not play well with NATs, so it is strongly
498           recommended to use ESP with the null cipher if you require
499           unencrypted authenticated transport.
500
501       phase2alg
502           This option is alias to esp.
503
504       sha2-truncbug
505           The default ESP hash truncation for sha2_256 is 128 bits. Some
506           IPsec implementations (Linux before 2.6.33, some Cisco (2811?)
507           routers) implement the draft version which stated 96 bits. If a
508           draft implementation communicates with an RFC implementation, both
509           ends will reject encrypted packets from each other.
510
511           This option enables using the draft 96 bits version to interop with
512           those implementations. Currently the accepted values are no, (the
513           default) signifying default RFC truncation of 128 bits, or yes,
514           signifying the draft 96 bits truncation.
515
516           Another workaround is to switch from sha2_256 to sha2_128 or
517           sha2_512.
518
519       ms-dh-downgrade
520           Whether to allow a downgrade of DiffieHellman group during rekey
521           (using CREATE_CHILD_SA). Microsoft Windows (at the time of writing,
522           Feb 2018) defaults to using the very weak modp1024 (DH2). This can
523           be changed using a Windows registry setting to use modp2048 (DH14).
524           However, at rekey times, it will shamelessly use modp1024 again and
525           the connection might fail. Setting this option to yes (and adding
526           modp1024 proposals to the ike line) this will allow this downgrade
527           attack to happen. This should only be used to support Windows that
528           feature this bug. Currently the accepted values are no, (the
529           default) or yes.
530
531       dns-match-id
532           Whether to perform an additional DNS lookup and confirm the remote
533           ID payload with the DNS name in the reverse DNS PTR record.
534           Accepted values are no (the default) or yes. This check should be
535           enabled when Opportunistic IPsec is enabled in a mode that is based
536           on packet triggers (on-demand) using IPSECKEY records in DNS. Since
537           in that case the IKE daemon pluto does not know the remote ID, it
538           only knows the remote IP address, this option forces it to confirm
539           the peer's proposed ID (and thus its public/private key) with its
540           actual IP address as listed in the DNS. This prevents attacks where
541           mail.example.com's IP address is taken over by a neighbour machine
542           with a valid web.example.com setup. This check is not needed for
543           certificate based Opportunistic IPsec, as "mail.example.com"s
544           certificate does not have an entry for "web.example.com". It is
545           also not needed for DNS server triggered Opportunistic IPsec, as in
546           that case the IKE daemon pluto is informed of both the IP address,
547           and the hostname/public key.
548
549       require-id-on-certificate
550           When using certificates, check whether the IKE peer ID is present
551           as a subjectAltName (SAN) on the peer certificate. Accepted values
552           are yes (the default) or no. This check should only be disabled
553           when intentionally using certificates that do not have their peer
554           ID specified as a SAN on the certificate. These certificates
555           violate RFC 4945 Section 3.1 and are normally rejected to prevent a
556           compromised host from assuming the IKE identity of another host.
557           The SAN limits the IDs that the peer is able to assume.
558
559       ppk
560           EXPERIMENTAL: Post-quantum preshared keys (PPKs) to be used.
561           Currently the accepted values are propose or yes (the default),
562           signifying we propose to use PPK for this connection; insist,
563           signifying we allow communication only if PPK is used for key
564           derivation; never or no, signifying that PPK should not be used for
565           key derivation. PPKs can be used in connections that allow only
566           IKEv2. In libreswan that would mean that ikev2 option must have
567           value insist. (currently based on draft-fluhrer-qr-ikev2, not
568           raft-ietf-ipsecme-qr-ikev2-00)
569
570       nat-ikev1-method
571           NAT Traversal in IKEv1 is negotiated via Vendor ID options as
572           specified in RFC 3947. However, many implementations only support
573           the draft version of the RFC. Libreswan sends both the RFC and the
574           most common draft versions (02, 02_n and 03) to maximize
575           interoperability. Unfortunately, there are known broken
576           implementations of RFC 3947, notably Cisco routers that have not
577           been updated to the latest firmware. As the NAT-T payload is sent
578           in the very first packet of the initiator, there is no method to
579           auto-detect this problem and initiate a workaround.
580
581           This option allows fine tuning which of the NAT-T payloads to
582           consider for sending and processing. Currently the accepted values
583           are drafts, rfc, both (the default) and none. To interoperate with
584           known broken devices, use nat-ikev1-method=drafts. To prevent the
585           other end from triggering IKEv1 NAT-T encapsulation, set this to
586           none. This will omit the NAT-T payloads used to determine NAT,
587           forcing the other end not to use encapsulation.
588
589       esp
590           Specifies the algorithms that will be offered/accepted for a Child
591           SA negotiation. If not specified, a secure set of defaults will be
592           used. Sets are separated using comma's and pluses.
593
594           The format for ESP is ENC-AUTH followed by one optional PFSgroup.
595           For instance, "aes_gcm256" or "aes256-sha2_512-dh14" or
596           "aes-sha2_512+sha2_256". When specifying multiple algorithms,
597           specify the PFSgroup last, e.g.
598           "aes128+aes256-sha2_512+sha2_256-dh14+dh19".
599
600           The format for AH is AUTH followed by an optional PFSgroup. For
601           instance, "sha2_512" or "sha2_256-dh14".
602
603           AEAD algorithms such as AES-GCM and AES-CCM don't require separate
604           hashing algorithm, for example esp=aes_gcm256 or esp=aes_ccm. Note
605           that the ike= syntax for aes_gcm does require the prf hashing
606           algorithm which is not needed for esp=. The supported key sizes for
607           aes_gcm are 128, 192 and 256, which are specified similarly to
608           plain aes, i.e.  esp=aes_gcm256. A subscript of _c, _b or _a can be
609           used to refer to the different ICV variants where a means 8 bytes,
610           b means 12 bytes and c means 16 bytes. The default when not using a
611           subscript is the 16 byte ICV, the recommended value by RFC-4106 and
612           RFC-8247. Therefore esp=aes_gcm256 is equivalent to
613           esp=aes_gcm_c256. It is recommended to migrate to the _c versions
614           (without specifying _c), as support for smaller ICV's might be
615           removed in the near future.
616
617           The supported algorithms depend on the libreswan version, OS and
618           kernel stack used. Possible ciphers are aes, 3des, aes_ctr,
619           aes_gcm, aes_ccm, camellia and chacha20_poly1305.
620
621           Note that openswan and versions of libreswan up to 3.6 require
622           manually adding the salt size to the key size. Therefore, to
623           configure an older version of openswan or libreswan, use:
624           "esp=aes_ccm_c-280-null" to interop with a new libreswan using
625           "esp=aes_ccm256". For CCM, the 'keysize' needs to be increased by
626           24, resulted in valid keysizes of 152, 215 and 280. For GCM the
627           'keysize' needs to be increased by 32, resulting valid 'keysizes'
628           of 160, 224 and 288.
629
630       ah
631           AH authentication algorithm to be used for the connection, e.g
632           here.  sha2_512 The options must be suitable as a value of
633           ipsec_spi(8)'s --ah option. The default is not to use AH. If for
634           some (invalid) reason you still think you need AH, please use esp
635           with the null encryption cipher instead. Note also that not all
636           ciphers available to the kernel (eg through CryptoAPI) are
637           necessarily supported here.
638
639       fragmentation
640           Whether or not to allow IKE fragmentation. Valid values are yes,
641           (the default), no or force.
642
643           IKEv1 fragmentation capabilities are negotiated via a well-known
644           private vendor id. IKEv2 fragmentation support is implemented using
645           RFC 7383. If pluto does not receive the fragmentation payload, no
646           IKE fragments will be sent, regardless of the fragmentation=
647           setting. When set to yes, IKE fragmentation will be attempted on
648           the first re-transmit of an IKE packet of a size larger then 576
649           bytes for IPv4 and 1280 bytes for IPv6. If fragmentation is set to
650           force, IKE fragmentation is used on initial transmits of such sized
651           packets as well. When we have received IKE fragments for a
652           connection, pluto behaves as if in force mode.
653
654       ikepad
655           Whether or not to pad IKEv1 messages to a multiple of 4 bytes.
656           Valid values are yes, (the default) and no.
657
658           IKE padding is allowed in IKEv1 but has been known to cause
659           interoperability issues. The ikepad= option can be used to disable
660           IKEv1 padding. This used to be required for some devices (such as
661           Checkpoint in Aggressive Mode) that reject padded IKEv1 packets. A
662           bug was fixed in libreswan 3.25 that applied wrong IKE padding in
663           XAUTH, so it is suspected that Checkpoint padding issue bas been
664           resolved. And this option should not be needed by anyone. In IKEv2,
665           no padding is allowed, and this option has no effect. If you find a
666           device that seems to require IKE padding, please contact the
667           libreswan developers. This option should almost never be enabled
668           and might be removed in a future version.
669
670       ikev2
671           Whether to use IKEv1 (RFC 4301) or IKEv2 (RFC 7296) settings to be
672           used. Currently the accepted values are no(the default), signifying
673           only IKEv1 is accepted, or yes, signifying only IKEv2 is accepted.
674           Previous versions allowed the keywords propose or permit that would
675           allow either IKEv1 or IKEv2, but this is no longer supported. The
676           permit option is interpreted as no and the propose option is
677           interpreted as yes. Older versions also supported keyword insist
678           which is now interpreted as yes.
679
680       mobike
681           Whether to allow MOBIKE (RFC 4555) to enable a connection to
682           migrate its endpoint without needing to restart the connection from
683           scratch. This is used on mobile devices that switch between wired,
684           wireless or mobile data connections. Current values are no (the
685           default) or yes, Only connection acting as modecfgclient will allow
686           the initiator to migrate using mobike. Only connections acting as
687           modecfgserver will allow clients to migrate.
688
689           VTI and MOBIKE might not work well when used together.
690
691       esn
692           Whether or not to enable Extended Sequence Number (ESN) for the
693           IPsec SA. ESN is typically used for very high-speed links (10Gbps
694           or faster) where the standard 32 bit sequence number is exhausted
695           too quickly, causing IPsec SA's rekeys to happen too often.
696           Accepted values are no (the default), yes and either. If either is
697           specified as an initiator, the responder will make the choice. As a
698           responder, if either is received, no is picked.
699
700       decap-dscp
701           Enable decapsulating the Differentiated Services Code Point (DSCP,
702           formerly known as Terms Of Service (TOS)) bits. If these bits are
703           set on the inner (encrypted) IP packets, these bits are set on the
704           decrypted IP packets. Acceptable values are no (the default) or
705           yes. Currently this feature is only implemented for the Linux
706           XFRM/NETKEY stack.
707
708       nopmtudisc
709           Disable Path MTU discovery for the IPsec SA. Acceptable values are
710           no (the default) or yes. Currently this feature is only implemented
711           for the Linux XFRM/NETKEY stack.
712
713       narrowing
714           IKEv2 (RFC5996) Section 2.9 Traffic Selector narrowing options.
715           Currently the accepted values are no, (the default) signifying no
716           narrowing will be proposed or accepted, or yes, signifying IKEv2
717           negotiation may allow establishing an IPsec connection with
718           narrowed down traffic selectors. This option is ignored for IKEv1.
719
720           There are security implications in allowing narrowing down the
721           proposal. For one, what should be done with packets that we hoped
722           to tunnel, but cannot. Should these be dropped or send in the
723           clear? Second, this could cause thousands of narrowed down Child
724           SAs to be created if the conn has a broad policy (eg 0/0 to 0/0).
725           One possible good use case scenario is that a remote end (that you
726           fully trust) allows you to define a 0/0 to them, while adjusting
727           what traffic you route via them, and what traffic remains outside
728           the tunnel. However, it is always preferred to setup the exact
729           tunnel policy you want, as this will be much clearer to the user.
730
731       sareftrack
732           Set the method of tracking reply packets with SArefs when using an
733           SAref compatible stack. Currently only the mast stack supports
734           this. Acceptable values are yes (the default), no or conntrack.
735           This option is ignored when SArefs are not supported. This option
736           is passed as PLUTO_SAREF_TRACKING to the updown script which makes
737           the actual decisions whether to perform any iptables/ip_conntrack
738           manipulation. A value of yes means that an IPSEC mangle table will
739           be created. This table will be used to match reply packets. A value
740           of conntrack means that additionally, subsequent packets using this
741           connection will be marked as well, reducing the lookups needed to
742           find the proper SAref by using the ip_conntrack state. A value of
743           no means no IPSEC mangle table is created, and SAref tracking is
744           left to a third-party (kernel) module. In case of a third party
745           module, the SArefs can be relayed using the statsbin= notification
746           helper.
747
748       nic-offload
749           Set the method of Network Interface Controller (NIC) hardware
750           offload for ESP/AH packet processing. Acceptable values are auto
751           (the default), yes or no. This option is separate from any CPU
752           hardware offload available and is currently only available on Linux
753           4.13+ using the NETKEY/XFRM IPsec stack, when compiled with the
754           options CONFIG_XFRM_OFFLOAD, CONFIG_INET_ESP_OFFLOAD and
755           CONFIG_INET6_ESP_OFFLOAD. The auto option will attempt to
756           auto-detect the presence of kernel and hardware support, and then
757           automatically mark the IPsec SA for hardware offloading. One vendor
758           supporting this offload method is Mellanox.
759
760       leftid
761           how the left participant should be identified for authentication;
762           defaults to left. Can be an IP address or a fully-qualified domain
763           name which will be resolved. If preceded by @, the value is used as
764           a literal string and will not be resolved. To support opaque
765           identifiers (usually of type ID_KEY_ID, such as used by Cisco to
766           specify Group Name, use square brackets, eg rightid=@[GroupName].
767           The magic value %fromcert causes the ID to be set to a DN taken
768           from a certificate that is loaded. Prior to 2.5.16, this was the
769           default if a certificate was specified. The magic value %none sets
770           the ID to no ID. This is included for completeness, as the ID may
771           have been set in the default conn, and one wishes for it to default
772           instead of being explicitly set. The magic value %myid stands for
773           the current setting of myid. This is set in config setup or by
774           ipsec_whack(8)), or, if not set, it is the IP address in
775           %defaultroute (if that is supported by a TXT record in its reverse
776           domain), or otherwise it is the system's hostname (if that is
777           supported by a TXT record in its forward domain), or otherwise it
778           is undefined.
779
780           When using certificate based ID's, one need to specify the full
781           RDN, optionally using wildcard matching (eg CN='*'). If the RDN
782           contains a comma, this can be masked using a comma (eg OU='Foo,,
783           Bar and associates')
784
785       leftrsasigkey
786           the left participant's public key for RSA signature authentication,
787           in RFC 2537 format using ipsec_ttodata(3) encoding. The magic value
788           %none means the same as not specifying a value (useful to override
789           a default). The value %dnsondemand (the default) means the key is
790           to be fetched from DNS at the time it is needed. The value
791           %dnsonload means the key is to be fetched from DNS at the time the
792           connection description is read from ipsec.conf; currently this will
793           be treated as %none if right=%any or right=%opportunistic. The
794           value %dns is currently treated as %dnsonload but will change to
795           %dnsondemand in the future. The identity used for the left
796           participant must be a specific host, not %any or another magic
797           value. The value %cert will load the information required from a
798           certificate defined in %leftcert and automatically define leftid
799           for you.  Caution: if two connection descriptions specify different
800           public keys for the same leftid, confusion and madness will ensue.
801
802       leftcert
803           If you are using leftrsasigkey=%cert this defines the certificate
804           nickname of your certificate in the NSS database. This can be on
805           software or hardware security device.
806
807       leftckaid
808           The hex CKAID of the X.509 certificate. Certificates are stored in
809           the NSS database.
810
811       leftauth
812           How the security gateways will authenticate to the other side in
813           the case of asymmetric authentication; acceptable values are rsasig
814           for RSA Authentication with SHA-1, rsa-sha2 for RSA-PSS digital
815           signatures based authentication with SHA2-256, rsa-sha2_384 for
816           RSA-PSS digital signatures based authentication with SHA2-384,
817           rsa-sha2_512 for RSA-PSS digital signatures based authentication
818           with SHA2-512, secret for shared secrets (PSK) authentication and
819           null for null-authentication. There is no default value - if unset,
820           the symmetrical authby= keyword is used to determine the
821           authentication policy of the connection.
822
823           If asymmetric authentication is requested, IKEv1 must be disabled.
824           If symmetric authentication is required, use authby= instead of
825           leftauth/rightauth. If leftauth is set, rightauth must also be set
826           and authby= must not be set. Asymmetric authentication cannot use
827           secret (psk) on one side and null on the other side - use psk on
828           both ends instead.
829
830           Be aware that the symmetric keyword is authby= but the asymmetric
831           keyword is leftauth and rightauth (without the "by").
832
833       leftca
834           specifies the authorized Certificate Authority (CA) that signed the
835           certificate of the peer. If undefined, it defaults to the CA that
836           signed the certificate specified in leftcert. The special
837           rightca=%same is implied when not specifying a rightca and means
838           that only peers with certificates signed by the same CA as the
839           leftca will be allowed. This option is only useful in complex multi
840           CA certificate situations. When using a single CA, it can be safely
841           omitted for both left and right.
842
843       leftikeport
844           The UDP IKE port to listen on or send data to. This port cannot be
845           0 or 500. For TCP, see tcp-remoteport=
846
847       leftsendcert
848           This option configures when Libreswan will send X.509 certificates
849           to the remote host. Acceptable values are yes|always (signifying
850           that we should always send a certificate), sendifasked (signifying
851           that we should send a certificate if the remote end asks for it),
852           and no|never (signifying that we will never send a X.509
853           certificate). The default for this option is sendifasked which may
854           break compatibility with other vendor's IPsec implementations, such
855           as Cisco and SafeNet. If you find that you are getting errors about
856           no ID/Key found, you likely need to set this to always. This
857           per-conn option replaces the obsolete global nocrsend option.
858
859       leftxauthserver
860           Left is an XAUTH server. This can use PAM for authentication or md5
861           passwords in /etc/ipsec.d/passwd. These are additional credentials
862           to verify the user identity, and should not be confused with the
863           XAUTH group secret, which is just a regular PSK defined in
864           ipsec.secrets. The other side of the connection should be
865           configured as rightxauthclient. XAUTH connections cannot rekey, so
866           rekey=no should be specified in this conn. For further details on
867           how to compile and use XAUTH, see README.XAUTH. Acceptable values
868           are yes or no (the default).
869
870       leftxauthclient
871           Left is an XAUTH client. The xauth connection will have to be
872           started interactively and cannot be configured using auto=start.
873           Instead, it has to be started from the commandline using ipsec auto
874           --up connname. You will then be prompted for the username and
875           password. To setup an XAUTH connection non-interactively, which
876           defeats the whole purpose of XAUTH, but is regularly requested by
877           users, it is possible to use a whack command - ipsec whack --name
878           baduser --ipsecgroup-xauth --xauthname badusername --xauthpass
879           password --initiate The other side of the connection should be
880           configured as rightxauthserver. Acceptable values are yes or no
881           (the default).
882
883       leftusername
884           The username associated with this connection. The username can be
885           the IKEv2 XAUTH username, a GSSAPI username or IKEv2 CP username.
886           For the XAUTH username, the XAUTH password can be configured in the
887           ipsec.secrets file. This option was previously called
888           leftxauthusername.
889
890       leftmodecfgserver
891           Left is a Mode Config server. It can push network configuration to
892           the client. Acceptable values are yes or no (the default).
893
894       leftmodecfgclient
895           Left is a Mode Config client. It can receive network configuration
896           from the server. Acceptable values are yes or no (the default).
897
898       xauthby
899           When IKEv1 XAUTH support is available, set the method used by XAUTH
900           to authenticate the user with IKEv1. The currently supported values
901           are file (the default), pam or alwaysok. The password file is
902           located at /etc/ipsec.d/passwd, and follows a syntax similar to the
903           Apache htpasswd file, except an additional connection name argument
904           (and optional static IP address) are also present:
905
906                 username:password:conname:ipaddress
907
908           For supported password hashing methods, see crypt(3). If pluto is
909           running in FIPS mode, some hash methods, such as MD5, might not be
910           available. Threads are used to launch an xauth authentication
911           helper for file as well as PAM methods.
912
913           The alwaysok should only be used if the XAUTH user authentication
914           is not really used, but is required for interoperability, as it
915           defeats the whole point of XAUTH which is to rely on a secret only
916           known by a human. See also pam-authorize=yes
917
918       xauthfail
919           When XAUTH support is available, set the failure method desired
920           when authentication has failed. The currently supported values are
921           hard (the default) and soft. A soft failure means the IPsec SA is
922           allowed to be established, as if authentication had passed
923           successfully, but the XAUTH_FAILED environment variable will be set
924           to 1 for the updown script, which can then be used to redirect the
925           user into a walled garden, for example a payment portal.
926
927       pam-authorize
928           IKEv1 supports PAM authorization via XAUTH using xauthby=pam. IKEv2
929           does not support receiving a plaintext username and password.
930           Libreswan does not yet support EAP authentication methods for IKE.
931           The pam-authorize=yes option performs an authorization call via
932           PAM, but only includes the remote ID (not username or password).
933           This allows for backends to disallow an ID based on non-password
934           situations, such as "user disabled" or "user over quota". See also
935           xauthby=pam
936
937       modecfgpull
938           Pull the Mode Config network information from the server.
939           Acceptable values are yes or no (the default).
940
941       modecfgdns, modecfgdomains, modecfgbanner
942           When configured as IKEv1 ModeCFG or IKEv2 server, specifying any of
943           these options will cause those options and values to be sent to the
944           connecting client. Libreswan as a client will use these received
945           options to either update /etc/resolv.conf or the running unbound
946           DNS server. When the connection is brought down, the previous DNS
947           resolving state is restored.
948
949           The modecfgdns option takes a comma or space separated list of IP
950           addresses that can be used for DNS resolution. The modecfgdomains
951           option takes a comma or space separated list of internal domain
952           names that are reachable via the supplied modecfgdns DNS servers.
953
954           The IKEv1 split tunnel directive will be sent automatically if the
955           xauth server side has configured a network other than 0.0.0.0/0.
956           For IKEv2, this is automated via narrowing.
957
958       remote-peer-type
959           Set the remote peer type. This can enable additional processing
960           during the IKE negotiation. Acceptable values are cisco or ietf
961           (the default). When set to cisco, support for Cisco IPsec gateway
962           redirection and Cisco obtained DNS and domainname are enabled. This
963           includes automatically updating (and restoring) /etc/resolv.conf.
964           These options require that XAUTH is also enabled on this
965           connection.
966
967       nm-configured
968           Mark this connection as controlled by Network Manager. Acceptable
969           values are yes or no (the default). Currently, setting this to yes
970           will cause libreswan to skip reconfiguring resolv.conf when used
971           with XAUTH and ModeConfig.
972
973       encapsulation
974           In some cases, for example when ESP packets are filtered or when a
975           broken IPsec peer does not properly recognise NAT, it can be useful
976           to force RFC-3948 encapsulation. In other cases, where IKE is
977           NAT'ed but ESP packets can or should flow without encapsulation, it
978           can be useful to ignore the NAT-Traversal auto-detection.
979           encapsulation=yes forces the NAT detection code to lie and tell the
980           remote peer that RFC-3948 encapsulation (ESP in port 4500 packets)
981           is required.  encapsulation=no ignores the NAT detection causing
982           ESP packets to send send without encapsulation. The default value
983           of encapsulation=auto follows the regular outcome of the NAT
984           auto-detection code performed in IKE. This option replaced the
985           obsoleted forceencaps option.
986
987       enable-tcp
988           Normally, IKE negotiation and ESP encapsulation happens over UDP.
989           This option enables support for IKE and ESP over TCP as per RFC
990           8229. Acceptable values are no(the default), yes meaning only TCP
991           will be used, or fallback meaning that TCP will be attempted only
992           after negotiation over UDP failed. Since performance over TCP is
993           much less, and TCP sessions are vulnerable to simply RST resets and
994           MITM attacks causing the TCP connection to close, this option
995           should really only be used in fallback mode. If used in fallback
996           mode, it is recommend to reduce the retransmit-timeout from the
997           default 60s to a much shorter value such as 10s, so that one does
998           not have to wait a minute for the TCP fallback to be attempted.
999
1000       tcp-remoteport
1001           Which remote TCP port to use when IKE over TCP is attempted. The
1002           default value is to use the NAT-T IKE port (4500). This value is
1003           not negotiated and should be configured properly on all endpoints.
1004           When opening a TCP socket to the remote host in this port, a
1005           regular ephemeral source port is obtained from the OS. For changing
1006           the UDP ports, see leftikeport=
1007
1008       nat-keepalive
1009           whether to send any NAT-T keep-alives. These one byte packets are
1010           send to prevent the NAT router from closing its port when there is
1011           not enough traffic on the IPsec connection. Acceptable values are:
1012           yes (the default) and no.
1013
1014       initial-contact
1015           whether to send an INITIAL_CONTACT payload to the peer we are
1016           initiating to, if we currently have no IPsec SAs up with that peer.
1017           Acceptable values are: no (the default) and yes. It is recommended
1018           to leave this option unset, unless the remote peer requires it to
1019           allow reconnects. The only known peer at this time is Cisco, which
1020           will not allow a reconnect (despite authentication) to replace an
1021           existing IPsec SA unless it receives an INITIAL_CONTACT payload.
1022           Receiving this payload is ignored and the choice to replace or add
1023           an IPsec SA when libreswan is a responder is purely based on the
1024           uniqueids setting, which should be left enabled unless libreswan
1025           acts as an XAUTH server using PSK ("group secret"). This option can
1026           cause a few seconds of downtime on the IPsec tunnel between the
1027           time the remote clears the old IPsec SA in response to our
1028           INITIAL_CONTACT message, and the time we finish setting up the new
1029           IPsec SA. If there is an XAUTH step in between, and especially when
1030           XAUTH requires the use of some two-factor token, this downtime
1031           could be even longer.
1032
1033       cisco-unity
1034           whether to send a CISCO_UNITY payload to the peer. Acceptable
1035           values are: no (the default) and yes. It is recommended to leave
1036           this option unset, unless the remote peer (Cisco client or server)
1037           requires it. This option does not modify local behaviour. It can be
1038           needed to connect as a client to a Cisco server. It can also be
1039           needed to act as a server for a Cisco client, which otherwise might
1040           send back an error DEL_REASON_NON_UNITY_PEER.
1041
1042       ignore-peer-dns
1043           whether to ignore received DNS configuration. Acceptable values
1044           are: no (the default) and yes. Normally, when a roadwarrior
1045           connects to a remote VPN, the remote VPN server sends a list of DNS
1046           domains and DNS nameserver IP addresses that the roadwarrior can
1047           use to reach internal only resources through the VPN. This option
1048           allows the roadwarrior to ignore the server's suggestion. The
1049           roadwarrior will normally use this information to update the DNS
1050           resolving process. What is changed depends on the detected DNS
1051           configuration. It can modify /etc/resolv.conf directly, or
1052           reconfigure a locally running DNS server (unbound, knot, stubby or
1053           systemd-resolved) or inform NetworkManager.
1054
1055       accept-redirect
1056           Whether requests of the remote peer to redirect IKE/IPsec SA's are
1057           accepted. Valid options are no (the default) and yes. See also
1058           accept-redirect-to.
1059
1060       accept-redirect-to
1061           Specify the comma separated list of addresses we accept being
1062           redirected to. Both IPv4 and IPv6 addresses are supported as well
1063           the FQDNs. The value %any, as well as not specifying any address,
1064           signifes that we will redirect to any address gateway sends us in
1065           REDIRECT notify payload.
1066
1067           The value of this option is not considered at all if
1068           accept-redirect is set to no.
1069
1070       send-redirect
1071           Whether to send requests for the remote peer to redirect IKE/IPsec
1072           SA's during IKE_AUTH. Valid options are no (the default) and yes.
1073           If set, the option redirect-to= must also be set to indicate where
1074           to redirect peers to. For redirection during IKE_SA_INIT exchange,
1075           see the global-redirect= and global-redirect-to= options. Runtime
1076           redirects can be triggered via the ipsec whack --redirect command.
1077
1078       redirect-to
1079           Where to send remote peers to via the send-redirect option. This
1080           can be an IP address or hostname (FQDN).
1081
1082       fake-strongswan
1083           whether to send a STRONGSWAN Vendor ID payload to the peer.
1084           Acceptable values are: no (the default) and yes. This used to be
1085           required because strongswan rejects certain proposals with private
1086           use numbers such as esp=twofish or esp=serpent unless it receives a
1087           strongswan vendorid by the peer. This option sends such an
1088           (unversioned) vendor id. Note that libreswan and strongswan no
1089           longer support twofish or serpent, so enabling this option likely
1090           will no longer do anything.
1091
1092       send-vendorid
1093           whether to send our Vendor ID during IKE. Acceptable values are: no
1094           (the default) and yes. The vendor id sent can be configured using
1095           the "config setup" option myvendorid=. It defaults to
1096           OE-Libreswan-VERSION.
1097
1098           Vendor ID's can be useful in tracking interoperability problems.
1099           However, specific vendor identification and software versions can
1100           be useful to an attacker when there are known vulnerabilities to a
1101           specific vendor/version.
1102
1103           The prefix OE stands for "Opportunistic Encryption". This prefix
1104           was historically used by The FreeS/WAN Project and The Openswan
1105           Project (openswan up to version 2.6.38) and in one Xeleranized
1106           openswan versions (2.6.39). Further Xeleranized openswan's use the
1107           prefix OSW.
1108
1109       overlapip
1110           a boolean (yes/no) that determines, when (left|right)subnet=vhost:
1111           is used, if the virtual IP claimed by this states created from this
1112           connection can with states created from other connections.
1113
1114           Note that connection instances created by the Opportunistic
1115           Encryption or PKIX (x.509) instantiation system are distinct
1116           internally. They will inherit this policy bit.
1117
1118           The default is no.
1119
1120           This feature is only available with kernel drivers that support SAs
1121           to overlapping conns. At present only the (klips) mast protocol
1122           stack supports this feature.
1123
1124       reqid
1125           a unique identifier used to match IPsec SAs using iptables with
1126           NETKEY/XFRM. This identifier is normally automatically allocated in
1127           groups of 4. It is exported to the _updown script as REQID. On
1128           Linux, reqids are supported with IP Connection Tracking and NAT
1129           (iptables). Automatically generated values use the range 16380 and
1130           higher. Manually specified reqid values therefore must be between 1
1131           and 16379.
1132
1133           Automatically generated reqids use a range of 0-3 (eg 16380-16383
1134           for the first reqid). These are used depending on the exact policy
1135           (AH, AH+ESP, IPCOMP, etc).
1136
1137           WARNING: Manually assigned reqids are all identical. Instantiations
1138           of connections (those using %any wildcards) will all use the same
1139           reqid. If you use manual assigning you should make sure your
1140           connections only match single road warrior only or you break
1141           multiple road warriors behind same NAT router because this feature
1142           requires unique reqids to work.
1143
1144           For KLIPS, when using the MAST variant, a different mechanism
1145           called SAref is in use. See overlapip and sareftrack.
1146
1147       dpddelay
1148           Set the delay (in time units, defaults to seconds) between Dead
1149           Peer Detection (IKEv1 RFC 3706) or IKEv2 Liveness keepalives that
1150           are sent for this connection (default 0 seconds). Set to enable
1151           checking. If dpddelay is set, dpdtimeout also needs to be set.
1152
1153       dpdtimeout
1154           Set the length of time (in time units, defaults to seconds) that we
1155           will idle without hearing back from our peer. After this period has
1156           elapsed with no response and no traffic, we will declare the peer
1157           dead, and remove the SA (default 0 seconds). Set value bigger than
1158           dpddelay to enable. If dpdtimeout is set, dpddelay also needs to be
1159           set.
1160
1161       dpdaction
1162           When a DPD enabled peer is declared dead, what action should be
1163           taken.  hold (default) means the eroute will be put into %hold
1164           status, while clear means the eroute and SA with both be cleared.
1165           restart means that ALL SAs to the dead peer will renegotiated.
1166
1167           dpdaction=clear is really only useful on the server of a Road
1168           Warrior config.
1169
1170           The value restart_by_peer has been obsoleted and its functionality
1171           moved into the regular restart action.
1172
1173       pfs
1174           whether Perfect Forward Secrecy of keys is desired on the
1175           connection's keying channel (with PFS, penetration of the
1176           key-exchange protocol does not compromise keys negotiated earlier);
1177           Acceptable values are yes (the default) and no.
1178
1179       pfsgroup
1180           This option is obsoleted, please use phase2alg if you need the PFS
1181           to be different from phase1 (the default) using:
1182           phase2alg=aes128-md5;modp1024
1183
1184       aggressive
1185           Use IKEv1 Aggressive Mode instead of IKEv1 Main Mode. This option
1186           has no effect when IKEv2 is used. Acceptable values are no (the
1187           default) or yes. When this option is enabled, IKEv1 Main Mode will
1188           no longer be allowed for this connection. The old name of this
1189           option was aggrmode.
1190
1191           Aggressive Mode is less secure, and more vulnerable to Denial Of
1192           Service attacks. It is also vulnerable to brute force attacks with
1193           software such as ikecrack. It should not be used, and it should
1194           especially not be used with XAUTH and group secrets (PSK). If the
1195           remote system administrator insists on staying irresponsible,
1196           enable this option.
1197
1198           Aggressive Mode is further limited to only proposals with one DH
1199           group as there is no room to negotiate the DH group. Therefore it
1200           is mandatory for Aggressive Mode connections that both ike= and
1201           phase2alg= options are specified with only one fully specified
1202           proposal using one DH group.
1203
1204           The KE payload is created in the first exchange packet when using
1205           aggressive mode. The KE payload depends on the DH group used. This
1206           is why there cannot be multiple DH groups in IKEv1 aggressive mode.
1207           In IKEv2, which uses a similar method to IKEv1 Aggressive Mode,
1208           there is an INVALID_KE response payload that can inform the
1209           initiator of the responder's desired DH group and so an IKEv2
1210           connection can actually recover from picking the wrong DH group by
1211           restarting its negotiation.
1212
1213       salifetime
1214           how long a particular instance of a connection (a set of
1215           encryption/authentication keys for user packets) should last, from
1216           successful negotiation to expiry; acceptable values are an integer
1217           optionally followed by s (a time in seconds) or a decimal number
1218           followed by m, h, or d (a time in minutes, hours, or days
1219           respectively) (default 8h, maximum 24h). Normally, the connection
1220           is renegotiated (via the keying channel) before it expires. The two
1221           ends need not exactly agree on salifetime, although if they do not,
1222           there will be some clutter of superseded connections on the end
1223           which thinks the lifetime is longer.
1224
1225           The keywords "keylife" and "lifetime" are obsoleted aliases for
1226           "salifetime." Change your configs to use "salifetime" instead.
1227
1228       replay-window
1229           The size of the IPsec SA replay window protection. The default is
1230           kernel stack specific, but usually 32. Linux NETKEY/XFRM allows at
1231           least up to 2048. A value of of 0 disables replay protection.
1232           Disabling of replay protection is sometimes used on a pair of IPsec
1233           servers in a High Availability setup, or on servers with very
1234           unpredictable latency, such as mobile networks, which can cause an
1235           excessive amount of out of order packets. Sequence errors can be
1236           seen in /proc/net/xfrm_stat. Note that technically, at least the
1237           Linux kernel can install IPsec SA's with an IPsec SA Sequence
1238           Number, but this is currently not supported by libreswan.
1239
1240       rekey
1241           whether a connection should be renegotiated when it is about to
1242           expire; acceptable values are yes (the default) and no. The two
1243           ends need not agree, but while a value of no prevents Pluto from
1244           requesting renegotiation, it does not prevent responding to
1245           renegotiation requested from the other end, so no will be largely
1246           ineffective unless both ends agree on it.
1247
1248       rekeymargin
1249           how long before connection expiry or keying-channel expiry should
1250           attempts to negotiate a replacement begin; acceptable values as for
1251           salifetime (default 9m). Relevant only locally, other end need not
1252           agree on it.
1253
1254       rekeyfuzz
1255           maximum percentage by which rekeymargin should be randomly
1256           increased to randomize rekeying intervals (important for hosts with
1257           many connections); acceptable values are an integer, which may
1258           exceed 100, followed by a `%' (default set by ipsec_pluto(8),
1259           currently 100%). The value of rekeymargin, after this random
1260           increase, must not exceed salifetime. The value 0% will suppress
1261           time randomization. Relevant only locally, other end need not agree
1262           on it.
1263
1264       keyingtries
1265           how many attempts (a whole number or %forever) should be made to
1266           negotiate a connection, or a replacement for one, before giving up
1267           (default %forever). The value %forever or 0 means to keep trying
1268           forever. For Opportunistic Encryption connections, a keyingtries
1269           value of %forever or 0 is set to 1 and a warning message will be
1270           logged. This is because an expired failureshunt triggers new
1271           keyingtries on-demand later, when there is traffic. This prevents
1272           accumulating an infinite amount of attempts to peers that do not
1273           support Opportunistic Encryption. For Opportunistic, a keyingtries
1274           value of > 1 is allowed but currently not recommended. The meaning
1275           of failureshunt= is unclear when there is continued (failed) keying
1276           happening with a negotiationshunt installed. Relevant only locally,
1277           other end need not agree on it.
1278
1279       ikelifetime
1280           how long the keying channel of a connection (buzzphrase: “IKE SA”
1281           or “Parent SA”) should last before being renegotiated; acceptable
1282           values as for salifetime. The default as of version 4.2 is 8h,
1283           before that it was 1h. The maximum is 24h. The two-ends-disagree
1284           case is similar to that of salifetime.
1285
1286       retransmit-timeout
1287           how long a single packet, including retransmits of that packet, may
1288           take before the IKE attempt is aborted. If rekeying is enabled, a
1289           new IKE attempt is started. The default set by ipsec_pluto(8),
1290           currently is 60s. See also: retransmit-interval, rekey and
1291           keyingtries.
1292
1293       retransmit-interval
1294           the initial interval time period, specified in msecs, that pluto
1295           waits before retransmitting an IKE packet. This interval is doubled
1296           for each attempt (exponential back-off). The default set by
1297           ipsec_pluto(8), currently is 500. See also: retransmit-timeout,
1298           rekey and keyingtries.
1299
1300       compress
1301           whether IPComp compression of content is proposed on the connection
1302           (link-level compression does not work on encrypted data, so to be
1303           effective, compression must be done before encryption); acceptable
1304           values are yes and no (the default).
1305
1306           For IKEv1, compress settings on both peers must match. For IKEv2,
1307           compression can only be suggested and a mismatched compress setting
1308           results in connection without compression.
1309
1310           When set to yes, compression is negotiated for the DEFLATE
1311           compression algorithm.
1312
1313       metric
1314           Set the metric for added routes. This value is passed to the
1315           _updown scripts as PLUTO_METRIC. Acceptable values are positive
1316           numbers, with the default being 1.
1317
1318       mtu
1319           Set the MTU for the route(s) to the remote endpoint and/or subnets.
1320           This is sometimes required when the overhead of the IPsec
1321           encapsulation would cause the packet the become too big for a
1322           router on the path. Since IPsec cannot trust any unauthenticated
1323           ICMP messages, PATH MTU discovery does not work. This can also be
1324           needed when using "6to4" IPV6 deployments, which adds another
1325           header on the packet size. Acceptable values are positive numbers.
1326           There is no default.
1327
1328       tfc
1329           Enable Traffic Flow Confidentiality ("TFC") (RFC-4303) for outgoing
1330           ESP packets in Tunnel Mode. When enabled, ESP packets are padded to
1331           the specified size (up to the PMTU size) to prevent leaking
1332           information based on ESP packet size. This option is ignored for AH
1333           and for ESP in Transport Mode as those always leak traffic
1334           characteristics and applying TFC will not do anything. Acceptable
1335           values are positive numbers. The value 0 means TFC padding is not
1336           performed. Currently this feature is only implemented for the Linux
1337           XFRM/NETKEY stack. In IKEv2, when the notify payload
1338           ESP_TFC_PADDING_NOT_SUPPORTED is received, TFC padding is disabled.
1339           The default is not to do any TFC padding, but this might change in
1340           the near future.
1341
1342       send-no-esp-tfc
1343           Whether or not to tell the remote peer that we do not support
1344           Traffic Flow Confidentiality ("TFC") (RFC-4303). Possible values
1345           are no (the default) which allows the peer to use TFC or yes which
1346           prevents to peer from using TFC. This does not affect whether this
1347           endpoint uses TFC, which only depends on the local tfc setting.
1348           This option is only valid for IKEv2.
1349
1350       nflog
1351           If set, the NFLOG group number to log this connection's pre-crypt
1352           and post-decrypt traffic to. The default value of 0 means no
1353           logging at all. This option is only available on linux kernel
1354           2.6.14 and later. It allows common network utilities such as
1355           tcpdump, wireshark and dumpcap, to use nflog:XXX pseudo interfaces
1356           where XXX is the nflog group number. During the updown phase of a
1357           connection, iptables will be used to add and remove the
1358           source/destination pair to the nflog group specified. The rules are
1359           setup with the nflog-prefix matching the connection name. See also
1360           the global nflog-all option.
1361
1362       mark
1363           If set, the MARK to set for the IPsec SA of this connection. The
1364           format of a CONNMARK is mark/mask. If the mask is left out, a
1365           default mask of 0xffffffff is used. A mark value of -1 means to
1366           assign a new global unique mark number for each instance of the
1367           connection. Global marks start at 1001. This option is only
1368           available on linux NETKEY/XFRM kernels. It can be used with
1369           iptables to create custom iptables rules using CONNMARK. It can
1370           also be used with Virtual Tunnel Interfaces ("VTI") to direct
1371           marked traffic to specific vtiXX devices.
1372
1373       mark-in
1374           The same as mark, but mark-in only applies to the inbound half of
1375           the IPsec SA. It overrides any mark= setting.
1376
1377       mark-out
1378           The same as mark, but mark-out only applies to the outbound half of
1379           the IPsec SA. It overrides any mark= setting.
1380
1381       vti-interface
1382           This option is used to create "Routing based VPNs" (as opposed to
1383           "Policy based VPNs"). It will create a new interface that can be
1384           used to route traffic in for encryption/decryption. The Virtual
1385           Tunnel Interface ("VTI") interface name is used to for all IPsec
1386           SA's created by this connection. This requires that the connection
1387           also enables either the mark= or mark-in= / mark-out- option(s).
1388           All traffic marked with the proper MARKs will be automatically
1389           encrypted if there is an IPsec SA policy covering the
1390           source/destination traffic. Tools such as tcpdump and iptables can
1391           be used on all cleartext pre-encrypt and post-decrypt traffic on
1392           the device. See the libreswan wiki for example configurations that
1393           use VTI.
1394
1395           VTI interfaces are currently only supported on Linux with
1396           XFRM/NETKEY. The _updown script handles certain Linux specific
1397           interfaces settings required for proper functioning
1398           (disable_policy, rp_filter, forwarding, etc). Interface names are
1399           limited to 16 characters and may not allow all characters to be
1400           used. If marking and vti-routing=yes is used, no manual iptables
1401           should be required. However, administrators can use the iptables
1402           mangle table to mark traffic manually if desired.
1403
1404       vti-routing
1405           Whether or not to add network rules or routes for IPsec SA's to the
1406           respective VTI devices. Valid values are yes (the default) or no.
1407           When using "routing based VPNs" with a subnets policy of 0.0.0.0/0,
1408           this setting needs to set to no to prevent imploding the tunnel,
1409           and the administrator is expected to manually add ip rules and ip
1410           routes to configure what traffic must be encrypted. When set to
1411           yes, the _updown script will automatically route the
1412           leftsubnet/rightsubnet traffic into the VTI device specified with
1413           vti-interface
1414
1415       vti-shared
1416           Whether or not the VTI device is shared amongst connections. Valid
1417           values are no (the default) or yes. When set to no, the VTI device
1418           is automatically deleted if the connection is a single
1419           non-instantiated connection. If a connection instantiates (eg
1420           right=%any) then this option has no effect, as the VTI device is
1421           not removed as it is shared with multiple roadwarriors.
1422
1423       ipsec-interface
1424           Create or use an existing virtual interface ipsecXXX for "Routing
1425           based VPNs" (as opposed to "Policy based VPNs"). Valid options are
1426           yes, no or a number. When using a number, the IPsec interface
1427           created and/or used will use that number as part of the interface
1428           name. For example setting ipsec-interface=5 will create and/or use
1429           the ipsec5 interface. The value 0 cannot be used and is interpreted
1430           as no. The value yes is interpreted as the number 1, and thus will
1431           use the interface named ipsec1. An IP address can be configured for
1432           this interface via the interface-ip= option.
1433
1434           The ipsec-interface is used to route outbound traffic that needs to
1435           be encrypted, and will decrypt inbound traffic that arrives on this
1436           interface. All traffic that is routed to this interface will be
1437           automatically encrypted providing the IPsec SA policy covers this
1438           traffic. Traffic not matching the IPsec SA will be dropped. Tools
1439           such as tcpdump, iptables, ifconfig and tools that need traffic
1440           counters can be used on all cleartext pre-encrypt and post-decrypt
1441           traffic on the device. When leftsubnet= is equal to rightsubnet=,
1442           the routing needs to be manged by an external routing daemon or
1443           manually by the administrator.
1444
1445           This option is currently only supported on Linux kernels 4.19 or
1446           later when compiled with XFRMi support (CONFIG_XFRM_INTERFACE). The
1447           number of the ipsecX device corresponds with the XFRM IF_ID policy
1448           option of the IPsec SA in the Linux kernel. On Linux, XFRMi
1449           interfaces can be managed by libreswan automatically or can be
1450           preconfigured on the system using the existing init system or via
1451           networking tools such as systemd-networkd and NetworkManager. The
1452           _updown script handles certain Linux specific interfaces settings
1453           required for proper functioning, such as forwarding and routing
1454           rules for IPsec traffic.
1455
1456           The ipsec-interface=0 will create an interface with the same name
1457           as the old KLIPS interface, ipsec0. This interface name should only
1458           be used when required for migration from KLIPS to XFRM interfaces.
1459           Since XFRM IF_ID and marking cannot use 0, this is mapped to 16384.
1460           This means that the devices ipsec0 and ipsec16384 cannot both be in
1461           use.
1462
1463       interface-ip=
1464           The IP address and netmask to configure on a virtual device (eg
1465           ipsecXXX). This is often used when building Routing based IPsec
1466           tunnels using transport mode and GRE, but can also be useful in
1467           other scenarios. Currently requires ipsec-interface=. See also
1468           leftvti= for cnofiguring IP addresses when using VTI.
1469
1470       priority
1471           The priority in the kernel SPD/SAD database, when matching up
1472           packets. Each kernel (NETKEY, KLIPS, OSX, etc) has its own
1473           mechanism for setting the priority. Setting this option to non-zero
1474           passes the priority to the kernel stack unmodified. The maximum
1475           value depends on the stack. It is recommended not to exceed 65536
1476
1477           KLIPS and NETKEY use a priority system based on "most specific
1478           match first". It uses an internal algorithm to calculate these
1479           based on network prefix length, protocol and port selectors. A
1480           lower value means a higher priority.
1481
1482           Typical values are about the 2000 range. These can be seen on the
1483           NETKEY stack using ip xfrm policy when the connection is up. For
1484           "anonymous IPsec" or Opportunistic Encryption based connections, a
1485           much lower priority (65535) is used to ensure administrator
1486           configured IPsec always takes precedence over opportunistic IPsec.
1487
1488       sendca
1489           How much of our available X.509 trust chain to send with the End
1490           certificate, excluding any root CA's. Specifying issuer sends just
1491           the issuing intermediate CA, while
1492            all will send the entire chain of intermediate CA's.none (the
1493           default) will not send any CA certs.
1494
1495       labeled-ipsec
1496           This option is obsolete. To enable labeled IPsec, setting the
1497           policy-label= is enough. See also policy-label= and
1498           secctx-attr-type=
1499
1500       policy-label
1501           The string representation of an access control security label that
1502           is interpreted by the LSM (e.g. SELinux) for use with Labeled
1503           IPsec. See also labeled-ipsec= and secctx-attr-type=. For example,
1504           policy-label=system_u:object_r:ipsec_spd_t:s0-s15:c0.c1023
1505
1506       failureshunt
1507           what to do with packets when negotiation fails. The default is
1508           none: no shunt; passthrough, drop, and reject have the obvious
1509           meanings.
1510
1511       negotiationshunt
1512           What to do with packets during the IKE negotiation. Valid options
1513           are hold (the default) or passthrough. This should almost always be
1514           left to the default hold value to avoid cleartext packet leaking.
1515           The only reason to set this to passthrough is if plaintext service
1516           availability is more important than service security or privacy, a
1517           scenario that also implies failureshunt=passthrough and most likely
1518           authby=%null using Opportunistic Encryption.
1519

CONFIG SECTIONS

1521       At present, the only config section known to the IPsec software is the
1522       one named setup, which contains information used when the software is
1523       being started (see ipsec_setup(8)). Here's an example:
1524
1525
1526           config setup
1527                logfile=/var/log/pluto.log
1528                plutodebug=all
1529
1530       Parameters are optional unless marked “(required)”.
1531
1532       The currently-accepted parameter names in a config setup section are:
1533
1534       protostack
1535           decide which protocol stack is going to be used. Valid values are
1536           "xfrm" and "bsd". This option should no longer be set, as the stack
1537           is currently auto-detected. The values "klips, "mast", "netkey",
1538           "native", "kame" and "auto" are obsolete. The option is kept only
1539           because it is suspected that Linux and BSD will get userspace
1540           stacks with IPsec support soon (such as dpdk).
1541
1542       interfaces
1543           virtual and physical interfaces for IPsec to use: a single
1544           virtual=physical pair, a (quoted!) list of pairs separated by white
1545           space, or %none. One of the pairs may be written as %defaultroute,
1546           which means: find the interface d that the default route points to,
1547           and then act as if the value was ``ipsec0=d''.  %defaultroute is
1548           the default; %none must be used to denote no interfaces, or when
1549           using the NETKEY stack. If %defaultroute is used (implicitly or
1550           explicitly) information about the default route and its interface
1551           is noted for use by ipsec_auto(8).)
1552
1553       listen
1554           IP address to listen on (default depends on interfaces= setting).
1555           Currently only accepts one IP address.
1556
1557       ike-socket-bufsize
1558           Set the IKE socket buffer size. Default size is determined by the
1559           OS (as of writing, this seems to be set to 212992. On Linux this is
1560           visible via /proc/sys/net/core/rmem_default and
1561           /proc/sys/net/core/wmem_default. On Linux, this option uses
1562           SO_RCVBUFFORCE and SO_SNDBUFFORCE so that it can override
1563           rmem_max/wmem_max values of the OS. This requires CAP_NET_ADMIN
1564           (which is also required for other tasks). This option can also be
1565           toggled on a running system using ipsec whack --ike-socket-bufsize
1566           bufsize.
1567
1568       ike-socket-errqueue
1569           Whether to enable or disable receiving socket errors via
1570           IP_RECVERR. The default is enabled. This will cause the socket to
1571           receive, process and log socket errors, such as ICMP unreachable
1572           messages or Connection Refused messages. Disabling this only makes
1573           sense on very busy servers, and even then it might not make much of
1574           a difference. This option can also be toggled on a running system
1575           using ipsec whack --ike-socket-errqueue-toggle.
1576
1577       listen-udp
1578           Whether the pluto IKE daemon should listen on the standard UDP
1579           ports of 500 and 4500. The value "yes" means to listen on these
1580           ports, and is the default. This should almost never be disabled. In
1581           the rare case where it is known that only ever TCP or non-standard
1582           UDP ports will be used, this option can disable the standard UDP
1583           ports. Connections can specify their own non-standard port using
1584           leftikeport=.
1585
1586       listen-tcp
1587           Whether the pluto IKE daemon should listen on the (pseudo) standard
1588           TCP port 4500. The value "no" is the current default, but this will
1589           be changed in the future to "yes". The TCP usage complies to RFC
1590           8229 for IKE and ESP over TCP support. Connections can specify
1591           their own non-standard port using leftikeport=.
1592
1593       nflog-all
1594           If set, the NFLOG group number to log all pre-crypt and
1595           post-decrypt traffic to. The default value of 0 means no logging at
1596           all. This option is only available on linux kernel 2.6.14 and
1597           later. It allows common network utilities such as tcpdump,
1598           wireshark and dumpcap, to use nflog:XXX pseudo interfaces where XXX
1599           is the nflog group number. During startup and shutdown of the IPsec
1600           service, iptables commands will be used to add or remove the global
1601           NFLOG table rules. The rules are setup with the nflog-prefix
1602           all-ipsec. See also the per-connection nflog option.
1603
1604       keep-alive
1605           The delay (in seconds) for NAT-T keep-alive packets, if these are
1606           enabled using nat-keepalive This parameter may eventually become
1607           per-connection.
1608
1609       virtual-private
1610           contains the networks that are allowed as (left|right)subnet= for
1611           the remote clients when using the vhost: or vnet: keywords in the
1612           (left|right)subnet= parameters. In other words, the address ranges
1613           that may live behind a NAT router through which a client connects.
1614           This value is usually set to all the RFC-1918 address space,
1615           excluding the space used in the local subnet behind the NAT (An IP
1616           address cannot live at two places at once). IPv4 address ranges are
1617           denoted as %v4:a.b.c.d/mm and IPv6 is denoted as
1618           %v6:aaaa::bbbb:cccc:dddd:eeee/mm. One can exclude subnets by using
1619           the !. For example, if the VPN server is giving access to
1620           192.168.1.0/24, this option should be set to:
1621           virtual-private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.1.0/24.
1622           This parameter is only needed on the server side and not on the
1623           client side that resides behind the NAT router, as the client will
1624           just use its IP address for the inner IP setting. This parameter
1625           may eventually become per-connection. See also leftsubnet=
1626
1627           Note: It seems that T-Mobile in the US and Rogers/Fido in Canada
1628           have started using 25.0.0.0/8 as their pre-NAT range. This range
1629           technically belongs to the Defence Interoperable Network Services
1630           Authority (DINSA), an agency of the Ministry of Defence of the
1631           United Kingdom. The network range seems to not have been announced
1632           for decades, which is probably why these organisations "borrowed"
1633           this range. To support roadwarriors on these 3G networks, you might
1634           have to add it to the virtual-private= line.
1635
1636       myvendorid
1637           The string to use as our vendor id (VID) when send-vendorid=yes.
1638           The default is OE-Libreswan-VERSION.
1639
1640       nhelpers
1641           how many pluto helpers are started to help with cryptographic
1642           operations. Pluto will start as many helpers as the number of
1643           CPU's, minus 1 to dedicate to the main thread. For machines with
1644           less than 4 CPU's, an equal number of helpers to CPU's are started.
1645           A value of 0 forces pluto to do all operations inline using the
1646           main process. A value of -1 tells pluto to perform the above
1647           calculation. Any other value forces the number to that amount.
1648
1649       seedbits
1650           Pluto uses the NSS crypto library as its random source. Some
1651           government Three Letter Agencies require that pluto reads
1652           additional bits from /dev/random and feed these into the NSS RNG
1653           before drawing random from the NSS library, despite the NSS library
1654           itself already seeding its internal state. This process can block
1655           pluto for an extended time during startup, depending on the entropy
1656           of the system. Therefore, the default is to not perform this
1657           redundant seeding. If specifying a value, it is recommended to
1658           specify at least 460 bits (for FIPS) or 440 bits (for BSI).
1659
1660       ikev1-secctx-attr-type
1661           The value for the IKEv1 IPsec SA security context attribute
1662           identifier that is used for Labeled IPsec. Defaults to the private
1663           use IANA value 32001 from the IPsec SA attributes registry. Old
1664           openswan versions might still be using the (stolen) value 10, which
1665           has since been assigned by IANA for something else. Other values
1666           are not recommended unless IANA assigns an actual value for this
1667           option. Labeled IPsec using IKEv2 does not use this option, it only
1668           uses an IANA allocated Notify number. See also policy-label.
1669
1670       ikev1-policy
1671           What to do with received IKEv1 packets. Valid options are accept
1672           (default), reject which will reply with an error, and drop which
1673           will silently drop any received IKEv1 packet. If this option is set
1674           to drop or reject, an attempt to load an IKEv1 connection will
1675           fail, as these connections would never be able to receive a packet
1676           for processing.
1677
1678       crlcheckinterval
1679           interval expressed in second units, for example crlcheckinterval=8h
1680           for 8 hours, after which pluto will fetch new Certificate
1681           Revocation List (CRL) from crl distribution points. List of used
1682           CRL distribution points are collected from CA certificates and end
1683           certificates. Loaded X.509 CRL's are verified to be valid and
1684           updates are imported to NSS database. If set to 0, which is also
1685           the default value if this option is not specified, CRL updating is
1686           disabled.
1687
1688       crl-strict
1689           if not set, pluto is tolerant about missing or expired X.509
1690           Certificate Revocation Lists (CRL's), and will allow peer
1691           certificates as long as they do not appear on an expired CRL. When
1692           this option is enabled, all connections with an expired or missing
1693           CRL will be denied. Active connections will be terminated at rekey
1694           time. This setup is more secure, but vulnerable to downtime if the
1695           CRL expires. Acceptable values are yes or no (the default). This
1696           option used to be called strictcrlpolicy.
1697
1698       curl-iface
1699           The name of the interface that is used for CURL lookups. This is
1700           needed on rare situations where the interface needs to be forced to
1701           be different from the default interface used based on the routing
1702           table.
1703
1704       curl-timeout
1705           The timeout for the curl library calls used to fetch CRL and OCSP
1706           requests. The default is 5s.
1707
1708       ocsp-enable
1709           Whether to perform Online Certificate Store Protocol ("OCSP")
1710           checks on those certificates that have an OCSP URI defined.
1711           Acceptable values are yes or no (the default).
1712
1713       ocsp-strict
1714           if set to no, pluto is tolerant about failing to obtain an OCSP
1715           responses and a certificate is not rejected when the OCSP request
1716           fails, only when the OCSP request succeeds and lists the
1717           certificate as revoked. If set to yes, any failure on obtaining an
1718           OCSP status for a certificate will be fatal and the certificate
1719           will be rejected. Acceptable values are yes or no (the default).
1720
1721           The strict mode refers to the NSS
1722           ocspMode_FailureIsVerificationFailure mode, while non-strict mode
1723           refers to the NSS ocspMode_FailureIsNotAVerificationFailure mode.
1724
1725       ocsp-method
1726           The HTTP methods used for fetching OCSP data. Valid options are get
1727           (the default) and post. Note that this behaviour depends on the NSS
1728           crypto library that is actually performing the fetching. When set
1729           to the get method, post is attempted only as fallback in case of
1730           failure. When set to post, only the post method is ever used.
1731
1732       ocsp-timeout
1733           The time until an OCSP request is aborted and considered failed.
1734           The default value is 2 seconds.
1735
1736       ocsp-uri
1737           The URI to use for OCSP requests instead of the default OCSP URI
1738           listed in the CA certificate. This requires the ocsp-trustname
1739           option to be set to the nick (friendly name) of the OCSP server
1740           certificate, which needs to be present in the NSS database. These
1741           option combined with the next option sets the OCSP default
1742           responder.
1743
1744       ocsp-trustname
1745           The nickname of the certificate that has been imported into the NSS
1746           database of the server handling the OCSP requests. This requires
1747           the ocsp-uri option to be set as well. This option and the previous
1748           options sets the OCSP default responder.
1749
1750       ocsp-cache-size
1751           The maximum size (in number of certificates) of OCSP responses that
1752           will be kept in the cache. The default is 1000. Setting this value
1753           to 0 means the cache is disabled.
1754
1755       ocsp-cache-min-age
1756           The minimum age (in seconds) before a new fetch will be attempted.
1757           The default is 1 hour.
1758
1759       ocsp-cache-max-age
1760           The maximum age (in seconds) before a new fetch will be attempted.
1761           The default is 1 day.
1762
1763       syslog
1764           the syslog(2) “facility” name and priority to use for
1765           startup/shutdown log messages, default daemon.error.
1766
1767       plutodebug
1768           how much Pluto debugging output should be logged. An empty value,
1769           or the magic value none, means no debug output (the default).
1770           Otherwise only the specified types of output (a quoted list, names
1771           without the --debug- prefix, separated by white space) are enabled;
1772
1773           The current option values are base that represents moderate amounts
1774           of information, cpu-usage for getting timing/load based information
1775           (best used without any other debugging options), crypt for all
1776           crypto related operations and tmi (Too Much Information) for
1777           excessive logging. To log any sensitive private key or password
1778           material, use the special private value.
1779
1780           The old plutodebug options (control, controlmore, x509, kernel,
1781           etc) are mapped to either base or tmi. Note that all maps to base
1782           and not tmi.
1783
1784       uniqueids
1785           Whether IDs should be considered identifying remote parties
1786           uniquely. Acceptable values are yes (the default) and no.
1787           Participant IDs normally are unique, so a new connection instance
1788           using the same remote ID is almost invariably intended to replace
1789           an old existing connection.
1790
1791           When the connection is defined to be a server (using xauthserver=)
1792           and the connection policy is authby=secret, this option is ignored
1793           (as of 3.20) and old connections will never be replaced. This
1794           situation is commonly known as clients using a "Group ID".
1795
1796           This option may disappear in the near future. People using
1797           identical X.509 certificates on multiple devices are urged to
1798           upgrade to use separate certificates per client and device.
1799
1800       logfile
1801           do not use syslog, but rather log to stderr, and direct stderr to
1802           the argument file. This option used to be called plutostderrlog=
1803
1804       logappend
1805           If pluto is instructed to log to a file using logfile=, this option
1806           determines whether the log file should be appended to or
1807           overwritten. Valid options are yes (the default) to append and no
1808           to overwrite. Since on modern systems, pluto is restarted by other
1809           daemons, such as systemd, this option should be left at its default
1810           yes value to preserve the log entries of previous runs of pluto.
1811           The option is mainly of use for running the test suite, which needs
1812           to create new log files from scratch.
1813
1814       logip
1815           If pluto is instructed to log the IP address of incoming
1816           connections. Valid options are yes (the default) and no. Note that
1817           this only affects regular logging. Any enabled debugging via
1818           plutodebug= will still contain IP addresses of peers. This option
1819           is mostly meant for servers that want to avoid logging IP addresses
1820           of incoming clients. Other identifiable information might still be
1821           logged, such as ID payloads and X.509 certificate details. When
1822           using ID of type IP address, this option will not hide the actual
1823           IP address as part of the ID. Most deployments will not want to
1824           change this from the default. If logging of IP addresses is
1825           unwanted, audit-log=no should also be set.
1826
1827       audit-log
1828           Whether pluto should produce Linux Auditing System log messages. If
1829           enabled, pluto will log start, stop and fail for the negotiation of
1830           IKE and IPsec SA's. The kernel will also log success and failures
1831           for actually adding and removing IPsec SA's from the kernel's SADB.
1832           Valid options are yes(the default) and no. On non-Linux systems,
1833           this option is ignored. If enabled but the kernel is lacking audit
1834           support, audit messages are not sent. If the kernel has audit
1835           support and using it fails, pluto will abort. Note that for
1836           compliance reasons, audit log messages contain the relevant IP
1837           addresses, even if logip=no.
1838
1839       logtime
1840           When pluto is directed to log to a file using logfile=, this option
1841           determines whether or not to log the current timestamp as prefix.
1842           Values are yes (the default) or no. The no value can be used to
1843           create logs without ephemeral timestamps, such as those created
1844           when running the test suite. This option used to be called
1845           plutostderrlogtime=
1846
1847       ddos-mode
1848           The startup mode of the DDoS defense mechanism. Acceptable values
1849           are busy, unlimited or auto (the default). This option can also be
1850           given to the IKE daemon while running, for example by issuing ipsec
1851           whack --ddos--busy. When in busy mode, pluto activates anti-DDoS
1852           counter measures. Currently, counter measures consist of requiring
1853           IKEv2 anti-DDoS cookies on new incoming IKE requests, and a more
1854           aggressive cleanup of partially established or AUTH_NULL
1855           connections.
1856
1857       ddos-ike-threshold
1858           The number of half-open IKE SAs before the pluto IKE daemon will be
1859           placed in busy mode. When in busy mode, pluto activates anti-DDoS
1860           counter measures. The default is 25000. See also ddos-mode and
1861           ipsec whack --ddos-XXX.
1862
1863       global-redirect
1864           Whether to send requests for the remote peer to redirect IKE/IPsec
1865           SA's during IKE_SA_INIT. Valid options are no (the default), yes
1866           and auto, where auto means that the requests will be sent if DDoS
1867           mode is active (see ddos-mode). If set, the option
1868           global-redirect-to= must also be set to indicate where to redirect
1869           peers to. For specific connection redirection after IKE SA
1870           authentication, see the send-redirect= and redirect-to= options.
1871           This configuration can be changed at runtime via the ipsec whack
1872           --global-redirect command.
1873
1874       global-redirect-to
1875           Where to send remote peers to via the global-redirect option. This
1876           can be a list, or a single entry, of IP addresses or hostnames
1877           (FQDNs). If there is a list of entries, they must be separated with
1878           comma's. One specified entry means all peers will be redirected to
1879           it, while multiple specified entries means peers will be evenly
1880           distributed across the specified servers. This configuration can be
1881           changed at runtime via the ipsec whack --global-redirect-to
1882           command.
1883
1884       max-halfopen-ike
1885           The number of half-open IKE SAs before the IKE daemon starts
1886           refusing all new IKE attempts. Established IKE peers are not
1887           affected. The default value is 50000.
1888
1889       shuntlifetime
1890           The time until bare shunts (kernel policies not associated with
1891           connections) are deleted from the kernel. The default value is 15m.
1892           When using Opportunistic Encryption to a specific host fails, the
1893           system will either install a %pass or %hold shunt to let the
1894           traffic out clear text or block it. During the the shuntlifetime,
1895           no new Opportunistic Encryption attempt will be started, although
1896           the system will still respond to incoming OE requests from the
1897           remote IP. See also failureshunt and negotiationshunt
1898
1899       xfrmlifetime
1900           The time in seconds until the NETKEY/XFRM acquire state times out.
1901           The default value is 300 seconds. For auto=ondemand connections and
1902           Opportunistic connections an IPsec policy is installed in the
1903           kernel. If an incoming or outgoing packet matches this policy, a
1904           state is created in the kernel and the kernel sends an ACQUIRE
1905           message to the IKE daemon pluto. While this state is in place, no
1906           new acquires will come in for this connection. The default should
1907           be fine for most people. One use case of shortening these is if
1908           opportunistc encryption is used towards cloud instances that can
1909           quickly re-use IP addresses. This value is only used during the
1910           libreswan startup process by the ipsec _stackmanager helper. See
1911           also failureshunt and negotiationshunt
1912
1913       dumpdir
1914           in what directory should things started by setup (notably the Pluto
1915           daemon) be allowed to dump core? The default value is
1916           /var/run/pluto. When SELinux runs in enforced mode, changing this
1917           requires a similar change in the SELinux policy for the pluto
1918           daemon.
1919
1920       statsbin
1921           This option specifies an optional external program to report tunnel
1922           state changes too. The default is not to report tunnel state
1923           changes. This program can be used to notify the user's desktop
1924           (dbus, NetworkManager) or to report tunnel changes to a central
1925           logging server.
1926
1927       ipsecdir
1928           Specifies a directory for administrator-controlled configuration
1929           files and directories. The default value is /etc/ipsec.d. It may
1930           contain the following files and directories:
1931
1932           passwd
1933               (optional) for XAUTH support if not using PAM (this file should
1934               not be world-readable). See README.XAUTH for more information.
1935
1936           nsspassword
1937               (optional) passwords needed to unlock the NSS database in
1938               /var/lib/ipsec/nss (this file should not be world-readable).
1939               See README.nss for more information.
1940
1941           policies/
1942               a directory containing policy group configuration information.
1943               See POLICY GROUP FILES in this document for more information.
1944
1945           cacerts/
1946               DEPRECATED: a directory to store trust anchors (root
1947               certificate authority certificates). The preferred (and
1948               default) approach is to store CA certs in the NSS database
1949               instead. See README.nss for more information.
1950
1951           crls/
1952               DEPRECATED: a directory to store certificate revocation lists.
1953               The preferred (and default) approach is to store CRLs in the
1954               NSS database instead. See README.nss for more information.
1955
1956           When SELinux runs in enforced mode, changing this requires a
1957           similar change in the SELinux policy for the pluto daemon.
1958
1959       nssdir
1960           Specifies a directory for NSS database files. The default value is
1961           /var/lib/ipsec/nss. It may contain the following files:
1962
1963           pkcs11.txt
1964               Detailed info about NSS database creation parameteres.
1965
1966           cert9.db
1967               NSS Certificate database.
1968
1969           key4.db
1970               NSS Key database.
1971
1972           When SELinux runs in enforced mode, changing this requires a
1973           similar change in the SELinux policy for the pluto daemon.
1974
1975       secretsfile
1976           pathname of the file that stores the secret credentials such as
1977           preshared keys (PSKs). See man ipsec.secrets for the syntax. The
1978           default value is /etc/ipsec.secrets.
1979
1980       seccomp
1981           Set the seccomp kernel syscall whitelisting feature. When set to
1982           enabled, if pluto calls a syscall that is not on the compiled-in
1983           whitelist, the kernel will assume an exploit is attempting to use
1984           pluto for malicious access to the system and terminate the pluto
1985           daemon. When set to tolerant, the kernel will only block the rogue
1986           syscall and pluto will attempt to continue. If set to disabled,
1987           pluto is allowed to call any syscall offered by the kernel,
1988           although it might be restricted via other security mechanisms, such
1989           as capabilities, SElinux, AppArmor or other OS security features.
1990
1991           The current default is disabled, but it is expected that in the
1992           future this feature will be enabled on all supported operating
1993           systems. Similarly, it is expected that further privilege
1994           separation will reduce the allowed syscalls - for example for the
1995           crypto helpers or DNS helpers.
1996
1997           Warning: The restrictions of pluto are inherited by the updown
1998           scripts, so these scripts are also not allowed to use syscalls that
1999           are forbidden for pluto.
2000
2001           This feature can be tested using ipsec whack --seccomp-crashtest.
2002           Warning: With seccomp=enabled, pluto will be terminated by the
2003           kernel. With seccomp=tolerant or seccomp=disabled, pluto will
2004           report the results of the seccomp test. SECCOMP will log the
2005           forbidden syscall numbers to the audit log, but only with
2006           seccomp=enabled. The tool scmp_sys_resolver from the libseccomp
2007           development package can be used to translate the syscall number
2008           into a name. See programs/pluto/pluto_seccomp.c for the list of
2009           allowed syscalls.
2010
2011       dnssec-enable
2012           Whether pluto should perform dnssec validation using libunbound,
2013           provided libreswan was compiled with USE_DNSSEC. A value of yes
2014           (the default) means pluto should perform DNSSEC validation. Note
2015           that pluto reads the file /etc/resolv.conf to determine which
2016           nameservers to use.
2017
2018       dnssec-rootkey-file
2019           The location of the DNSSEC root zone public key file. The default
2020           is /var/lib/unbound/root.key but this can be changed at compile
2021           time.
2022
2023       dnssec-anchors
2024           The location of a file containing additional DNSSEC Trust Anchors.
2025           This can be used when a network is using split-DNS and the internal
2026           hierarchy is using DNSSEC trust anchors. There is no default value.
2027

IMPLICIT CONNS

2029       The system automatically defines several conns to implement default
2030       policy groups. Each can be overridden by explicitly defining a new conn
2031       with the same name. If the new conn has auto=ignore, the definition is
2032       suppressed.
2033
2034       Here are the automatically supplied definitions.
2035
2036
2037           conn clear
2038                type=passthrough
2039                authby=never
2040                left=%defaultroute
2041                right=%group
2042                auto=route
2043
2044           conn clear-or-private
2045                type=passthrough
2046                left=%defaultroute
2047                leftid=%myid
2048                right=%opportunisticgroup
2049                failureshunt=passthrough
2050                keyingtries=3
2051                ikelifetime=1h
2052                salifetime=1h
2053                rekey=no
2054                auto=route
2055
2056           conn private-or-clear
2057                type=tunnel
2058                left=%defaultroute
2059                leftid=%myid
2060                right=%opportunisticgroup
2061                failureshunt=passthrough
2062                keyingtries=3
2063                ikelifetime=1h
2064                salifetime=1h
2065                rekey=no
2066                auto=route
2067
2068           conn private
2069                type=tunnel
2070                left=%defaultroute
2071                leftid=%myid
2072                right=%opportunisticgroup
2073                failureshunt=drop
2074                keyingtries=3
2075                ikelifetime=1h
2076                salifetime=1h
2077                rekey=no
2078                auto=route
2079
2080           conn block
2081                type=reject
2082                authby=never
2083                left=%defaultroute
2084                right=%group
2085                auto=route
2086
2087           # default policy
2088           conn packetdefault
2089                type=tunnel
2090                left=%defaultroute
2091                leftid=%myid
2092                left=0.0.0.0/0
2093                right=%opportunistic
2094                failureshunt=passthrough
2095                keyingtries=3
2096                ikelifetime=1h
2097                salifetime=1h
2098                rekey=no
2099                auto=route
2100
2101       These conns are not affected by anything in conn %default. They will
2102       only work if %defaultroute works. The leftid will be the interfaces IP
2103       address; this requires that reverse DNS records be set up properly.
2104
2105       The implicit conns are defined after all others. It is appropriate and
2106       reasonable to use also=private-or-clear (for example) in any other
2107       opportunistic conn.
2108

POLICY GROUP FILES

2110       The optional files under /etc/ipsec.d/policies, including
2111
2112
2113           /etc/ipsec.d/policies/clear
2114           /etc/ipsec.d/policies/clear-or-private
2115           /etc/ipsec.d/policies/private-or-clear
2116           /etc/ipsec.d/policies/private
2117           /etc/ipsec.d/policies/block
2118
2119
2120       may contain policy group configuration information to supplement
2121       ipsec.conf. Their contents are not security-sensitive.
2122
2123       These files are text files. Each consists of a list of CIDR blocks, one
2124       per line. White space followed by # followed by anything to the end of
2125       the line is a comment and is ignored, as are empty lines.
2126
2127       A connection in ipsec.conf that has right=%group or
2128       right=%opportunisticgroup is a policy group connection. When a policy
2129       group file of the same name is loaded, with
2130
2131            ipsec auto --rereadgroups
2132
2133       or at system start, the connection is instantiated such that each CIDR
2134       block serves as an instance's right value. The system treats the
2135       resulting instances as normal connections.
2136
2137       For example, given a suitable connection definition private, and the
2138       file /etc/ipsec.d/policies/private with an entry 192.0.2.3, the system
2139       creates a connection instance private#192.0.2.3.  This connection
2140       inherits all details from private, except that its right client is
2141       192.0.2.3.
2142

DEFAULT POLICY GROUPS

2144       The standard Libreswan install includes several policy groups which
2145       provide a way of classifying possible peers into IPsec security
2146       classes: private (talk encrypted only), private-or-clear (prefer
2147       encryption), clear-or-private (respond to requests for encryption),
2148       clear and block. Implicit policy groups apply to the local host only,
2149       and are implemented by the IMPLICIT CONNECTIONS described above.
2150

CHOOSING A CONNECTION [THIS SECTION IS EXTREMELY OUT OF DATE

2152       When choosing a connection to apply to an outbound packet caught with a
2153       %trap, the system prefers the one with the most specific eroute that
2154       includes the packet's source and destination IP addresses. Source
2155       subnets are examined before destination subnets. For initiating, only
2156       routed connections are considered. For responding, unrouted but added
2157       connections are considered.
2158
2159       When choosing a connection to use to respond to a negotiation that
2160       doesn't match an ordinary conn, an opportunistic connection may be
2161       instantiated. Eventually, its instance will be /32 -> /32, but for
2162       earlier stages of the negotiation, there will not be enough information
2163       about the client subnets to complete the instantiation.
2164

FILES

2166           /etc/ipsec.conf
2167           /etc/ipsec.d/policies/clear
2168           /etc/ipsec.d/policies/clear-or-private
2169           /etc/ipsec.d/policies/private-or-clear
2170           /etc/ipsec.d/policies/private
2171           /etc/ipsec.d/policies/block
2172

SEE ALSO

2174       ipsec(8), ipsec_auto(8), ipsec_rsasigkey(8)
2175

HISTORY

2177       Designed for the FreeS/WAN project <https://www.freeswan.org> by Henry
2178       Spencer.
2179

BUGS

2181       Before reporting new bugs, please ensure you are using the latest
2182       version of Libreswan, and if not using KLIPS, please ensure you are
2183       using the latest kernel code for your IPsec stack.
2184
2185       When type or failureshunt is set to drop or reject, Libreswan blocks
2186       outbound packets using eroutes, but assumes inbound blocking is handled
2187       by the firewall. Libreswan offers firewall hooks via an “updown”
2188       script. However, the default ipsec _updown provides no help in
2189       controlling a modern firewall.
2190
2191       Including attributes of the keying channel (authentication methods,
2192       ikelifetime, etc.) as an attribute of a connection, rather than of a
2193       participant pair, is dubious and incurs limitations.
2194
2195       The use of %any with the protoport= option is ambiguous. Should the SA
2196       permits any port through or should the SA negotiate any single port
2197       through? The first is a basic conn with a wildcard. The second is a
2198       template. The second is the current behaviour, and it's wrong for quite
2199       a number of uses involving TCP. The keyword %one may be introduced in
2200       the future to separate these two cases.
2201
2202       It would be good to have a line-continuation syntax, especially for the
2203       very long lines involved in RSA signature keys.
2204
2205       First packet caching is only implemented for the KLIPS(NG) and MAST
2206       stacks. NETKEY returns POSIX-breaking responses, visible as connect:
2207       Resource temporarily unavailable errors. This affects Opportunistic
2208       Encryption and DPD. Functionality on the BSD and Windows stacks is
2209       unknown.
2210
2211       Some state information is only available when using KLIPS, and will
2212       return errors on other IPsec stacks. These include ipsec eroute, ipsec
2213       spi and ipsec look.
2214
2215       Multiple L2TP clients behind the same NAT router, and multiple L2TP
2216       clients behind different NAT routers using the same Virtual IP is
2217       currently only working for the KLIPSNG stack.
2218
2219       The ability to specify different identities, authby, and public keys
2220       for different automatic-keyed connections between the same participants
2221       is misleading; this doesn't work dependably because the identity of the
2222       participants is not known early enough. This is especially awkward for
2223       the “Road Warrior” case, where the remote IP address is specified as
2224       0.0.0.0, and that is considered to be the “participant” for such
2225       connections.
2226
2227       If conns are to be added before DNS is available, left=FQDN,
2228       leftnextop=FQDN, and leftrsasigkey=%dnsonload will fail.
2229       ipsec_pluto(8) does not actually use the public key for our side of a
2230       conn but it isn't generally known at a add-time which side is ours
2231       (Road Warrior and Opportunistic conns are currently exceptions).
2232
2233       The myid option does not affect explicit
2234        ipsec auto --add or ipsec auto --replace commands for implicit conns.
2235

AUTHOR

2237       Paul Wouters
2238           documenter
2239
2240
2241
2242libreswan                         02/21/2021                     IPSEC.CONF(5)
Impressum