ipsec.conf: conn Reference » History » Version 34
Tobias Brunner, 08.07.2010 08:37
reqid added
1 | 21 | Andreas Steffen | h1. conn <name> |
---|---|---|---|
2 | 1 | Martin Willi | |
3 | 1 | Martin Willi | |
4 | 23 | Tobias Brunner | h2. general per connection parameters |
5 | 21 | Andreas Steffen | |
6 | 23 | Tobias Brunner | _ah = <algorithms>_ |
7 | 31 | Martin Willi | |
8 | 23 | Tobias Brunner | p((. AH authentication algorithm to be used for the connection, e.g. _hmac-md5_. |
9 | 21 | Andreas Steffen | |
10 | 23 | Tobias Brunner | _also = <section name>_ |
11 | 31 | Martin Willi | |
12 | 23 | Tobias Brunner | p((. includes conn section <name>. |
13 | 1 | Martin Willi | |
14 | 23 | Tobias Brunner | _auth = *esp* | ah_ |
15 | 31 | Martin Willi | |
16 | 23 | Tobias Brunner | p((. whether authentication should be done as part of ESP encryption, or separately using the AH protocol. |
17 | 1 | Martin Willi | The IKEv2 daemon currently supports ESP only. |
18 | 1 | Martin Willi | |
19 | 24 | Andreas Steffen | _authby = *pubkey* | rsasig | ecdsasig | psk | secret | xauthrsasig | xauthpsk | eap | never_ |
20 | 31 | Martin Willi | |
21 | 1 | Martin Willi | p((. how the two security gateways should authenticate each other; acceptable values are *secret* or *psk* |
22 | 25 | Andreas Steffen | for pre-shared secrets, *pubkey* for public key signatures as well as the synonyms *rsasig* for RSA digital |
23 | 24 | Andreas Steffen | signatures and *ecdsasig* for Elliptic Curve DSA signatures. *never* can be used if negotiation is never |
24 | 24 | Andreas Steffen | to be attempted or accepted (useful for shunt-only conns). Digital signatures are superior in every way to |
25 | 24 | Andreas Steffen | shared secrets. In IKEv2, the two ends must not agree on this parameter, it is relevant for the out-bound |
26 | 21 | Andreas Steffen | authentication method only. IKEv1 additionally supports the values *xauthpsk* and *xauthrsasig* that |
27 | 21 | Andreas Steffen | will enable _eXtended AUTHentication (XAUTH)_ in addition to IKEv1 main mode based on shared secrets |
28 | 21 | Andreas Steffen | or digital RSA signatures, respectively. IKEv2 additionally supports the value *eap*, which indicates |
29 | 21 | Andreas Steffen | an initiator to request EAP authentication. The EAP method to use is selected by the server (see _eap_). |
30 | 20 | Andreas Steffen | This parameter is deprecated for IKEv2 connections, as two peers do ot need to agree on an authentication |
31 | 21 | Andreas Steffen | method. Use the _left|rightauth_ parameter to define authentication methods in IKEv2. |
32 | 20 | Andreas Steffen | |
33 | 23 | Tobias Brunner | _auto = *ignore* | add | route | start_ |
34 | 31 | Martin Willi | |
35 | 23 | Tobias Brunner | p((. what operation, if any, should be done automatically at IPsec startup. *add* loads a connection without |
36 | 21 | Andreas Steffen | starting it. *route* loads a connection and installs kernel traps. If traffic is detected between |
37 | 21 | Andreas Steffen | _leftsubnet_ and _rightsubnet_, a connection is established. *start* loads a connection and brings |
38 | 21 | Andreas Steffen | it up immediatly. *ignore* ignores the connection. This is equal to delete a connection from the config |
39 | 1 | Martin Willi | file. Relevant only locally, other end need not agree on it (but in general, for an intended-to-be-permanent |
40 | 23 | Tobias Brunner | connection, both ends should use _auto = *start*_ to ensure that any reboot causes immediate renegotiation). |
41 | 1 | Martin Willi | |
42 | 23 | Tobias Brunner | _compress = yes | *no*_ |
43 | 31 | Martin Willi | |
44 | 23 | Tobias Brunner | p((. whether IPComp compression of content is proposed on the connection (link-level compression does not work on |
45 | 21 | Andreas Steffen | encrypted data, so to be effective, compression must be done before encryption). A value of *yes* causes IPsec |
46 | 4 | Martin Willi | to propose both compressed and uncompressed, and prefer compressed. A value of no prevents IPsec from proposing |
47 | 33 | Tobias Brunner | compression; a proposal to compress will still be accepted. |
48 | 1 | Martin Willi | |
49 | 23 | Tobias Brunner | _dpdaction = *none* | clear | hold | restart_ |
50 | 31 | Martin Willi | |
51 | 23 | Tobias Brunner | p((. controls the use of the Dead Peer Detection protocol (DPD, RFC 3706) where R_U_THERE notification messages |
52 | 1 | Martin Willi | (IKEv1) or empty INFORMATIONAL messages (IKEv2) are periodically sent in order to check the liveliness of the |
53 | 21 | Andreas Steffen | IPsec peer. The values *clear*, *hold*, and *restart* all activate DPD. If no activity is detected, |
54 | 21 | Andreas Steffen | all connections with a dead peer are stopped and unrouted (*clear*), put in the hold state (*hold*) |
55 | 21 | Andreas Steffen | or restarted (*restart*). For IKEv1, the default is *none* which disables the active sending of |
56 | 1 | Martin Willi | R_U_THERE notifications. Nevertheless Pluto will always send the DPD Vendor ID during connection set up |
57 | 1 | Martin Willi | in order to signal the readiness to act passively as a responder if the peer wants to use DPD. For IKEv2, |
58 | 21 | Andreas Steffen | *none* does't make sense, since all messages are used to detect dead peers. If specified, it has the |
59 | 21 | Andreas Steffen | same meaning as the default (*clear*). |
60 | 1 | Martin Willi | |
61 | 23 | Tobias Brunner | _dpddelay = <time>_ |
62 | 31 | Martin Willi | |
63 | 23 | Tobias Brunner | p((. defines the period time interval with which R_U_THERE messages/INFORMATIONAL exchanges are sent to the peer. |
64 | 1 | Martin Willi | These are only sent if no other traffic is received. In IKEv2, a value of 0 sends no additional INFORMATIONAL |
65 | 1 | Martin Willi | messages and uses only standard messages (such as those to rekey) to detect dead peers. |
66 | 1 | Martin Willi | |
67 | 23 | Tobias Brunner | _dpdtimeout = <time>_ |
68 | 31 | Martin Willi | |
69 | 23 | Tobias Brunner | p((. defines the timeout interval, after which all connections to a peer are deleted in case of inactivity. |
70 | 1 | Martin Willi | This only applies to IKEv1, in IKEv2 the default retransmission timeout applies, as every exchange is used to |
71 | 1 | Martin Willi | detect dead peers. |
72 | 20 | Andreas Steffen | |
73 | 30 | Martin Willi | _inactivity = <time>_ |
74 | 31 | Martin Willi | |
75 | 30 | Martin Willi | p((. defines the timeout interval, after which a CHILD_SA is closed if it did not send or receive any traffic. |
76 | 30 | Martin Willi | Currently supported in IKEv2 connections only. |
77 | 30 | Martin Willi | |
78 | 23 | Tobias Brunner | _eap = aka | gtc | md5 | mschapv2 | radius | sim | <type> | <type>-<vendor>_ |
79 | 31 | Martin Willi | |
80 | 23 | Tobias Brunner | p((. defines the EAP type to be used if _authby=eap_ is selected. Currently supported values are *aka* |
81 | 21 | Andreas Steffen | for EAP-AKA, *gtc* for EAP-GTC, *md5* for EAP-MD5, *mschapv2* for EAP-MS-CHAPv2, *radius* for the |
82 | 21 | Andreas Steffen | EAP-RADIUS proxy and *sim* for EAP-SIM. |
83 | 21 | Andreas Steffen | Additionally, IANA assigned EAP method numbers are accepted, or a definition in the form *eap=type-vendor* |
84 | 1 | Martin Willi | (e.g. eap=7-12345 ) can be used to specify vendor specific EAP types. For IKEv2 this parameter is deprecated |
85 | 21 | Andreas Steffen | in favour of _left|rightauth_. |
86 | 5 | Martin Willi | |
87 | 23 | Tobias Brunner | _eap_identity = <id>_ |
88 | 31 | Martin Willi | |
89 | 23 | Tobias Brunner | p((. defines the identity the client uses to reply to an EAP Identity request. If defined on the EAP server, the defined |
90 | 21 | Andreas Steffen | identity will be used as peer identity during EAP authentication. The special value _%identity_ uses the EAP Identity method |
91 | 14 | Martin Willi | to ask the client for a EAP identity. If not defined, the IKEv2 identity will be used as EAP identity. |
92 | 1 | Martin Willi | |
93 | 23 | Tobias Brunner | _esp = <cipher suites>_ |
94 | 31 | Martin Willi | |
95 | 23 | Tobias Brunner | p((. comma-separated list of ESP encryption/authentication algorithms to be used for the connection, e.g. |
96 | 21 | Andreas Steffen | _3des-md5_. The notation is _encryption-integrity-[dhgroup]_. If _dh-group_ is specified, |
97 | 1 | Martin Willi | CHILD_SA setup and rekeying include a separate Diffe-Hellman exchange (IKEv2 only). |
98 | 1 | Martin Willi | |
99 | 23 | Tobias Brunner | _forceencaps = yes | *no*_ |
100 | 31 | Martin Willi | |
101 | 23 | Tobias Brunner | p((. Force UDP encapsulation for ESP packets even if no NAT situation is detected. |
102 | 1 | Martin Willi | This may help to surmount restrictive firewalls. In order to force the peer to |
103 | 1 | Martin Willi | encapsulate packets, NAT detection payloads are faked (IKEv2 only). |
104 | 1 | Martin Willi | |
105 | 23 | Tobias Brunner | _ike = <cipher suites>_ |
106 | 31 | Martin Willi | |
107 | 23 | Tobias Brunner | p((. comma-separated list of IKE/ISAKMP SA encryption/authentication algorithms to be used, e.g. |
108 | 21 | Andreas Steffen | _aes128-sha1-modp2048_. The notation is _encryption-integrity-dhgroup_. In IKEv2, multiple algorithms |
109 | 21 | Andreas Steffen | and proposals may be included, such as _aes128-aes256-sha1-modp1536-modp2048,3des-sha1-md5-modp1024_. |
110 | 20 | Andreas Steffen | |
111 | 23 | Tobias Brunner | _ikelifetime = *3h* | <time>_ |
112 | 31 | Martin Willi | |
113 | 23 | Tobias Brunner | p((. how long the keying channel of a connection (_ISAKMP or IKE SA_) should last before being renegotiated. |
114 | 1 | Martin Willi | |
115 | 23 | Tobias Brunner | _installpolicy = *yes* | no_ |
116 | 31 | Martin Willi | |
117 | 23 | Tobias Brunner | p((. decides whether IPsec policies are installed in the kernel by the IKEv2 charon daemon for a given connection. |
118 | 21 | Andreas Steffen | Allows peaceful cooperation e.g. with the Mobile IPv6 _mip6d_ daemon who wants to control the kernel policies. |
119 | 1 | Martin Willi | |
120 | 23 | Tobias Brunner | _keyexchange = *ike* | ikev1 | ikev2_ |
121 | 31 | Martin Willi | |
122 | 23 | Tobias Brunner | p((. method of key exchange; which protocol should be used to initialize the connection. Connections marked with |
123 | 21 | Andreas Steffen | *ikev1* are initiated with Pluto, those marked with *ikev2* with Charon. An incoming request from |
124 | 21 | Andreas Steffen | the remote peer is handled by the correct daemon, unaffected from the _keyexchange_ setting. The default |
125 | 21 | Andreas Steffen | value *ike* currently is a synonym for *ikev1*. |
126 | 20 | Andreas Steffen | |
127 | 23 | Tobias Brunner | _keyingtries = *%forever* | <number>_ |
128 | 31 | Martin Willi | |
129 | 23 | Tobias Brunner | p((. how many attempts (a whole number or _%forever_) should be made to negotiate a connection, or a replacement |
130 | 21 | Andreas Steffen | for one, before giving up. The value _%forever_ means 'never give up'. Relevant only locally, other end need |
131 | 1 | Martin Willi | not agree on it. |
132 | 5 | Martin Willi | |
133 | 26 | Tobias Brunner | _keylife_ |
134 | 31 | Martin Willi | |
135 | 26 | Tobias Brunner | p((. synonym for _lifetime_. |
136 | 26 | Tobias Brunner | |
137 | 26 | Tobias Brunner | _lifebytes = <number>_ |
138 | 31 | Martin Willi | |
139 | 26 | Tobias Brunner | p((. the number of bytes transmitted over an IPsec SA before it expires (IKEv2 only). |
140 | 26 | Tobias Brunner | |
141 | 26 | Tobias Brunner | _lifepackets = <number>_ |
142 | 31 | Martin Willi | |
143 | 26 | Tobias Brunner | p((. the number of packets transmitted over an IPsec SA before it expires (IKEv2 only). |
144 | 26 | Tobias Brunner | |
145 | 26 | Tobias Brunner | _lifetime = *1h* | <time>_ |
146 | 31 | Martin Willi | |
147 | 1 | Martin Willi | p((. how long a particular instance of a connection (a set of encryption/authentication keys for user packets) |
148 | 21 | Andreas Steffen | should last, from successful negotiation to expiry; acceptable values are an integer optionally followed by |
149 | 1 | Martin Willi | _s_ (a time in seconds) or a decimal number followed by _m_, _h_, or _d_ (a time in minutes, hours, |
150 | 21 | Andreas Steffen | or days respectively) (default _1h_, maximum _24h_). Normally, the connection is renegotiated (via the |
151 | 26 | Tobias Brunner | keying channel) before it expires (see _margintime_). The two ends need not exactly agree on _lifetime_, although if they |
152 | 1 | Martin Willi | do not, there will be some clutter of superseded connections on the end which thinks the lifetime is longer. |
153 | 1 | Martin Willi | |
154 | 26 | Tobias Brunner | _marginbytes = <number>_ |
155 | 31 | Martin Willi | |
156 | 26 | Tobias Brunner | p((. how many bytes before IPsec SA expiry (see _lifebytes_) should attempts to negotiate a replacement begin (IKEv2 only). |
157 | 26 | Tobias Brunner | |
158 | 26 | Tobias Brunner | _marginpackets = <number>_ |
159 | 31 | Martin Willi | |
160 | 26 | Tobias Brunner | p((. how many packets before IPsec SA expiry (see _lifepackets_) should attempts to negotiate a replacement begin (IKEv2 only). |
161 | 26 | Tobias Brunner | |
162 | 26 | Tobias Brunner | _margintime = *9m* | <time>_ |
163 | 31 | Martin Willi | |
164 | 26 | Tobias Brunner | p((. how long before connection expiry or keying-channel expiry should attempts to negotiate a replacement begin; acceptable values |
165 | 26 | Tobias Brunner | as for _lifetime_ (default _9m_). Relevant only locally, other end need not agree on it. |
166 | 26 | Tobias Brunner | |
167 | 23 | Tobias Brunner | _mobike = *yes* | no_ |
168 | 31 | Martin Willi | |
169 | 23 | Tobias Brunner | p((. enables the IKEv2 [[MobIke|MOBIKE]] protocol defined by RFC 4555. If set to *no*, the IKEv2 charon |
170 | 21 | Andreas Steffen | daemon will not actively propose [[MobIke|MOBIKE]] but will still accept and support the mobility protocol |
171 | 1 | Martin Willi | as a responder. |
172 | 1 | Martin Willi | |
173 | 23 | Tobias Brunner | _modeconfig = push | *pull*_ |
174 | 31 | Martin Willi | |
175 | 23 | Tobias Brunner | p((. defines which mode is used to assign a virtual IP. Currently relevant for IKEv1 only since IKEv2 always uses |
176 | 21 | Andreas Steffen | the configuration payload in *pull* mode. Cisco VPN gateways usually operate in *push* mode. |
177 | 1 | Martin Willi | |
178 | 21 | Andreas Steffen | _pfs = *yes* | no_ |
179 | 31 | Martin Willi | |
180 | 1 | Martin Willi | p((. whether _Perfect Forward Secrecy_ of keys is desired on the connection's keying channel (with PFS, |
181 | 1 | Martin Willi | penetration of the key-exchange protocol does not compromise keys negotiated earlier). IKEv2 always uses |
182 | 23 | Tobias Brunner | PFS for IKE_SA rekeying whereas for CHILD_SA rekeying PFS is enforced by defining a Diffie-Hellman dhgroup |
183 | 23 | Tobias Brunner | in the _esp_ parameter. |
184 | 21 | Andreas Steffen | |
185 | 20 | Andreas Steffen | _pfsgroup = <modp group>_ |
186 | 31 | Martin Willi | |
187 | 20 | Andreas Steffen | p((. defines a Diffie-Hellman group for _perfect forward secrecy_ in IKEv1 Quick Mode differing from the DH group |
188 | 23 | Tobias Brunner | used for IKEv1 Main Mode (IKEv1 pluto daemon only). |
189 | 23 | Tobias Brunner | |
190 | 1 | Martin Willi | _reauth = *yes* | no_ |
191 | 31 | Martin Willi | |
192 | 1 | Martin Willi | p((. whether rekeying of an IKE_SA should also reauthenticate the peer. In IKEv1, reauthentication is always done. |
193 | 4 | Martin Willi | In IKEv2, a value of *no* rekeys without uninstalling the IPsec SAs, a value of *yes* (the default) |
194 | 23 | Tobias Brunner | creates a new IKE_SA from scratch and tries to recreate all IPsec SAs. |
195 | 23 | Tobias Brunner | |
196 | 1 | Martin Willi | _rekey = *yes* | no_ |
197 | 31 | Martin Willi | |
198 | 1 | Martin Willi | p((. whether a connection should be renegotiated when it is about to expire. The two ends need not agree, but |
199 | 1 | Martin Willi | while a value of no prevents Pluto/Charon from requesting renegotiation, it does not prevent responding |
200 | 1 | Martin Willi | to renegotiation requested from the other end, so no will be largely ineffective unless both ends agree on it. |
201 | 1 | Martin Willi | |
202 | 1 | Martin Willi | _rekeyfuzz = *100%* | <percentage>_ |
203 | 31 | Martin Willi | |
204 | 26 | Tobias Brunner | p((. maximum percentage by which _marginbytes_, _marginpackets_ and _margintime_ should be randomly increased to randomize |
205 | 26 | Tobias Brunner | rekeying intervals (important for hosts with many connections); acceptable values are an integer, which may exceed 100, |
206 | 26 | Tobias Brunner | followed by a '%' . |
207 | 26 | Tobias Brunner | The value of _marginTYPE_, after this random increase, must not exceed _lifeTYPE_ (where TYPE is one of bytes, packets or type). |
208 | 26 | Tobias Brunner | The value _0%_ will suppress randomization. Relevant only locally, other end need not agree on it. |
209 | 16 | Andreas Steffen | |
210 | 26 | Tobias Brunner | _rekeymargin_ |
211 | 31 | Martin Willi | |
212 | 26 | Tobias Brunner | p((. synonym for _margintime_. |
213 | 23 | Tobias Brunner | |
214 | 34 | Tobias Brunner | _reqid_ |
215 | 34 | Tobias Brunner | |
216 | 34 | Tobias Brunner | p((. sets the reqid for a given connection to a pre-configured fixed value (IKEv2 only). |
217 | 34 | Tobias Brunner | |
218 | 21 | Andreas Steffen | _type = *tunnel* | transport | transport_proxy | passthrough | drop | reject_ |
219 | 31 | Martin Willi | |
220 | 21 | Andreas Steffen | p((. the type of the connection; currently the accepted values are *tunnel*, signifying a host-to-host, |
221 | 21 | Andreas Steffen | host-to-subnet, or subnet-to-subnet tunnel; *transport*, signifying host-to-host transport mode; |
222 | 21 | Andreas Steffen | *transport_proxy*, signifying the special Mobile IPv6 transport proxy mode; |
223 | 23 | Tobias Brunner | *passthrough*, signifying that no IPsec processing should be done at all; *drop*, signifying that packets |
224 | 20 | Andreas Steffen | should be discarded; and *reject*, signifying that packets should be discarded and a diagnostic ICMP |
225 | 23 | Tobias Brunner | returned. Charon currently supports only *tunnel*, transport, and transport_proxy connection types. |
226 | 23 | Tobias Brunner | |
227 | 20 | Andreas Steffen | _xauth = *client* | server_ |
228 | 31 | Martin Willi | |
229 | 23 | Tobias Brunner | p((. specifies the role in the XAUTH protocol if activated by _authby=xauthpsk_ or _authby=xauthrsasig_. |
230 | 20 | Andreas Steffen | |
231 | 23 | Tobias Brunner | h2. left|right end parameters |
232 | 23 | Tobias Brunner | |
233 | 27 | Daniel Mentz | Connection descriptions are defined in terms of a left endpoint and a right endpoint. For example, the |
234 | 27 | Daniel Mentz | two parameters leftid and rightid specify the identity of the left and the right endpoint. For every |
235 | 27 | Daniel Mentz | connection description an attempt is made to figure out whether the local endpoint should act as the left or |
236 | 27 | Daniel Mentz | the right endpoint. This is done by matching the IP addresses defined for both endpoints with the |
237 | 27 | Daniel Mentz | IP addresses assigned to local network interfaces. If a match is found then the role (left or right) that |
238 | 27 | Daniel Mentz | matches is going to be considered "local". If no match is found during startup, "left" is considered "local". |
239 | 27 | Daniel Mentz | |
240 | 1 | Martin Willi | _left|right = <ip address> | <fqdn> | %defaultroute | %any_ |
241 | 31 | Martin Willi | |
242 | 33 | Tobias Brunner | p((. (required) the IP address of the participant's public-network interface or one of several magic values. |
243 | 33 | Tobias Brunner | If it is _%%defaultroute_, the value will be filled in automatically with the local address of |
244 | 33 | Tobias Brunner | the default-route interface (as determined at IPsec startup time and during configuration |
245 | 33 | Tobias Brunner | update). Either left or right may be _%%defaultroute_, but not both. The prefix % in front of a |
246 | 29 | Daniel Mentz | fully-qualified domain name or an IP address will implicitly set _leftallowany=yes_. If the domain name |
247 | 29 | Daniel Mentz | cannot be resolved into an IP address at IPsec startup or update time then _left=%any_ and _leftallowany=no_ |
248 | 29 | Daniel Mentz | will be assumed. |
249 | 1 | Martin Willi | |
250 | 32 | Daniel Mentz | p((. In case of an IKEv2 connection, the value _%any_ for the local endpoint signifies an address to be filled in |
251 | 32 | Daniel Mentz | (by automatic keying) during negotiation. If the local peer initiates the connection setup the routing table |
252 | 32 | Daniel Mentz | will be queried to determine the correct local IP address. In case the local peer is responding to a connection |
253 | 33 | Tobias Brunner | setup then any IP address that is assigned to a local interface will be accepted. Note that specifying _%any_ |
254 | 33 | Tobias Brunner | for the local endpoint is not supported by the IKEv1 pluto daemon. |
255 | 27 | Daniel Mentz | |
256 | 33 | Tobias Brunner | p((. If _%any_ is used for the remote endpoint it literally means any IP address. |
257 | 27 | Daniel Mentz | |
258 | 33 | Tobias Brunner | p((. Please note that with the usage of wildcards multiple connection descriptions might match a given incoming |
259 | 29 | Daniel Mentz | connection attempt. The most specific description is used in that case. |
260 | 21 | Andreas Steffen | |
261 | 21 | Andreas Steffen | _left|rightallowany = yes | *no*_ |
262 | 31 | Martin Willi | |
263 | 21 | Andreas Steffen | p((. a modifier for _left|right_, making it behave as _%any_ although a concrete IP address has been |
264 | 21 | Andreas Steffen | assigned. Recommended for dynamic IP addresses that can be resolved by DynDNS at IPsec startup or update time. |
265 | 21 | Andreas Steffen | |
266 | 7 | Martin Willi | _left|rightauth = <auth method>_ |
267 | 31 | Martin Willi | |
268 | 23 | Tobias Brunner | p((. Authentication method to use locally (left) or require from the remote (right) side. This parameter is |
269 | 23 | Tobias Brunner | supported in IKEv2 only. Acceptable values are *pubkey* for public key encryption (RSA/ECDSA), *psk* |
270 | 21 | Andreas Steffen | for pre-shared key authentication, and *eap* to [require the] use of the Extensible Authentication Protocol. |
271 | 20 | Andreas Steffen | In the case of *eap*, an optional EAP method can be appended. Currently defined methods are *eap-aka*, |
272 | 20 | Andreas Steffen | *eap-sim*, *eap-gtc*, *eap-md5*, and *eap-mschapv2*. Alternatively, IANA assigned EAP method |
273 | 7 | Martin Willi | numbers are accepted. Vendor specific EAP methods are defined in the form *eap-type-vendor* (e.g. |
274 | 23 | Tobias Brunner | *eap-7-12345*). |
275 | 23 | Tobias Brunner | |
276 | 21 | Andreas Steffen | _left|rightauth2 = <auth method>_ |
277 | 31 | Martin Willi | |
278 | 1 | Martin Willi | p((. Same as _left|rightauth_, but defines a second authentication exchange. IKEv2 supports multiple authentication |
279 | 23 | Tobias Brunner | rounds using _Multiple Authentication Exchanges_ defined in "RFC 4739":http://tools.ietf.org/html/rfc4739. |
280 | 23 | Tobias Brunner | This allows e.g. a separate authentication of host and user (IKEv2 only). |
281 | 1 | Martin Willi | |
282 | 31 | Martin Willi | |
283 | 23 | Tobias Brunner | _left|rightca = <issuer dn> | %same_ |
284 | 23 | Tobias Brunner | |
285 | 23 | Tobias Brunner | p((. the distinguished name of a certificate authority which is required to lie in the trust path going from the |
286 | 23 | Tobias Brunner | _left|right_ participant's certificate up to the root certification authority. |
287 | 31 | Martin Willi | |
288 | 21 | Andreas Steffen | _left|rightca2 = <issuer dn> | %same_ |
289 | 1 | Martin Willi | |
290 | 33 | Tobias Brunner | p((. Same as _left|rightca_ but for the second authentication (IKev2 only). |
291 | 7 | Martin Willi | |
292 | 23 | Tobias Brunner | _left|rightcert = <path>_ |
293 | 31 | Martin Willi | |
294 | 23 | Tobias Brunner | p((. the path to the left|right participant's X.509 certificate. The file can be coded either in PEM or DER format. |
295 | 1 | Martin Willi | OpenPGP certificates are supported as well (IKEv1 only). Both absolute paths or paths relative to |
296 | 23 | Tobias Brunner | [[IpsecDirectoryCerts|/etc/ipsec.d/certs]] are accepted. By default _left|rightcert_ sets _left|rightid_ |
297 | 23 | Tobias Brunner | to the distinguished name of the certificate's subject and _left|rightca_ to the distinguished name of |
298 | 21 | Andreas Steffen | the certificate's issuer. The _left|right_ participant's ID can be overridden by specifying a _left|rightid_ |
299 | 7 | Martin Willi | value which must be certified by the certificate, though. |
300 | 21 | Andreas Steffen | |
301 | 33 | Tobias Brunner | _left|rightcert2 = <path>_ |
302 | 31 | Martin Willi | |
303 | 1 | Martin Willi | p((. Same as _left|rightcert_ but for the second authentication round (IKEv2 only). |
304 | 23 | Tobias Brunner | |
305 | 7 | Martin Willi | _left|rightfirewall = yes | *no*_ |
306 | 31 | Martin Willi | |
307 | 7 | Martin Willi | p((. whether the _left|right_ participant is doing forwarding-firewalling (including masquerading) |
308 | 1 | Martin Willi | using iptables for traffic from _left|rightsubnet_, which should be turned off for traffic to the |
309 | 21 | Andreas Steffen | other subnet) once the connection is established. May not be used in the same connection description with |
310 | 20 | Andreas Steffen | _left|rightupdown_. Implemented as a parameter to the default _ipsec _updown_ script. Relevant only |
311 | 23 | Tobias Brunner | locally, other end need not agree on it. |
312 | 20 | Andreas Steffen | |
313 | 20 | Andreas Steffen | p((. If one or both security gateways are doing forwarding firewalling (possibly including masquerading), |
314 | 23 | Tobias Brunner | and this is specified using the firewall parameters, tunnels established with IPsec are exempted from |
315 | 23 | Tobias Brunner | it so that packets can flow unchanged through the tunnels. (This means that all subnets connected in this |
316 | 7 | Martin Willi | manner must have distinct, non-overlapping subnet address blocks.) This is done by the default |
317 | 23 | Tobias Brunner | _ipsec _updown_ script (see pluto(8)). |
318 | 23 | Tobias Brunner | |
319 | 1 | Martin Willi | p((. In situations calling for more control, it may be preferable for the user to supply his own updown script, |
320 | 7 | Martin Willi | which makes the appropriate adjustments for his system. |
321 | 23 | Tobias Brunner | |
322 | 23 | Tobias Brunner | _left|rightgroups = <group list>_ |
323 | 31 | Martin Willi | |
324 | 1 | Martin Willi | p((. a comma-separated list of group names. If the _left|rightgroups_ parameter is present then the peer must |
325 | 7 | Martin Willi | be a member of at least one of the groups defined by the parameter. Group membership must be certified by a |
326 | 1 | Martin Willi | valid attribute certificate stored in [[IpsecDirectoryAcerts|/etc/ipsec.d/acerts]] that has been issued |
327 | 7 | Martin Willi | to the peer by a trusted Authorization Authority stored in [[IpsecDirectoryAacerts|/etc/ipsec.d/aacerts]]. |
328 | 23 | Tobias Brunner | Attribute certificates are not supported in IKEv2 yet. |
329 | 1 | Martin Willi | |
330 | 12 | Martin Willi | _left|righthostaccess = yes | *no*_ |
331 | 1 | Martin Willi | |
332 | 1 | Martin Willi | p((. inserts a pair of INPUT and OUTPUT iptables rules using the default _ipsec _updown_ script, |
333 | 1 | Martin Willi | thus allowing access to the host itself in the case where the host's internal interface is part |
334 | 1 | Martin Willi | of the negotiated client subnet. |
335 | 1 | Martin Willi | |
336 | 1 | Martin Willi | _left|rightid = <id>_ |
337 | 31 | Martin Willi | |
338 | 1 | Martin Willi | p((. how the _left|right_ participant should be identified for authentication; defaults to _left|right_. |
339 | 33 | Tobias Brunner | Can be an IP address or a fully-qualified domain name preceded by @ (which is used as a literal string and not resolved). |
340 | 23 | Tobias Brunner | |
341 | 21 | Andreas Steffen | _left|rightid2 = <id>_ |
342 | 8 | Martin Willi | |
343 | 31 | Martin Willi | p((. Identity to use for the second authentication of the left participant (IKEv2 only). |
344 | 33 | Tobias Brunner | Defaults to _left|rightid_. |
345 | 23 | Tobias Brunner | |
346 | 33 | Tobias Brunner | _leftikeport = <port>_ |
347 | 33 | Tobias Brunner | |
348 | 33 | Tobias Brunner | p((. UDP port the left participant uses for IKE communication. Currently supported in IKEv2 connections only. |
349 | 33 | Tobias Brunner | If unspecified, port 500 is used with the port floating to 4500 if a NAT is detected or MOBIKE is enabled. |
350 | 33 | Tobias Brunner | Specifying a local IKE port different from the default additionally requires a socket implementation that |
351 | 33 | Tobias Brunner | listens to this port. |
352 | 33 | Tobias Brunner | |
353 | 7 | Martin Willi | _left|rightnexthop = %direct | %defaultroute | <ip address> | <fqdn>_ |
354 | 23 | Tobias Brunner | |
355 | 23 | Tobias Brunner | p((. this parameter is usually not needed any more because the NETKEY IPsec stack does not require |
356 | 21 | Andreas Steffen | explicit routing entries for the traffic to be tunneled. If _left|sourceip_ is used with IKEv1 |
357 | 1 | Martin Willi | then _left|rightnexthop_ must still be set in order for the source routes to work properly. |
358 | 1 | Martin Willi | |
359 | 23 | Tobias Brunner | _left|rightprotoport = <protocol>/<port>_ |
360 | 31 | Martin Willi | |
361 | 23 | Tobias Brunner | p((. restrict the traffic selector to a single protocol and/or port. Examples: _leftprotoport=tcp/http_ |
362 | 1 | Martin Willi | or _leftprotoport=6/80_ or _rightprotoport=udp_ |
363 | 7 | Martin Willi | |
364 | 23 | Tobias Brunner | _left|rightrsasigkey = *%cert* | <raw rsa public key>_ |
365 | 31 | Martin Willi | |
366 | 23 | Tobias Brunner | p((. the left participant's public key for RSA signature authentication, in RFC 2537 format using ttodata(3) |
367 | 1 | Martin Willi | encoding. The default value _%cert_ means that the key is extracted from a certificate. |
368 | 1 | Martin Willi | |
369 | 1 | Martin Willi | _left|rightsendcert = never | no | *ifasked* | always | yes_ |
370 | 1 | Martin Willi | |
371 | 1 | Martin Willi | p((. Accepted values are *never* or *no*, *always* or *yes*, and *ifasked*, the latter meaning that |
372 | 1 | Martin Willi | the peer must send a certificate request (CR) payload in order to get a certificate in return. |
373 | 1 | Martin Willi | |
374 | 33 | Tobias Brunner | _leftsourceip = %config | %cfg | %modeconfig | %modecfg | <ip address>_ |
375 | 7 | Martin Willi | |
376 | 1 | Martin Willi | p((. The internal source IP to use in a tunnel, also known as [[VirtualIp|virtual IP]]. |
377 | 31 | Martin Willi | If the value is one of the synonyms _%modeconfig, %modecfg, %config_, or _%cfg_, an address is |
378 | 1 | Martin Willi | requested from the peer. In IKEv2, a statically defined address is also requested, since the server |
379 | 23 | Tobias Brunner | may change it. |
380 | 21 | Andreas Steffen | |
381 | 1 | Martin Willi | p((. If _leftsourceip=%config_ is set to request a [[VirtualIp|virtual IP]] from the peer then the |
382 | 31 | Martin Willi | responder must define the address-to-be-assigned using a separate conn section with a _rightsourceip_ |
383 | 1 | Martin Willi | statement for each client. |
384 | 33 | Tobias Brunner | |
385 | 33 | Tobias Brunner | _rightsourceip = %config | <network>/<netmask> | %poolname_ |
386 | 33 | Tobias Brunner | |
387 | 33 | Tobias Brunner | p((. The internal source IP to use in a tunnel for the remote peer. If the value is %config on the responder |
388 | 33 | Tobias Brunner | side, the initiator must propose an address which is then echoed back. Also supported are address pools |
389 | 33 | Tobias Brunner | expressed as _<network>/<netmask>_ or the use of an external IP address pool using _%%poolname_ where |
390 | 33 | Tobias Brunner | _poolname_ is the name of the IP address pool used for the lookup (see [[VirtualIp|virtual IP]] for details). |
391 | 23 | Tobias Brunner | |
392 | 23 | Tobias Brunner | _left|rightsubnet = <ip subnet>_ |
393 | 31 | Martin Willi | |
394 | 21 | Andreas Steffen | p((. private subnet behind the left participant, expressed as network/netmask (actually, any form acceptable to |
395 | 1 | Martin Willi | ttosubnet(3)); if omitted, essentially assumed to be left/32, signifying that the _left|right_ end of the |
396 | 23 | Tobias Brunner | connection goes to the _left|right_ participant only. When using IKEv2, the configured subnet of the peers |
397 | 23 | Tobias Brunner | may differ, the protocol narrows it to the greatest common subnet. Further, IKEv2 supports multiple |
398 | 21 | Andreas Steffen | subnets separated by commas. IKEv1 only interprets the first subnet of such a definition. |
399 | 21 | Andreas Steffen | |
400 | 1 | Martin Willi | _left|rightsubnetwithin = <ip subnet>_ |
401 | 31 | Martin Willi | |
402 | 1 | Martin Willi | p((. the peer can propose any subnet or single IP address that fits within the range defined by |
403 | 1 | Martin Willi | _left|rightsubnetwithin_. Not relevant for IKEv2, as subnets are narrowed. |
404 | 1 | Martin Willi | |
405 | 1 | Martin Willi | _left|rightupdown = <path>_ |
406 | 31 | Martin Willi | |
407 | 1 | Martin Willi | p((. what _updown_ script to run to adjust routing and/or firewalling when the status of the connection |
408 | 1 | Martin Willi | changes (default _ipsec _updown_). Relevant only locally, other end need not agree on it. |
409 | 1 | Martin Willi | IKEv2 uses the _updown_ script to insert firewall rules only, since routing has been implemented directly |
410 | 1 | Martin Willi | into Charon. |