source: rtems-libbsd/ipsec-tools/src/racoon/racoon.conf.5 @ b376ae1

55-freebsd-126-freebsd-12
Last change on this file since b376ae1 was ff36f5e, checked in by Christian Mauderer <christian.mauderer@…>, on 05/30/18 at 12:27:35

Import ipsec-tools 0.8.2.

Import unchanged ipsec-tools sources in the release version 0.8.2. The
homepage of ipsec-tools is http://ipsec-tools.sourceforge.net/. The
sources can be obtained from there.

  • Property mode set to 100644
File size: 46.3 KB
Line 
1.\"     $NetBSD: racoon.conf.5,v 1.61.4.1 2012/08/29 08:42:24 tteras Exp $
2.\"
3.\"     Id: racoon.conf.5,v 1.54 2006/08/22 18:17:17 manubsd Exp
4.\"
5.\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
6.\" All rights reserved.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\"    notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice, this list of conditions and the following disclaimer in the
15.\"    documentation and/or other materials provided with the distribution.
16.\" 3. Neither the name of the project nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.Dd August 29, 2012
33.Dt RACOON.CONF 5
34.Os
35.\"
36.Sh NAME
37.Nm racoon.conf
38.Nd configuration file for racoon
39.\"
40.\" .Sh SYNOPSIS
41.\"
42.Sh DESCRIPTION
43.Nm
44is the configuration file for the
45.Xr racoon 8
46ISAKMP daemon.
47.Xr racoon 8
48negotiates security associations for itself (ISAKMP SA, or phase 1 SA)
49and for kernel IPsec (IPsec SA, or phase 2 SA).
50The file consists of a sequence of directives and statements.
51Each directive is composed by a tag and statements, enclosed by
52.Ql {
53and
54.Ql } .
55Lines beginning with
56.Ql #
57are comments.
58.\"
59.Ss Meta Syntax
60Keywords and special characters that the parser expects exactly are
61displayed using
62.Ic this
63font.
64Parameters are specified with
65.Ar this
66font.
67Square brackets
68.Po
69.Ql \&[
70and
71.Ql \&]
72.Pc
73are used to show optional keywords and parameters.
74Note that
75you have to pay attention when this manual is describing
76.Ar port
77numbers.
78The
79.Ar port
80number is always enclosed by
81.Ql \&[
82and
83.Ql \&] .
84In this case, the port number is not an optional keyword.
85If it is possible to omit the
86.Ar port
87number,
88the expression becomes
89.Bq Bq Ar port .
90The vertical bar
91.Pq Ql \&|
92is used to indicate
93a choice between optional parameters.
94Parentheses
95.Po
96.Ql \&(
97and
98.Ql \&)
99.Pc
100are used to group keywords and parameters when necessary.
101Major parameters are listed below.
102.Pp
103.Bl -tag -width addressx -compact
104.It Ar number
105means a hexadecimal or a decimal number.
106The former must be prefixed with
107.Ql Li 0x .
108.It Ar string
109.It Ar path
110.It Ar file
111means any string enclosed in
112.Ql \&"
113.Pq double quotes .
114.It Ar address
115means IPv6 and/or IPv4 address.
116.It Ar port
117means a TCP/UDP port number.
118The port number is always enclosed by
119.Ql \&[
120and
121.Ql \&] .
122.It Ar timeunit
123is one of following:
124.Ic sec , secs , second , seconds ,
125.Ic min , mins , minute , minutes ,
126.Ic hour , hours .
127.El
128.\"
129.Ss Privilege separation
130.Bl -tag -width Ds -compact
131.It Ic privsep { Ar statements Ic }
132Specifies privilege separation parameters.
133When enabled, these enable
134.Xr racoon 8
135to operate with an unprivileged instance doing most of the work, while
136a privileged instance takes care of performing the following operations
137as root: reading PSK and private keys, launching hook scripts, and
138validating passwords against system databases or against PAM.
139Please note that using privilege separation makes changes to the
140.Ar listen
141and
142.Ar paths
143sections ignored upon configuration reloads.
144A
145.Xr racoon 8
146restart is required if you want such changes to be taken into account.
147.Pp
148.Bl -tag -width Ds -compact
149.It Ic user Ar user ;
150The user to which the unprivileged instance of
151.Xr racoon 8 ,
152should switch.
153This can be a quoted user name or a numeric UID.
154.It Ic group Ar group ;
155The group the unprivileged instance of
156.Xr racoon 8 ,
157should switch.
158This can be a quoted group name or a numeric GID.
159.It Ic chroot Ar path ;
160A directory to which the unprivileged instance of
161.Xr racoon 8
162should
163.Xr chroot 2 .
164This directory should hold a tree where the following files must be
165reachable:
166.Bl -tag -width Ds -compact
167.It Pa /dev/random
168.It Pa /dev/urandom
169.It The certificates
170.It The file containing the Xauth banner
171.El
172.Pp
173The PSK file, the private keys, and the hook scripts are accessed through the
174privileged instance of
175.Xr racoon 8
176and do not need to be reachable in the
177.Xr chroot 2 Ap ed
178tree.
179.El
180.El
181.Ss Path Specification
182This section specifies various paths used by racoon.
183When running in privilege separation mode,
184.Ic certificate
185and
186.Ic script
187paths are mandatory.
188A
189.Xr racoon 8
190restart is required if you want path changes to be taken into account.
191.Bl -tag -width Ds -compact
192.It Ic path include Ar path ;
193Specifies a path to include a file.
194See
195.Sx File Inclusion .
196.It Ic path pre_shared_key Ar file ;
197Specifies a file containing pre-shared key(s) for various ID(s).
198See
199.Sx Pre-shared key File .
200.It Ic path certificate Ar path ;
201.Xr racoon 8
202will search this directory if a certificate or certificate request is received.
203If you run with privilege separation,
204.Xr racoon 8
205will refuse to use a certificate stored outside of this directory.
206.It Ic path backupsa Ar file ;
207Specifies a file to which SA information negotiated by
208racoon should be stored.
209.Xr racoon 8
210will install SA(s) from the file when started with the
211.Fl B
212flag.
213The file is growing because
214.Xr racoon 8
215simply adds SAs to it.
216You should maintain the file manually.
217.It Ic path script Ar path ;
218.Xr racoon 8
219will search this directory for scripts hooks.
220If you run with privilege separation,
221.Xr racoon 8
222will refuse to execute a script stored outside of this directory.
223.It Ic path pidfile Ar file ;
224Specifies file where to store PID of process.
225If path starts with
226.Pa /
227it is treated as an absolute path.
228Otherwise, it is treated as a relative
229path to the VARRUN directory specified at compilation time.
230Default is
231.Pa racoon.pid .
232.El
233.\"
234.Ss File Inclusion
235.Bl -tag -width Ds -compact
236.It Ic include Ar file
237Specifies other configuration files to be included.
238.El
239.\"
240.Ss Timer Specification
241.Bl -tag -width Ds -compact
242.It Ic timer { Ar statements Ic }
243This section specifies various timer values used by racoon.
244.Pp
245.Bl -tag -width Ds -compact
246.It Ic counter Ar number ;
247The maximum number of retries to send.
248The default is 5.
249.It Ic interval Ar number Ar timeunit ;
250The interval to resend, in seconds.
251The default time is 10 seconds.
252.It Ic persend Ar number ;
253The number of packets per send.
254The default is 1.
255.It Ic phase1 Ar number Ar timeunit ;
256The maximum time it should take to complete phase 1.
257The default time is 15 seconds.
258.It Ic phase2 Ar number Ar timeunit ;
259The maximum time it should take to complete phase 2.
260The default time is 10 seconds.
261.It Ic natt_keepalive Ar number Ar timeunit ;
262The interval between sending NAT-Traversal keep-alive packets.
263The default time is 20 seconds.
264Set to 0s to disable keep-alive packets.
265.El
266.El
267.\"
268.Ss Listening Port Specification
269.Bl -tag -width Ds -compact
270.It Ic listen { Ar statements Ic }
271If no
272.Ar listen
273directive is specified,
274.Xr racoon 8
275will listen on all available interface addresses.
276The following is the list of valid statements:
277.Pp
278.Bl -tag -width Ds -compact
279.\" How do I express bold brackets; `[' and `]' .
280.\" Answer: For bold brackets, do "Ic \&[ foo \&]".
281.\" Is the "Bq Ic [ Ar port ] ;" buggy ?
282.It Ic isakmp Ar address Bq Bq Ar port ;
283If this is specified,
284.Xr racoon 8
285will only listen on the defined
286.Ar address .
287The default port is 500, which is specified by IANA.
288You can provide more than one address definition.
289.It Ic isakmp_natt Ar address Bq Ar port ;
290Same as
291.Ic isakmp
292but also sets the socket options to accept UDP-encapsulated ESP traffic for
293NAT-Traversal.
294If you plan to use NAT-T, you should provide at least one address
295with port 4500, which is specified by IANA.
296There is no default.
297.It Ic strict_address ;
298Requires that all addresses for ISAKMP be bound.
299This statement will be ignored if you do not specify address definitions.
300.El
301When running in privilege separation mode, you need to restart
302.Xr racoon 8
303to have changes to the
304.Ar listen
305section taken into account.
306.Pp
307The
308.Ar listen
309section can also be used to specify the admin socket mode and ownership
310if racoon was built with support for admin port.
311.Bl -tag -width Ds -compact
312.It Ic adminsock Ar path Op Ar owner\ group\ mode ;
313The
314.Ar path ,
315.Ar owner ,
316and
317.Ar group
318values specify the socket path, owner, and group.
319They must be quoted.
320The defaults are
321.Pa /var/racoon/racoon.sock ,
322UID 0, and GID 0.
323.Ar mode
324is the access mode in octal.
325The default is 0600.
326.It Ic adminsock disabled ;
327This directive tells racoon to not listen on the admin socket.
328.El
329.El
330.\"
331.Ss Miscellaneous Global Parameters
332.Bl -tag -width Ds -compact
333.It Ic gss_id_enc Ar enctype ;
334Older versions of
335.Xr racoon 8
336used ISO-Latin-1 as the encoding of the GSS-API identifier attribute.
337For interoperability with Microsoft Windows' GSS-API authentication
338scheme, the default encoding has been changed to UTF-16LE.
339The
340.Ic gss_id_enc
341parameter allows
342.Xr racoon 8
343to be configured to use the old encoding for compatibility with existing
344.Xr racoon 8
345installations.
346The following are valid values for
347.Ar enctype :
348.Pp
349.Bl -tag -width Ds -compact
350.It Ic utf-16le
351Use UTF-16LE to encode the GSS-API identifier attribute.
352This is the default encoding.
353This encoding is compatible with Microsoft Windows.
354.It Ic latin1
355Use ISO-Latin-1 to encode the GSS-API identifier attribute.
356This is the encoding used by older versions of
357.Xr racoon 8 .
358.El
359.El
360.\"
361.Pp
362.Bl -tag -width Ds -compact
363.It Ic pfkey_buffer Ar kBytes
364Specifies the socket send/receive buffer size in kilobytes.
365Numerous kernel PF_KEY implementations have problems with dumping
366SAD/SDP with large amount of entries (this happens when 100s to
3671000s of tunnels are configured).
368.Pp
369The default value of 0 leaves everything at the OS-specific default value.
370If the default buffer size is greater than what is specified here racoon
371will not decrease it.
372.Pp
373This problem is known to be fixed in Linux 2.6.25 and later.
374.El
375.\"
376.Ss Remote Nodes Specifications
377.Bl -tag -width Ds -compact
378.It Ic remote Ar name Bo Ic inherit Ar parent_name Bc Ic ({ Ar statements Ic } | ;)
379Specifies the IKE phase 1 parameters for each remote node.
380.Pp
381If connection is initiated using racoonctl, a unique match using the
382remote IP must be found or the remote block name has to be given.
383For received acquires (kernel notices traffic requiring a new SA) the
384remote IP and remoteid from matching sainfo block are used to decide
385the remoteblock.
386If no uniquely matching remoteblock is found using
387these criteria, no connection attempt is done.
388.Pp
389When acting as responder, racoon picks the first proposal that has one
390or more acceptable remote configurations.
391When determining if a remote
392specification is matching the following information is checked:
393.Bl -bullet -width Ds -compact
394.It
395The remote IP is checked against
396.Ic remote_address .
397.It
398ISAKMP exchange type is checked against
399.Ic exchange_mode .
400.It
401ISAKMP SA attributes must match a
402.Ic proposal
403block.
404.It
405The remote identity is matched against
406.Ic peers_identifier
407if
408.Ic verify_identifier
409is on.
410.It
411If a certificate request was received, it must match the issuer of
412.Ic "certificate_type x509"
413certificate.
414If certificate request without issuer name was sent, the
415.Ic match_empty_cr
416parameter specifies whether or not remote block matches.
417.El
418.Pp
419Similarly, NAT-T is enabled if any of the initial remote configuration
420candidates allow NAT-T.
421.Pp
422Sections with
423.Ic inherit Ar parent
424statements (where
425.Ar parent
426is either
427.Ar address
428or a keyword
429.Ic anonymous )
430that have all values predefined to those of a given
431.Ar parent .
432In these sections it is enough to redefine only the changed parameters.
433.Pp
434The following are valid statements.
435.Pp
436.Bl -tag -width Ds -compact
437.\"
438.It Ic remote_address Ar address ;
439Defines the IP address of the peer.
440.\"
441.It Ic exchange_mode ( main | aggressive | base ) ;
442Defines the exchange mode for phase 1 when racoon is the initiator.
443It also means the acceptable exchange mode when racoon is the responder.
444More than one mode can be specified by separating them with a comma.
445All of the modes are acceptable.
446The first exchange mode is what racoon uses when it is the initiator.
447.\"
448.It Ic doi Ic ipsec_doi ;
449Means to use IPsec DOI as specified in RFC 2407.
450You can omit this statement.
451.\"
452.It Ic situation Ic identity_only ;
453Means to use SIT_IDENTITY_ONLY as specified in RFC 2407.
454You can omit this statement.
455.\"
456.It Ic my_identifier Bo Ar qualifier Bc Ar idtype ... ;
457Specifies the identifier sent to the remote host
458and the type to use in the phase 1 negotiation.
459.Ic address, fqdn , user_fqdn , keyid ,
460and
461.Ic asn1dn
462can be used as an
463.Ar idtype .
464The
465.Ar qualifier
466is currently only used for
467.Ic keyid ,
468and can be either
469.Ic file
470or
471.Ic tag .
472The possible values are :
473.Bl -tag -width Ds -compact
474.It Ic my_identifier Ic address Bq Ar address ;
475The type is the IP address.
476This is the default type if you do not specify an identifier to use.
477.It Ic my_identifier Ic user_fqdn Ar string ;
478The type is a USER_FQDN (user fully-qualified domain name).
479.It Ic my_identifier Ic fqdn Ar string ;
480The type is a FQDN (fully-qualified domain name).
481.It Ic my_identifier Ic keyid Bo Ic file Bc Ar file ;
482The type is a KEY_ID, read from the file.
483.It Ic my_identifier Ic keyid Ic tag Ar string ;
484The type is a KEY_ID, specified in the quoted string.
485.It Ic my_identifier Ic asn1dn Bq Ar string ;
486The type is an ASN.1 distinguished name.
487If
488.Ar string
489is omitted,
490.Xr racoon 8
491will get the DN from the Subject field in the certificate.
492.El
493.\"
494.It Ic xauth_login Bq Ar string ;
495Specifies the login to use in client-side Hybrid authentication.
496It is available only if
497.Xr racoon 8
498has been built with this option.
499The associated password is looked up in the pre-shared key files,
500using the login
501.Ic string
502as the key id.
503.\"
504.It Ic peers_identifier Ar idtype ... ;
505Specifies the peer's identifier to be received.
506If it is not defined then
507.Xr racoon 8
508will not verify the peer's identifier in ID payload transmitted from the peer.
509If it is defined, the behavior of the verification depends on the flag of
510.Ic verify_identifier .
511The usage of
512.Ar idtype
513is the same as
514.Ic my_identifier
515except that the individual component values of an
516.Ic asn1dn
517identifier may specified as
518.Ic *
519to match any value (e.g. "C=XX, O=MyOrg, OU=*, CN=Mine").
520The format of the
521specification should correspond to RFC 2253; in particular, commas and certain
522other characters -
523.Ic ,=+\*[Lt]\*[Gt]#;
524- may be included in a name by preceeding them with a backslash "\e", and
525arbitrary characters may be inserted in a name with the "\enn" escape, where
526nn is the hex representation of the ascii value of the desired character.
527Alternative acceptable peer identifiers may be specified by repeating the
528.Ic peers_identifier
529statement.
530.\"
531.It Ic verify_identifier (on | off) ;
532If you want to verify the peer's identifier,
533set this to on.
534In this case, if the value defined by
535.Ic peers_identifier
536is not the same as the peer's identifier in the ID payload,
537the negotiation will fail.
538The default is off.
539.\"
540.It Ic certificate_type Ar certspec ;
541Specifies a certificate specification.
542.Ar certspec
543is one of followings:
544.Bl -tag -width Ds -compact
545.It Ic x509 Ar certfile Ar privkeyfile ;
546.Ar certfile
547means a file name of a certificate.
548.Ar privkeyfile
549means a file name of a secret key.
550.El
551.Bl -tag -width Ds -compact
552.It Ic plain_rsa Ar privkeyfile ;
553.Ar privkeyfile
554means a file name of a private key generated by
555.Xr plainrsa-gen 8 .
556Required
557for RSA authentication.
558.El
559.It Ic ca_type Ar cacertspec ;
560Specifies a root certificate authority specification.
561.Ar cacertspec
562is one of followings:
563.Bl -tag -width Ds -compact
564.It Ic x509 Ar cacertfile ;
565.Ar cacertfile
566means a file name of the root certificate authority.
567Default is
568.Pa /etc/openssl/cert.pem
569.El
570.\"
571.It Ic mode_cfg (on | off) ;
572Gather network information through ISAKMP mode configuration.
573Default is off.
574.\"
575.It Ic weak_phase1_check (on | off) ;
576Tells racoon to act on unencrypted deletion messages during phase 1.
577This is a small security risk, so the default is off, meaning that
578racoon will keep on trying to establish a connection even if the
579user credentials are wrong, for instance.
580.\"
581.It Ic peers_certfile ( dnssec | Ar certfile | Ic plain_rsa Ar pubkeyfile ) ;
582If
583.Ic dnssec
584is defined,
585.Xr racoon 8
586will ignore the CERT payload from the peer,
587and try to get the peer's certificate from DNS instead.
588If
589.Ar certfile
590is defined,
591.Xr racoon 8
592will ignore the CERT payload from the peer,
593and will use this certificate as the peer's certificate.
594If
595.Ic plain_rsa
596is defined,
597.Xr racoon 8
598will expect
599.Ar pubkeyfile
600to be the peer's public key that was generated by
601.Xr plainrsa-gen 8 .
602.\"
603.It Ic script Ar script Ic phase1_up
604.It Ic script Ar script Ic phase1_down
605.It Ic script Ar script Ic phase1_dead
606Shell scripts that get executed when a phase 1 SA goes up or down, or
607when it is detected as dead by DPD.
608All scripts get either
609.Ic phase1_up
610,
611.Ic phase1_down
612or
613.Ic phase1_dead
614as first argument, and the following
615variables are set in their environment:
616.Bl -tag -width Ds -compact
617.It Ev LOCAL_ADDR
618The local address of the phase 1 SA.
619.It Ev LOCAL_PORT
620The local port used for IKE for the phase 1 SA.
621.It Ev REMOTE_ADDR
622The remote address of the phase 1 SA.
623.It Ev REMOTE_PORT
624The remote port used for IKE for the phase 1 SA.
625.It Ev REMOTE_ID
626The remote identity received in IKE for the phase 1 SA.
627.El
628The following variables are only set if
629.Ic mode_cfg
630was enabled:
631.Bl -tag -width Ds -compact
632.It INTERNAL_ADDR4
633An IPv4 internal address obtained by ISAKMP mode config.
634.It INTERNAL_NETMASK4
635An IPv4 internal netmask obtained by ISAKMP mode config.
636.It INTERNAL_CIDR4
637An IPv4 internal netmask obtained by ISAKMP mode config, in CIDR notation.
638.It INTERNAL_DNS4
639The first internal DNS server IPv4 address obtained by ISAKMP mode config.
640.It INTERNAL_DNS4_LIST
641A list of internal DNS servers IPv4 address obtained by ISAKMP mode config,
642separated by spaces.
643.It INTERNAL_WINS4
644The first internal WINS server IPv4 address obtained by ISAKMP mode config.
645.It INTERNAL_WINS4_LIST
646A list of internal WINS servers IPv4 address obtained by ISAKMP mode config,
647separated by spaces.
648.It SPLIT_INCLUDE
649The space separated list of IPv4 addresses and masks (address slash mask)
650that define the networks to be encrypted (as opposed to the default where
651all the traffic should be encrypted) ; obtained by ISAKMP mode config ;
652SPLIT_INCLUDE and SPLIT_LOCAL are mutually exclusive.
653.It SPLIT_LOCAL
654The space separated list of IPv4 addresses and masks (address slash mask)
655that define the networks to be considered local, and thus excluded from the
656tunnels ; obtained by ISAKMP mode config.
657.It SPLIT_INCLUDE_CIDR
658Same as SPLIT_INCLUDE, with netmasks in CIDR notation.
659.It SPLIT_LOCAL_CIDR
660Same as SPLIT_LOCAL, with netmasks in CIDR notation.
661.It DEFAULT_DOMAIN
662The DNS default domain name obtained by ISAKMP mode config.
663.El
664.\"
665.\"
666.It Ic send_cert (on | off) ;
667If you do not want to send a certificate, set this to off.
668The default is on.
669.\"
670.It Ic send_cr (on | off) ;
671If you do not want to send a certificate request, set this to off.
672The default is on.
673.\"
674.It Ic match_empty_cr (on | off) ;
675Specifies whether this remote block is a valid match when a non-specific
676certificate request is received.
677The default is on.
678.\"
679.It Ic verify_cert (on | off) ;
680By default, the identifier sent by the remote host (as specified in its
681.Ic my_identifier
682statement) is compared with the credentials in the certificate
683used to authenticate the remote host as follows:
684.Bl -tag -width Ds -compact
685.It Type Ic asn1dn :
686The entire certificate subject name is compared with the identifier,
687e.g. "C=XX, O=YY, ...".
688.It Type Ic address, fqdn, or user_fqdn :
689The certificate's subjectAltName is compared with the identifier.
690.El
691If the two do not match the negotiation will fail.
692If you do not want to verify the identifier using the peer's certificate,
693set this to off.
694.\"
695.It Ic lifetime time Ar number Ar timeunit ;
696Define a lifetime of a certain time
697which will be proposed in the phase 1 negotiations.
698Any proposal will be accepted, and the attribute(s) will not be proposed to
699the peer if you do not specify it (them).
700They can be individually specified in each proposal.
701.\"
702.It Ic ike_frag (on | off | force) ;
703Enable receiver-side IKE fragmentation if
704.Xr racoon 8
705has been built with this feature.
706If set to on, racoon will advertise
707itself as being capable of receiving packets split by IKE fragmentation.
708This extension is there to work around broken firewalls that do not
709work with fragmented UDP packets.
710IKE fragmentation is always enabled on the sender-side, and it is
711used if the peer advertises itself as IKE fragmentation capable.
712By selecting force, IKE Fragmentation will
713be used when racoon is acting as the initiator even before the remote
714peer has advertised itself as IKE fragmentation capable.
715.\"
716.It Ic esp_frag Ar fraglen ;
717This option is only relevant if you use NAT traversal in tunnel mode.
718Its purpose is to work around broken DSL routers that reject UDP
719fragments, by fragmenting the IP packets before ESP encapsulation.
720The result is ESP over UDP of fragmented packets instead of fragmented
721ESP over UDP packets (i.e., IP:UDP:ESP:frag(IP) instead of
722frag(IP:UDP:ESP:IP)).
723.Ar fraglen
724is the maximum size of the fragments.
725552 should work anywhere,
726but the higher
727.Ar fraglen
728is, the better the performance.
729.Pp
730Note that because PMTU discovery is broken on many sites, you will
731have to use MSS clamping if you want TCP to work correctly.
732.\"
733.It Ic initial_contact (on | off) ;
734Enable this to send an INITIAL-CONTACT message.
735The default value is
736.Ic on .
737This message is useful only when the responder implementation chooses an
738old SA when there are multiple SAs with different established time and the
739initiator reboots.
740If racoon did not send the message,
741the responder would use an old SA even when a new SA was established.
742For systems that use a KAME derived IPSEC stack, the
743.Xr sysctl 8
744variable net.key.preferred_oldsa can be used to control this preference.
745When the value is zero, the stack always uses a new SA.
746.\"
747.It Ic passive (on | off) ;
748If you do not want to initiate the negotiation, set this to on.
749The default value is
750.Ic off .
751It is useful for a server.
752.\"
753.It Ic proposal_check Ar level ;
754Specifies the action of lifetime length, key length, and PFS of the phase 2
755selection on the responder side, and the action of lifetime check in
756phase 1.
757The default level is
758.Ic strict .
759If the
760.Ar level
761is:
762.Bl -tag -width Ds -compact
763.It Ic obey
764The responder will obey the initiator anytime.
765.It Ic strict
766If the responder's lifetime length is longer than the initiator's or
767the responder's key length is shorter than the initiator's,
768the responder will use the initiator's value.
769Otherwise, the proposal will be rejected.
770If PFS is not required by the responder, the responder will obey the proposal.
771If PFS is required by both sides and the responder's group is not equal to
772the initiator's, then the responder will reject the proposal.
773.It Ic claim
774If the responder's lifetime length is longer than the initiator's or
775the responder's key length is shorter than the initiator's,
776the responder will use the initiator's value.
777If the responder's lifetime length is shorter than the initiator's,
778the responder uses its own length AND sends a RESPONDER-LIFETIME notify
779message to an initiator in the case of lifetime (phase 2 only).
780For PFS, this directive behaves the same as
781.Ic strict .
782.It Ic exact
783If the initiator's lifetime or key length is not equal to the responder's,
784the responder will reject the proposal.
785If PFS is required by both sides and the responder's group is not equal to
786the initiator's, then the responder will reject the proposal.
787.El
788.\"
789.It Ic support_proxy (on | off) ;
790If this value is set to on, then both values of ID payloads in the
791phase 2 exchange are always used as the addresses of end-point of
792IPsec-SAs.
793The default is off.
794.\"
795.It Ic generate_policy (on | off | require | unique) ;
796This directive is for the responder.
797Therefore you should set
798.Ic passive
799to on in order that
800.Xr racoon 8
801only becomes a responder.
802If the responder does not have any policy in SPD during phase 2
803negotiation, and the directive is set to on, then
804.Xr racoon 8
805will choose the first proposal in the
806SA payload from the initiator, and generate policy entries from the proposal.
807It is useful to negotiate with clients whose IP address is allocated
808dynamically.
809Note that an inappropriate policy might be installed into the responder's SPD
810by the initiator,
811so other communications might fail if such policies are installed
812due to a policy mismatch between the initiator and the responder.
813.Ic on
814and
815.Ic require
816values mean the same thing (generate a require policy).
817.Ic unique
818tells racoon to set up unique policies, with a monotoning increasing
819reqid number (between 1 and IPSEC_MANUAL_REQID_MAX).
820This directive is ignored in the initiator case.
821The default value is
822.Ic off .
823.\"
824.\"
825.It Ic nat_traversal (on | off | force) ;
826This directive enables use of the NAT-Traversal IPsec extension
827(NAT-T).
828NAT-T allows one or both peers to reside behind a NAT gateway (i.e.,
829doing address- or port-translation).
830If a NAT gateway is detected during the phase 1 handshake, racoon will
831attempt to negotiate the use of NAT-T with the remote peer.
832If the negotiation succeeds, all ESP and AH packets for the given connection
833will be encapsulated into UDP datagrams (port 4500, by default).
834Possible values are:
835.Bl -tag -width Ds -compact
836.It Ic on
837NAT-T is used when a NAT gateway is detected between the peers.
838.It Ic off
839NAT-T is not proposed/accepted.
840This is the default.
841.It Ic force
842NAT-T is used regardless of whether a NAT gateway is detected between the
843peers or not.
844.El
845Please note that NAT-T support is a compile-time option.
846Although it is enabled in the source distribution by default, it
847may not be available in your particular build.
848In that case you will get a
849warning when using any NAT-T related config options.
850.\"
851.It Ic dpd_delay Ar delay ;
852This option activates the DPD and sets the time (in seconds) allowed
853between 2 proof of liveliness requests.
854The default value is
855.Ic 0 ,
856which disables DPD monitoring, but still negotiates DPD support.
857.\"
858.It Ic dpd_retry Ar delay ;
859If
860.Ic dpd_delay
861is set, this sets the delay (in seconds) to wait for a proof of
862liveliness before considering it as failed and send another request.
863The default value is
864.Ic 5 .
865.\"
866.It Ic dpd_maxfail Ar number ;
867If
868.Ic dpd_delay
869is set, this sets the maximum number of liveliness proofs to request
870(without reply) before considering the peer is dead.
871The default value is
872.Ic 5 .
873.\"
874.It Ic rekey (on | off | force) ;
875Enable automatic renegotiation of expired phase1 when there are non-dying
876phase2 SAs.
877Possible values are:
878.Bl -tag -width Ds -compact
879.It Ic force
880Rekeying is done unconditionally.
881.It Ic on
882Rekeying is done only if DPD monitoring is active.
883This is the default.
884.It Ic off
885No automatic rekeying.
886Do note that turning off automatic rekeying will
887result in inaccurate DPD monitoring.
888.El
889.\"
890.It Ic nonce_size Ar number ;
891define the byte size of nonce value.
892Racoon can send any value although
893RFC2409 specifies that the value MUST be between 8 and 256 bytes.
894The default size is 16 bytes.
895.\"
896.It Ic ph1id Ar number ;
897An optional number to identify the remote proposal and to link it
898only with sainfos who have the same number.
899Defaults to 0.
900.\"
901.It Ic proposal { Ar sub-substatements Ic }
902.Bl -tag -width Ds -compact
903.\"
904.It Ic encryption_algorithm Ar algorithm ;
905Specifies the encryption algorithm used for the phase 1 negotiation.
906This directive must be defined.
907.Ar algorithm
908is one of following:
909.Ic des, 3des, blowfish, cast128, aes, camellia
910.\".Ic rc5 , idea
911for Oakley.
912For other transforms, this statement should not be used.
913.\"
914.It Ic hash_algorithm Ar algorithm ;
915Defines the hash algorithm used for the phase 1 negotiation.
916This directive must be defined.
917.Ar algorithm
918is one of following:
919.Ic md5, sha1, sha256, sha384, sha512
920for Oakley.
921.\"
922.It Ic authentication_method Ar type ;
923Defines the authentication method used for the phase 1 negotiation.
924This directive must be defined.
925.Ar type
926is one of:
927.Ic pre_shared_key , rsasig
928(for plain RSA authentication),
929.Ic gssapi_krb , hybrid_rsa_server ,
930.Ic hybrid_rsa_client , xauth_rsa_server , xauth_rsa_client , xauth_psk_server
931or
932.Ic xauth_psk_client .
933.\"
934.It Ic dh_group Ar group ;
935Defines the group used for the Diffie-Hellman exponentiations.
936This directive must be defined.
937.Ar group
938is one of following:
939.Ic modp768 , modp1024 , modp1536 ,
940.Ic modp2048 , modp3072 , modp4096 ,
941.Ic modp6144 , modp8192 .
942Or you can define 1, 2, 5, 14, 15, 16, 17, or 18 as the DH group number.
943When you want to use aggressive mode,
944you must define the same DH group in each proposal.
945.It Ic lifetime time Ar number Ar timeunit ;
946Defines the lifetime of the phase 1 SA proposal.
947Refer to the description of the
948.Ic lifetime
949directive defined in the
950.Ic remote
951directive.
952.It Ic gss_id Ar string ;
953Defines the GSS-API endpoint name, to be included as an attribute in the SA,
954if the
955.Ic gssapi_krb
956authentication method is used.
957If this is not defined, the default value of
958.Ql host/hostname
959is used, where hostname is the value returned by the
960.Xr hostname 1
961command.
962.El
963.El
964.Pp
965.It Ic remote Po Ar address | Ic anonymous Pc Bo Bo Ar port Bc Bc \
966Bo Ic inherit Ar parent Bc Ic { Ar statements Ic }
967Deprecated format of specifying a remote block.
968This will be removed in future.
969It is a remnant from time when remote block was decided
970solely based on the peers IP address.
971.Pp
972This is equivalent to:
973.Bd -literal -offset
974remote "address" [inherit "parent-address"] {
975        remote_address address;
976}
977.Ed
978.El
979.\"
980.Ss Sainfo Specifications
981.Bl -tag -width Ds -compact
982.It Ic sainfo Po Ar local_id | Ic anonymous Pc \
983Po Ar remote_id | Ic clientaddr | Ic anonymous Pc \
984Bo Ic from Ar idtype Bo Ar string Bc Bc Bo Ic group Ar string Bc \
985Ic { Ar statements Ic }
986Defines the parameters of the IKE phase 2 (IPsec-SA establishment).
987.Pp
988The
989.Ar local_id
990and
991.Ar remote_id
992strings are constructed like:
993.Pp
994.Ic address Ar address
995.Bq Ic / Ar prefix
996.Bq Ic [ Ar port ]
997.Ar ul_proto
998.Pp
999or
1000.Pp
1001.Ic subnet Ar address
1002.Bq Ic / Ar prefix
1003.Bq Ic [ Ar port ]
1004.Ar ul_proto
1005.Pp
1006An id string should be expressed to match the exact value of an ID payload.
1007This is not like a filter rule.
1008For example, if you define 3ffe:501:4819::/48 as
1009.Ar local_id .
10103ffe:501:4819:1000:/64 will not match.
1011In the case of a longest prefix (selecting a single host),
1012.Ar address
1013instructs to send ID type of ADDRESS while
1014.Ar subnet
1015instructs to send ID type of SUBNET.
1016Otherwise, these instructions are identical.
1017.Pp
1018The
1019.Ic anonymous
1020keyword can be used to match any id.
1021The
1022.Ic clientaddr
1023keyword can be used to match a remote id that is equal to either the peer
1024ip address or the mode_cfg ip address (if assigned).
1025This can be useful
1026to restrict policy generation when racoon is acting as a client gateway
1027for peers with dynamic ip addresses.
1028.Pp
1029The
1030.Ic from
1031keyword allows an sainfo to only match for peers that use a specific phase1
1032id value during authentication.
1033The
1034.Ic group
1035keyword allows an XAuth group membership check to be performed
1036for this sainfo section.
1037When the mode_cfg auth source is set to
1038.Ic system
1039or
1040.Ic ldap ,
1041the XAuth user is verified to be a member of the specified group
1042before allowing a matching SA to be negotiated.
1043.Pp
1044.Bl -tag -width Ds -compact
1045.\"
1046.It Ic pfs_group Ar group ;
1047define the group of Diffie-Hellman exponentiations.
1048If you do not require PFS then you can omit this directive.
1049Any proposal will be accepted if you do not specify one.
1050.Ar group
1051is one of following:
1052.Ic modp768 , modp1024 , modp1536 ,
1053.Ic modp2048 , modp3072 , modp4096 ,
1054.Ic modp6144 , modp8192 .
1055Or you can define 1, 2, 5, 14, 15, 16, 17, or 18 as the DH group number.
1056.\"
1057.It Ic lifetime time Ar number Ar timeunit ;
1058define how long an IPsec-SA will be used, in timeunits.
1059Any proposal will be accepted, and no attribute(s) will be proposed to
1060the peer if you do not specify it(them).
1061See the
1062.Ic proposal_check
1063directive.
1064.\"
1065.It Ic remoteid Ar number ;
1066Sainfos will only be used if their remoteid matches the ph1id of the
1067remote section used for phase 1.
1068Defaults to 0, which is also the default for ph1id.
1069.El
1070.\"
1071.Pp
1072.Xr racoon 8
1073does not have a list of security protocols to be negotiated.
1074The list of security protocols are passed by SPD in the kernel.
1075Therefore you have to define all of the potential algorithms
1076in the phase 2 proposals even if there are algorithms which will not be used.
1077These algorithms are define by using the following three directives,
1078with a single comma as the separator.
1079For algorithms that can take variable-length keys, algorithm names
1080can be followed by a key length, like
1081.Dq Li blowfish 448 .
1082.Xr racoon 8
1083will compute the actual phase 2 proposals by computing
1084the permutation of the specified algorithms,
1085and then combining them with the security protocol specified by the SPD.
1086For example, if
1087.Ic des , 3des , hmac_md5 ,
1088and
1089.Ic hmac_sha1
1090are specified as algorithms, we have four combinations for use with ESP,
1091and two for AH.
1092Then, based on the SPD settings,
1093.Xr racoon 8
1094will construct the actual proposals.
1095If the SPD entry asks for ESP only, there will be 4 proposals.
1096If it asks for both AH and ESP, there will be 8 proposals.
1097Note that the kernel may not support the algorithm you have specified.
1098.\"
1099.Bl -tag -width Ds -compact
1100.It Ic encryption_algorithm Ar algorithms ;
1101.Ic des , 3des , des_iv64 , des_iv32 ,
1102.Ic rc5 , rc4 , idea , 3idea ,
1103.Ic cast128 , blowfish , null_enc ,
1104.Ic twofish , rijndael , aes , camellia
1105.Pq used with ESP
1106.\"
1107.It Ic authentication_algorithm Ar algorithms ;
1108.Ic des , 3des , des_iv64 , des_iv32 ,
1109.Ic hmac_md5 , hmac_sha1 , hmac_sha256, hmac_sha384, hmac_sha512, non_auth
1110.Pq used with ESP authentication and AH
1111.\"
1112.It Ic compression_algorithm Ar algorithms ;
1113.Ic deflate
1114.Pq used with IPComp
1115.El
1116.El
1117.\"
1118.Ss Logging level
1119.Bl -tag -width Ds -compact
1120.It Ic log Ar level ;
1121Defines the logging level.
1122.Ar level
1123is one of following:
1124.Ic error , warning , notify , info , debug
1125or
1126.Ic debug2 .
1127The default is
1128.Ic info .
1129If you set the logging level too high on slower machines,
1130IKE negotiation can fail due to timing constraint changes.
1131.El
1132.\"
1133.Ss Specifies the way to pad
1134.Bl -tag -width Ds -compact
1135.It Ic padding { Ar statements Ic }
1136specifies the padding format.
1137The following are valid statements:
1138.Bl -tag -width Ds -compact
1139.It Ic randomize (on | off) ;
1140Enables the use of a randomized value for padding.
1141The default is on.
1142.It Ic randomize_length (on | off) ;
1143The pad length will be random.
1144The default is off.
1145.It Ic maximum_length Ar number ;
1146Defines a maximum padding length.
1147If
1148.Ic randomize_length
1149is off, this is ignored.
1150The default is 20 bytes.
1151.It Ic exclusive_tail (on | off) ;
1152Means to put the number of pad bytes minus one into the last part
1153of the padding.
1154The default is on.
1155.It Ic strict_check (on | off) ;
1156Means to constrain the peer to set the number of pad bytes.
1157The default is off.
1158.El
1159.El
1160.Ss ISAKMP mode configuration settings
1161.Bl -tag -width Ds -compact
1162.It Ic mode_cfg { Ar statements Ic }
1163Defines the information to return for remote hosts' ISAKMP mode config
1164requests.
1165Also defines the authentication source for remote peers
1166authenticating through Xauth.
1167.Pp
1168The following are valid statements:
1169.Bl -tag -width Ds -compact
1170.It Ic auth_source (system | radius | pam | ldap) ;
1171Specifies the source for authentication of users through Xauth.
1172.Ar system
1173means to use the Unix user database.
1174This is the default.
1175.Ar radius
1176means to use a RADIUS server.
1177It works only if
1178.Xr racoon 8
1179was built with libradius support.
1180Radius configuration is handled by statements in the
1181.Ic radiuscfg
1182section.
1183.Ar pam
1184means to use PAM.
1185It works only if
1186.Xr racoon 8
1187was built with libpam support.
1188.Ar ldap
1189means to use LDAP.
1190It works only if
1191.Xr racoon 8
1192was built with libldap support.
1193LDAP configuration is handled by statements in the
1194.Ic ldapcfg
1195section.
1196.It Ic auth_groups Ar "group1", ... ;
1197Specifies the group memberships for Xauth in quoted group name strings.
1198When defined, the authenticating user must be a member of at least one
1199group for Xauth to succeed.
1200.It Ic group_source (system | ldap) ;
1201Specifies the source for group validation of users through Xauth.
1202.Ar system
1203means to use the Unix user database.
1204This is the default.
1205.Ar ldap
1206means to use LDAP.
1207It works only if
1208.Xr racoon 8
1209was built with libldap support and requires LDAP authentication.
1210LDAP configuration is handled by statements in the
1211.Ic ldapcfg
1212section.
1213.It Ic conf_source (local | radius | ldap) ;
1214Specifies the source for IP addresses and netmask allocated through ISAKMP
1215mode config.
1216.Ar local
1217means to use the local IP pool defined by the
1218.Ic network4
1219and
1220.Ic pool_size
1221statements.
1222This is the default.
1223.Ar radius
1224means to use a RADIUS server.
1225It works only if
1226.Xr racoon 8
1227was built with libradius support and requires RADIUS authentication.
1228RADIUS configuration is handled by statements in the
1229.Ic radiuscfg
1230section.
1231.Ar ldap
1232means to use an LDAP server.
1233It works only if
1234.Xr racoon 8
1235was built with libldap support and requires LDAP authentication.
1236LDAP configuration is handled by
1237statements in the
1238.Ic ldapcfg
1239section.
1240.It Ic accounting (none | system | radius | pam) ;
1241Enables or disables accounting for Xauth logins and logouts.
1242The default is
1243.Ar none
1244which disable accounting.
1245Specifying
1246.Ar system
1247enables system accounting through
1248.Xr utmp 5 .
1249Specifying
1250.Ar radius
1251enables RADIUS accounting.
1252It works only if
1253.Xr racoon 8
1254was built with libradius support and requires RADIUS authentication.
1255RADIUS configuration is handled by statements in the
1256.Ic radiuscfg
1257section.
1258Specifying
1259.Ar pam
1260enables PAM accounting.
1261It works only if
1262.Xr racoon 8
1263was build with libpam support and requires PAM authentication.
1264.It Ic pool_size Ar size
1265Specify the size of the IP address pool, either local or allocated
1266through RADIUS.
1267.Ic conf_source
1268selects the local pool or the RADIUS configuration, but in both
1269configurations, you cannot have more than
1270.Ar size
1271users connected at the same time.
1272The default is 255.
1273.It Ic network4 Ar address ;
1274.It Ic netmask4 Ar address ;
1275The local IP pool base address and network mask from which dynamically
1276allocated IPv4 addresses should be taken.
1277This is used if
1278.Ic conf_source
1279is set to
1280.Ar local
1281or if the RADIUS server returned
1282.Ar 255.255.255.254 .
1283Default is
1284.Ar 0.0.0.0/0.0.0.0 .
1285.It Ic dns4 Ar addresses ;
1286A list of IPv4 addresses for DNS servers, separated by commas, or on multiple
1287.Ic dns4
1288lines.
1289.It Ic wins4 Ar addresses ;
1290A list of IPv4 address for WINS servers.
1291The keyword
1292.It nbns4
1293can also be used as an alias for
1294.It wins4 .
1295.It Ic split_network (include | local_lan) Ar network/mask, ...
1296The network configuration to send, in CIDR notation (e.g. 192.168.1.0/24).
1297If
1298.Ic include
1299is specified, the tunnel should be only used to encrypt the indicated
1300destinations ; otherwise, if
1301.Ic local_lan
1302is used, everything will pass through the tunnel but those destinations.
1303.It Ic default_domain Ar domain ;
1304The default DNS domain to send.
1305.It Ic split_dns Ar "domain", ...
1306The split dns configuration to send, in quoted domain name strings.
1307This list can be used to describe a list of domain names for which
1308a peer should query a modecfg assigned dns server.
1309DNS queries for all other domains would be handled locally.
1310(Cisco VPN client only).
1311.It Ic banner Ar path ;
1312The path of a file displayed on the client at connection time.
1313Default is
1314.Ar /etc/motd .
1315.It Ic auth_throttle Ar delay ;
1316On each failed Xauth authentication attempt, refuse new attempts for a set
1317.Ar delay
1318of seconds.
1319This is to avoid dictionary attacks on Xauth passwords.
1320Default is one second.
1321Set to zero to disable authentication delay.
1322.It Ic pfs_group Ar group ;
1323Sets the PFS group used in the client proposal (Cisco VPN client only).
1324Default is 0.
1325.It Ic save_passwd (on | off) ;
1326Allow the client to save the Xauth password (Cisco VPN client only).
1327Default is off.
1328.El
1329.El
1330.Ss Ldap configuration settings
1331.Bl -tag -width Ds -compact
1332.It Ic ldapcfg { Ar statements Ic }
1333Defines the parameters that will be used to communicate with an ldap
1334server for
1335.Ic xauth
1336authentication.
1337.Pp
1338The following are valid statements:
1339.Bl -tag -width Ds -compact
1340.It Ic version (2 | 3) ;
1341The ldap protocol version used to communicate with the server.
1342The default is
1343.Ic 3 .
1344.It Ic host Ar (hostname | address) ;
1345The host name or ip address of the ldap server.
1346The default is
1347.Ic localhost .
1348.It Ic port Ar number ;
1349The port that the ldap server is configured to listen on.
1350The default is
1351.Ic 389 .
1352.It Ic base Ar distinguished name ;
1353The ldap search base.
1354This option has no default value.
1355.It Ic subtree (on | off) ;
1356Use the subtree ldap search scope.
1357Otherwise, use the one level search scope.
1358The default is
1359.Ic off .
1360.It Ic bind_dn Ar distinguished name ;
1361The user dn used to optionally bind as before performing ldap search operations.
1362If this option is not specified, anonymous binds are used.
1363.It Ic bind_pw Ar string ;
1364The password used when binding as
1365.Ic bind_dn .
1366.It Ic attr_user Ar attribute name ;
1367The attribute used to specify a users name in an ldap directory.
1368For example,
1369if a user dn is "cn=jdoe,dc=my,dc=net" then the attribute would be "cn".
1370The default value is
1371.Ic cn .
1372.It Ic attr_addr Ar attribute name ;
1373.It Ic attr_mask Ar attribute name ;
1374The attributes used to specify a users network address and subnet mask in an
1375ldap directory.
1376These values are forwarded during mode_cfg negotiation when
1377the conf_source is set to ldap.
1378The default values are
1379.Ic racoon-address
1380and
1381.Ic racoon-netmask .
1382.It Ic attr_group Ar attribute name ;
1383The attribute used to specify a group name in an ldap directory.
1384For example,
1385if a group dn is "cn=users,dc=my,dc=net" then the attribute would be "cn".
1386The default value is
1387.Ic cn .
1388.It Ic attr_member Ar attribute name ;
1389The attribute used to specify group membership in an ldap directory.
1390The default value is
1391.Ic member .
1392.El
1393.El
1394.Ss Radius configuration settings
1395.Bl -tag -width Ds -compact
1396.It Ic radiuscfg { Ar statements Ic }
1397Defines the parameters that will be used to communicate with radius
1398servers for
1399.Ic xauth
1400authentication.
1401If radius is selected as the xauth authentication or accounting
1402source and no servers are defined in this section, settings from
1403the system
1404.Xr radius.conf 5
1405configuration file will be used instead.
1406.Pp
1407The following are valid statements:
1408.Bl -tag -width Ds -compact
1409.It Ic auth Ar (hostname | address) [port] sharedsecret ;
1410The host name or ip address, optional port value and shared secret value
1411of a radius authentication server.
1412Up to 5 radius authentication servers
1413may be specified using multiple lines.
1414.It Ic acct Ar (hostname | address) [port] sharedsecret ;
1415The host name or ip address, optional port value and shared secret value
1416of a radius accounting server.
1417Up to 5 radius accounting servers may be
1418specified using multiple lines.
1419.It Ic timeout Ar seconds ;
1420The timeout for receiving replies from radius servers.
1421The default is
1422.Ic 3 .
1423.It Ic retries Ar count ;
1424The maximum number of repeated requests to make before giving up
1425on a radius server.
1426The default is
1427.Ic 3 .
1428.El
1429.El
1430.Ss Special directives
1431.Bl -tag -width Ds -compact
1432.It Ic complex_bundle (on | off) ;
1433defines the interpretation of proposal in the case of SA bundle.
1434Normally
1435.Dq IP AH ESP IP payload
1436is proposed as
1437.Dq AH tunnel and ESP tunnel .
1438The interpretation is more common to other IKE implementations, however,
1439it allows very limited set of combinations for proposals.
1440With the option enabled, it will be proposed as
1441.Dq AH transport and ESP tunnel .
1442The default value is
1443.Ic off .
1444.El
1445.\"
1446.Ss Pre-shared key File
1447The pre-shared key file defines pairs of identifiers and corresponding
1448shared secret keys which are used in the pre-shared key authentication
1449method in phase 1.
1450The pair in each line is separated by some number of blanks and/or tab
1451characters like in the
1452.Xr hosts 5
1453file.
1454Key can include blanks because everything after the first blanks
1455is interpreted as the secret key.
1456Lines starting with
1457.Ql #
1458are ignored.
1459Keys which start with
1460.Ql 0x
1461are interpreted as hexadecimal strings.
1462Note that the file must be owned by the user ID running
1463.Xr racoon 8
1464.Pq usually the privileged user ,
1465and must not be accessible by others.
1466.\"
1467.Sh EXAMPLES
1468The following shows how the remote directive should be configured.
1469.Bd -literal -offset
1470path pre_shared_key "/usr/local/v6/etc/psk.txt" ;
1471remote anonymous
1472{
1473        exchange_mode aggressive,main,base;
1474        lifetime time 24 hour;
1475        proposal {
1476                encryption_algorithm 3des;
1477                hash_algorithm sha1;
1478                authentication_method pre_shared_key;
1479                dh_group 2;
1480        }
1481}
1482
1483sainfo anonymous
1484{
1485        pfs_group 2;
1486        lifetime time 12 hour ;
1487        encryption_algorithm 3des, blowfish 448, twofish, rijndael ;
1488        authentication_algorithm hmac_sha1, hmac_md5 ;
1489        compression_algorithm deflate ;
1490}
1491.Ed
1492.Pp
1493If you are configuring plain RSA authentication, the remote directive
1494should look like the following:
1495.Bd -literal -offset
1496path certificate "/usr/local/v6/etc" ;
1497remote anonymous
1498{
1499        exchange_mode main,base ;
1500        lifetime time 12 hour ;
1501        certificate_type plain_rsa "/usr/local/v6/etc/myrsakey.priv";
1502        peers_certfile plain_rsa "/usr/local/v6/etc/yourrsakey.pub";
1503        proposal {
1504                        encryption_algorithm aes ;
1505                        hash_algorithm sha1 ;
1506                        authentication_method rsasig ;
1507                        dh_group 2 ;
1508        }
1509}
1510.Ed
1511.Pp
1512The following is a sample for the pre-shared key file.
1513.Bd -literal -offset
151410.160.94.3     mekmitasdigoat
1515172.16.1.133    0x12345678
1516194.100.55.1    whatcertificatereally
15173ffe:501:410:ffff:200:86ff:fe05:80fa    mekmitasdigoat
15183ffe:501:410:ffff:210:4bff:fea2:8baa    mekmitasdigoat
1519foo@kame.net    mekmitasdigoat
1520foo.kame.net    hoge
1521.Ed
1522.\"
1523.Sh SEE ALSO
1524.Xr racoon 8 ,
1525.Xr racoonctl 8 ,
1526.Xr setkey 8
1527.\"
1528.Sh HISTORY
1529The
1530.Nm
1531configuration file first appeared in the
1532.Dq YIPS
1533Yokogawa IPsec implementation.
1534.\"
1535.Sh BUGS
1536Some statements may not be handled by
1537.Xr racoon 8
1538yet.
1539.Pp
1540Diffie-Hellman computation can take a very long time, and may cause
1541unwanted timeouts, specifically when a large D-H group is used.
1542.\"
1543.Sh SECURITY CONSIDERATIONS
1544The use of IKE phase 1 aggressive mode is not recommended,
1545as described in
1546.Li http://www.kb.cert.org/vuls/id/886601 .
Note: See TracBrowser for help on using the repository browser.