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>