Annotation of embedaddon/ipsec-tools/src/racoon/racoon.conf.5, revision 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>