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