| .\" $NetBSD: racoon.conf.5,v 1.61 2010/06/22 20:51:04 wiz Exp $ |
| .\" |
| .\" Id: racoon.conf.5,v 1.54 2006/08/22 18:17:17 manubsd Exp |
| .\" |
| .\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. |
| .\" All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. Neither the name of the project nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .Dd June 22, 2010 |
| .Dt RACOON.CONF 5 |
| .Os |
| .\" |
| .Sh NAME |
| .Nm racoon.conf |
| .Nd configuration file for racoon |
| .\" |
| .\" .Sh SYNOPSIS |
| .\" |
| .Sh DESCRIPTION |
| .Nm |
| is the configuration file for the |
| .Xr racoon 8 |
| ISAKMP daemon. |
| .Xr racoon 8 |
| negotiates security associations for itself (ISAKMP SA, or phase 1 SA) |
| and for kernel IPsec (IPsec SA, or phase 2 SA). |
| The file consists of a sequence of directives and statements. |
| Each directive is composed by a tag and statements, enclosed by |
| .Ql { |
| and |
| .Ql } . |
| Lines beginning with |
| .Ql # |
| are comments. |
| .\" |
| .Ss Meta Syntax |
| Keywords and special characters that the parser expects exactly are |
| displayed using |
| .Ic this |
| font. |
| Parameters are specified with |
| .Ar this |
| font. |
| Square brackets |
| .Po |
| .Ql \&[ |
| and |
| .Ql \&] |
| .Pc |
| are used to show optional keywords and parameters. |
| Note that |
| you have to pay attention when this manual is describing |
| .Ar port |
| numbers. |
| The |
| .Ar port |
| number is always enclosed by |
| .Ql \&[ |
| and |
| .Ql \&] . |
| In this case, the port number is not an optional keyword. |
| If it is possible to omit the |
| .Ar port |
| number, |
| the expression becomes |
| .Bq Bq Ar port . |
| The vertical bar |
| .Pq Ql \&| |
| is used to indicate |
| a choice between optional parameters. |
| Parentheses |
| .Po |
| .Ql \&( |
| and |
| .Ql \&) |
| .Pc |
| are used to group keywords and parameters when necessary. |
| Major parameters are listed below. |
| .Pp |
| .Bl -tag -width addressx -compact |
| .It Ar number |
| means a hexadecimal or a decimal number. |
| The former must be prefixed with |
| .Ql Li 0x . |
| .It Ar string |
| .It Ar path |
| .It Ar file |
| means any string enclosed in |
| .Ql \&" |
| .Pq double quotes . |
| .It Ar address |
| means IPv6 and/or IPv4 address. |
| .It Ar port |
| means a TCP/UDP port number. |
| The port number is always enclosed by |
| .Ql \&[ |
| and |
| .Ql \&] . |
| .It Ar timeunit |
| is one of following: |
| .Ic sec , secs , second , seconds , |
| .Ic min , mins , minute , minutes , |
| .Ic hour , hours . |
| .El |
| .\" |
| .Ss Privilege separation |
| .Bl -tag -width Ds -compact |
| .It Ic privsep { Ar statements Ic } |
| Specifies privilege separation parameters. |
| When enabled, these enable |
| .Xr racoon 8 |
| to operate with an unprivileged instance doing most of the work, while |
| a privileged instance takes care of performing the following operations |
| as root: reading PSK and private keys, launching hook scripts, and |
| validating passwords against system databases or against PAM. |
| Please note that using privilege separation makes changes to the |
| .Ar listen |
| and |
| .Ar paths |
| sections ignored upon configuration reloads. |
| A |
| .Xr racoon 8 |
| restart is required if you want such changes to be taken into account. |
| .Pp |
| .Bl -tag -width Ds -compact |
| .It Ic user Ar user ; |
| The user to which the unprivileged instance of |
| .Xr racoon 8 , |
| should switch. |
| This can be a quoted user name or a numeric UID. |
| .It Ic group Ar group ; |
| The group the unprivileged instance of |
| .Xr racoon 8 , |
| should switch. |
| This can be a quoted group name or a numeric GID. |
| .It Ic chroot Ar path ; |
| A directory to which the unprivileged instance of |
| .Xr racoon 8 |
| should |
| .Xr chroot 2 . |
| This directory should hold a tree where the following files must be |
| reachable: |
| .Bl -tag -width Ds -compact |
| .It Pa /dev/random |
| .It Pa /dev/urandom |
| .It The certificates |
| .It The file containing the Xauth banner |
| .El |
| .Pp |
| The PSK file, the private keys, and the hook scripts are accessed through the |
| privileged instance of |
| .Xr racoon 8 |
| and do not need to be reachable in the |
| .Xr chroot 2 Ap ed |
| tree. |
| .El |
| .El |
| .Ss Path Specification |
| This section specifies various paths used by racoon. |
| When running in privilege separation mode, |
| .Ic certificate |
| and |
| .Ic script |
| paths are mandatory. |
| A |
| .Xr racoon 8 |
| restart is required if you want path changes to be taken into account. |
| .Bl -tag -width Ds -compact |
| .It Ic path include Ar path ; |
| Specifies a path to include a file. |
| See |
| .Sx File Inclusion . |
| .It Ic path pre_shared_key Ar file ; |
| Specifies a file containing pre-shared key(s) for various ID(s). |
| See |
| .Sx Pre-shared key File . |
| .It Ic path certificate Ar path ; |
| .Xr racoon 8 |
| will search this directory if a certificate or certificate request is received. |
| If you run with privilege separation, |
| .Xr racoon 8 |
| will refuse to use a certificate stored outside of this directory. |
| .It Ic path backupsa Ar file ; |
| Specifies a file to which SA information negotiated by |
| racoon should be stored. |
| .Xr racoon 8 |
| will install SA(s) from the file when started with the |
| .Fl B |
| flag. |
| The file is growing because |
| .Xr racoon 8 |
| simply adds SAs to it. |
| You should maintain the file manually. |
| .It Ic path script Ar path ; |
| .Xr racoon 8 |
| will search this directory for scripts hooks. |
| If you run with privilege separation, |
| .Xr racoon 8 |
| will refuse to execute a script stored outside of this directory. |
| .It Ic path pidfile Ar file ; |
| Specifies file where to store PID of process. |
| If path starts with |
| .Pa / |
| it is treated as an absolute path. |
| Otherwise, it is treated as a relative |
| path to the VARRUN directory specified at compilation time. |
| Default is |
| .Pa racoon.pid . |
| .El |
| .\" |
| .Ss File Inclusion |
| .Bl -tag -width Ds -compact |
| .It Ic include Ar file |
| Specifies other configuration files to be included. |
| .El |
| .\" |
| .Ss Timer Specification |
| .Bl -tag -width Ds -compact |
| .It Ic timer { Ar statements Ic } |
| This section specifies various timer values used by racoon. |
| .Pp |
| .Bl -tag -width Ds -compact |
| .It Ic counter Ar number ; |
| The maximum number of retries to send. |
| The default is 5. |
| .It Ic interval Ar number Ar timeunit ; |
| The interval to resend, in seconds. |
| The default time is 10 seconds. |
| .It Ic persend Ar number ; |
| The number of packets per send. |
| The default is 1. |
| .It Ic phase1 Ar number Ar timeunit ; |
| The maximum time it should take to complete phase 1. |
| The default time is 15 seconds. |
| .It Ic phase2 Ar number Ar timeunit ; |
| The maximum time it should take to complete phase 2. |
| The default time is 10 seconds. |
| .It Ic natt_keepalive Ar number Ar timeunit ; |
| The interval between sending NAT-Traversal keep-alive packets. |
| The default time is 20 seconds. |
| Set to 0s to disable keep-alive packets. |
| .El |
| .El |
| .\" |
| .Ss Listening Port Specification |
| .Bl -tag -width Ds -compact |
| .It Ic listen { Ar statements Ic } |
| If no |
| .Ar listen |
| directive is specified, |
| .Xr racoon 8 |
| will listen on all available interface addresses. |
| The following is the list of valid statements: |
| .Pp |
| .Bl -tag -width Ds -compact |
| .\" How do I express bold brackets; `[' and `]' . |
| .\" Answer: For bold brackets, do "Ic \&[ foo \&]". |
| .\" Is the "Bq Ic [ Ar port ] ;" buggy ? |
| .It Ic isakmp Ar address Bq Bq Ar port ; |
| If this is specified, |
| .Xr racoon 8 |
| will only listen on the defined |
| .Ar address . |
| The default port is 500, which is specified by IANA. |
| You can provide more than one address definition. |
| .It Ic isakmp_natt Ar address Bq Ar port ; |
| Same as |
| .Ic isakmp |
| but also sets the socket options to accept UDP-encapsulated ESP traffic for |
| NAT-Traversal. |
| If you plan to use NAT-T, you should provide at least one address |
| with port 4500, which is specified by IANA. |
| There is no default. |
| .It Ic strict_address ; |
| Requires that all addresses for ISAKMP be bound. |
| This statement will be ignored if you do not specify address definitions. |
| .El |
| When running in privilege separation mode, you need to restart |
| .Xr racoon 8 |
| to have changes to the |
| .Ar listen |
| section taken into account. |
| .Pp |
| The |
| .Ar listen |
| section can also be used to specify the admin socket mode and ownership |
| if racoon was built with support for admin port. |
| .Bl -tag -width Ds -compact |
| .It Ic adminsock Ar path Op Ar owner\ group\ mode ; |
| The |
| .Ar path , |
| .Ar owner , |
| and |
| .Ar group |
| values specify the socket path, owner, and group. |
| They must be quoted. |
| The defaults are |
| .Pa /var/racoon/racoon.sock , |
| UID 0, and GID 0. |
| .Ar mode |
| is the access mode in octal. |
| The default is 0600. |
| .It Ic adminsock disabled ; |
| This directive tells racoon to not listen on the admin socket. |
| .El |
| .El |
| .\" |
| .Ss Miscellaneous Global Parameters |
| .Bl -tag -width Ds -compact |
| .It Ic gss_id_enc Ar enctype ; |
| Older versions of |
| .Xr racoon 8 |
| used ISO-Latin-1 as the encoding of the GSS-API identifier attribute. |
| For interoperability with Microsoft Windows' GSS-API authentication |
| scheme, the default encoding has been changed to UTF-16LE. |
| The |
| .Ic gss_id_enc |
| parameter allows |
| .Xr racoon 8 |
| to be configured to use the old encoding for compatibility with existing |
| .Xr racoon 8 |
| installations. |
| The following are valid values for |
| .Ar enctype : |
| .Pp |
| .Bl -tag -width Ds -compact |
| .It Ic utf-16le |
| Use UTF-16LE to encode the GSS-API identifier attribute. |
| This is the default encoding. |
| This encoding is compatible with Microsoft Windows. |
| .It Ic latin1 |
| Use ISO-Latin-1 to encode the GSS-API identifier attribute. |
| This is the encoding used by older versions of |
| .Xr racoon 8 . |
| .El |
| .El |
| .\" |
| .Pp |
| .Bl -tag -width Ds -compact |
| .It Ic pfkey_buffer Ar kBytes |
| Specifies the socket send/receive buffer size in kilobytes. |
| Numerous kernel PF_KEY implementations have problems with dumping |
| SAD/SDP with large amount of entries (this happens when 100s to |
| 1000s of tunnels are configured). |
| .Pp |
| The default value of 0 leaves everything at the OS-specific default value. |
| If the default buffer size is greater than what is specified here racoon |
| will not decrease it. |
| .Pp |
| This problem is known to be fixed in Linux 2.6.25 and later. |
| .El |
| .\" |
| .Ss Remote Nodes Specifications |
| .Bl -tag -width Ds -compact |
| .It Ic remote Ar name Bo Ic inherit Ar parent_name Bc Ic { Ar statements Ic } |
| Specifies the IKE phase 1 parameters for each remote node. |
| .Pp |
| If connection is initiated using racoonctl, a unique match using the |
| remote IP must be found or the remote block name has to be given. |
| For received acquires (kernel notices traffic requiring a new SA) the |
| remote IP and remoteid from matching sainfo block are used to decide |
| the remoteblock. |
| If no uniquely matching remoteblock is found using |
| these criteria, no connection attempt is done. |
| .Pp |
| When acting as responder, racoon picks the first proposal that has one |
| or more acceptable remote configurations. |
| When determining if a remote |
| specification is matching the following information is checked: |
| .Bl -bullet -width Ds -compact |
| .It |
| The remote IP is checked against |
| .Ic remote_address . |
| .It |
| ISAKMP exchange type is checked against |
| .Ic exchange_mode . |
| .It |
| ISAKMP SA attributes must match a |
| .Ic proposal |
| block. |
| .It |
| The remote identity is matched against |
| .Ic peers_identifier |
| if |
| .Ic verify_identifier |
| is on. |
| .It |
| If a certificate request was received, it must match the issuer of |
| .Ic "certificate_type x509" |
| certificate. |
| If certificate request without issuer name was sent, the |
| .Ic match_empty_cr |
| parameter specifies whether or not remote block matches. |
| .El |
| .Pp |
| Similarly, NAT-T is enabled if any of the initial remote configuration |
| candidates allow NAT-T. |
| .Pp |
| Sections with |
| .Ic inherit Ar parent |
| statements (where |
| .Ar parent |
| is either |
| .Ar address |
| or a keyword |
| .Ic anonymous ) |
| that have all values predefined to those of a given |
| .Ar parent . |
| In these sections it is enough to redefine only the changed parameters. |
| .Pp |
| The following are valid statements. |
| .Pp |
| .Bl -tag -width Ds -compact |
| .\" |
| .It Ic remote_address Ar address ; |
| Defines the IP address of the peer. |
| .\" |
| .It Ic exchange_mode ( main | aggressive | base ) ; |
| Defines the exchange mode for phase 1 when racoon is the initiator. |
| It also means the acceptable exchange mode when racoon is the responder. |
| More than one mode can be specified by separating them with a comma. |
| All of the modes are acceptable. |
| The first exchange mode is what racoon uses when it is the initiator. |
| .\" |
| .It Ic doi Ic ipsec_doi ; |
| Means to use IPsec DOI as specified in RFC 2407. |
| You can omit this statement. |
| .\" |
| .It Ic situation Ic identity_only ; |
| Means to use SIT_IDENTITY_ONLY as specified in RFC 2407. |
| You can omit this statement. |
| .\" |
| .It Ic my_identifier Bo Ar qualifier Bc Ar idtype ... ; |
| Specifies the identifier sent to the remote host |
| and the type to use in the phase 1 negotiation. |
| .Ic address, fqdn , user_fqdn , keyid , |
| and |
| .Ic asn1dn |
| can be used as an |
| .Ar idtype . |
| The |
| .Ar qualifier |
| is currently only used for |
| .Ic keyid , |
| and can be either |
| .Ic file |
| or |
| .Ic tag . |
| The possible values are : |
| .Bl -tag -width Ds -compact |
| .It Ic my_identifier Ic address Bq Ar address ; |
| The type is the IP address. |
| This is the default type if you do not specify an identifier to use. |
| .It Ic my_identifier Ic user_fqdn Ar string ; |
| The type is a USER_FQDN (user fully-qualified domain name). |
| .It Ic my_identifier Ic fqdn Ar string ; |
| The type is a FQDN (fully-qualified domain name). |
| .It Ic my_identifier Ic keyid Bo Ic file Bc Ar file ; |
| The type is a KEY_ID, read from the file. |
| .It Ic my_identifier Ic keyid Ic tag Ar string ; |
| The type is a KEY_ID, specified in the quoted string. |
| .It Ic my_identifier Ic asn1dn Bq Ar string ; |
| The type is an ASN.1 distinguished name. |
| If |
| .Ar string |
| is omitted, |
| .Xr racoon 8 |
| will get the DN from the Subject field in the certificate. |
| .El |
| .\" |
| .It Ic xauth_login Bq Ar string ; |
| Specifies the login to use in client-side Hybrid authentication. |
| It is available only if |
| .Xr racoon 8 |
| has been built with this option. |
| The associated password is looked up in the pre-shared key files, |
| using the login |
| .Ic string |
| as the key id. |
| .\" |
| .It Ic peers_identifier Ar idtype ... ; |
| Specifies the peer's identifier to be received. |
| If it is not defined then |
| .Xr racoon 8 |
| will not verify the peer's identifier in ID payload transmitted from the peer. |
| If it is defined, the behavior of the verification depends on the flag of |
| .Ic verify_identifier . |
| The usage of |
| .Ar idtype |
| is the same as |
| .Ic my_identifier |
| except that the individual component values of an |
| .Ic asn1dn |
| identifier may specified as |
| .Ic * |
| to match any value (e.g. "C=XX, O=MyOrg, OU=*, CN=Mine"). |
| The format of the |
| specification should correspond to RFC 2253; in particular, commas and certain |
| other characters - |
| .Ic ,=+\*[Lt]\*[Gt]#; |
| - may be included in a name by preceeding them with a backslash "\e", and |
| arbitrary characters may be inserted in a name with the "\enn" escape, where |
| nn is the hex representation of the ascii value of the desired character. |
| Alternative acceptable peer identifiers may be specified by repeating the |
| .Ic peers_identifier |
| statement. |
| .\" |
| .It Ic verify_identifier (on | off) ; |
| If you want to verify the peer's identifier, |
| set this to on. |
| In this case, if the value defined by |
| .Ic peers_identifier |
| is not the same as the peer's identifier in the ID payload, |
| the negotiation will fail. |
| The default is off. |
| .\" |
| .It Ic certificate_type Ar certspec ; |
| Specifies a certificate specification. |
| .Ar certspec |
| is one of followings: |
| .Bl -tag -width Ds -compact |
| .It Ic x509 Ar certfile Ar privkeyfile ; |
| .Ar certfile |
| means a file name of a certificate. |
| .Ar privkeyfile |
| means a file name of a secret key. |
| .El |
| .Bl -tag -width Ds -compact |
| .It Ic plain_rsa Ar privkeyfile ; |
| .Ar privkeyfile |
| means a file name of a private key generated by |
| .Xr plainrsa-gen 8 . |
| Required |
| for RSA authentication. |
| .El |
| .It Ic ca_type Ar cacertspec ; |
| Specifies a root certificate authority specification. |
| .Ar cacertspec |
| is one of followings: |
| .Bl -tag -width Ds -compact |
| .It Ic x509 Ar cacertfile ; |
| .Ar cacertfile |
| means a file name of the root certificate authority. |
| Default is |
| .Pa /etc/openssl/cert.pem |
| .El |
| .\" |
| .It Ic mode_cfg (on | off) ; |
| Gather network information through ISAKMP mode configuration. |
| Default is off. |
| .\" |
| .It Ic weak_phase1_check (on | off) ; |
| Tells racoon to act on unencrypted deletion messages during phase 1. |
| This is a small security risk, so the default is off, meaning that |
| racoon will keep on trying to establish a connection even if the |
| user credentials are wrong, for instance. |
| .\" |
| .It Ic peers_certfile ( dnssec | Ar certfile | Ic plain_rsa Ar pubkeyfile ) ; |
| If |
| .Ic dnssec |
| is defined, |
| .Xr racoon 8 |
| will ignore the CERT payload from the peer, |
| and try to get the peer's certificate from DNS instead. |
| If |
| .Ar certfile |
| is defined, |
| .Xr racoon 8 |
| will ignore the CERT payload from the peer, |
| and will use this certificate as the peer's certificate. |
| If |
| .Ic plain_rsa |
| is defined, |
| .Xr racoon 8 |
| will expect |
| .Ar pubkeyfile |
| to be the peer's public key that was generated by |
| .Xr plainrsa-gen 8 . |
| .\" |
| .It Ic script Ar script Ic phase1_up |
| .It Ic script Ar script Ic phase1_down |
| .It Ic script Ar script Ic phase1_dead |
| Shell scripts that get executed when a phase 1 SA goes up or down, or |
| when it is detected as dead by DPD. |
| All scripts get either |
| .Ic phase1_up |
| , |
| .Ic phase1_down |
| or |
| .Ic phase1_dead |
| as first argument, and the following |
| variables are set in their environment: |
| .Bl -tag -width Ds -compact |
| .It Ev LOCAL_ADDR |
| The local address of the phase 1 SA. |
| .It Ev LOCAL_PORT |
| The local port used for IKE for the phase 1 SA. |
| .It Ev REMOTE_ADDR |
| The remote address of the phase 1 SA. |
| .It Ev REMOTE_PORT |
| The remote port used for IKE for the phase 1 SA. |
| .It Ev REMOTE_ID |
| The remote identity received in IKE for the phase 1 SA. |
| .El |
| The following variables are only set if |
| .Ic mode_cfg |
| was enabled: |
| .Bl -tag -width Ds -compact |
| .It INTERNAL_ADDR4 |
| An IPv4 internal address obtained by ISAKMP mode config. |
| .It INTERNAL_NETMASK4 |
| An IPv4 internal netmask obtained by ISAKMP mode config. |
| .It INTERNAL_CIDR4 |
| An IPv4 internal netmask obtained by ISAKMP mode config, in CIDR notation. |
| .It INTERNAL_DNS4 |
| The first internal DNS server IPv4 address obtained by ISAKMP mode config. |
| .It INTERNAL_DNS4_LIST |
| A list of internal DNS servers IPv4 address obtained by ISAKMP mode config, |
| separated by spaces. |
| .It INTERNAL_WINS4 |
| The first internal WINS server IPv4 address obtained by ISAKMP mode config. |
| .It INTERNAL_WINS4_LIST |
| A list of internal WINS servers IPv4 address obtained by ISAKMP mode config, |
| separated by spaces. |
| .It SPLIT_INCLUDE |
| The space separated list of IPv4 addresses and masks (address slash mask) |
| that define the networks to be encrypted (as opposed to the default where |
| all the traffic should be encrypted) ; obtained by ISAKMP mode config ; |
| SPLIT_INCLUDE and SPLIT_LOCAL are mutually exclusive. |
| .It SPLIT_LOCAL |
| The space separated list of IPv4 addresses and masks (address slash mask) |
| that define the networks to be considered local, and thus excluded from the |
| tunnels ; obtained by ISAKMP mode config. |
| .It SPLIT_INCLUDE_CIDR |
| Same as SPLIT_INCLUDE, with netmasks in CIDR notation. |
| .It SPLIT_LOCAL_CIDR |
| Same as SPLIT_LOCAL, with netmasks in CIDR notation. |
| .It DEFAULT_DOMAIN |
| The DNS default domain name obtained by ISAKMP mode config. |
| .El |
| .\" |
| .\" |
| .It Ic send_cert (on | off) ; |
| If you do not want to send a certificate, set this to off. |
| The default is on. |
| .\" |
| .It Ic send_cr (on | off) ; |
| If you do not want to send a certificate request, set this to off. |
| The default is on. |
| .\" |
| .It Ic match_empty_cr (on | off) ; |
| Specifies whether this remote block is a valid match when a non-specific |
| certificate request is received. |
| The default is on. |
| .\" |
| .It Ic verify_cert (on | off) ; |
| By default, the identifier sent by the remote host (as specified in its |
| .Ic my_identifier |
| statement) is compared with the credentials in the certificate |
| used to authenticate the remote host as follows: |
| .Bl -tag -width Ds -compact |
| .It Type Ic asn1dn : |
| The entire certificate subject name is compared with the identifier, |
| e.g. "C=XX, O=YY, ...". |
| .It Type Ic address, fqdn, or user_fqdn : |
| The certificate's subjectAltName is compared with the identifier. |
| .El |
| If the two do not match the negotiation will fail. |
| If you do not want to verify the identifier using the peer's certificate, |
| set this to off. |
| .\" |
| .It Ic lifetime time Ar number Ar timeunit ; |
| Define a lifetime of a certain time |
| which will be proposed in the phase 1 negotiations. |
| Any proposal will be accepted, and the attribute(s) will not be proposed to |
| the peer if you do not specify it (them). |
| They can be individually specified in each proposal. |
| .\" |
| .It Ic ike_frag (on | off | force) ; |
| Enable receiver-side IKE fragmentation if |
| .Xr racoon 8 |
| has been built with this feature. |
| If set to on, racoon will advertise |
| itself as being capable of receiving packets split by IKE fragmentation. |
| This extension is there to work around broken firewalls that do not |
| work with fragmented UDP packets. |
| IKE fragmentation is always enabled on the sender-side, and it is |
| used if the peer advertises itself as IKE fragmentation capable. |
| By selecting force, IKE Fragmentation will |
| be used when racoon is acting as the initiator even before the remote |
| peer has advertised itself as IKE fragmentation capable. |
| .\" |
| .It Ic esp_frag Ar fraglen ; |
| This option is only relevant if you use NAT traversal in tunnel mode. |
| Its purpose is to work around broken DSL routers that reject UDP |
| fragments, by fragmenting the IP packets before ESP encapsulation. |
| The result is ESP over UDP of fragmented packets instead of fragmented |
| ESP over UDP packets (i.e., IP:UDP:ESP:frag(IP) instead of |
| frag(IP:UDP:ESP:IP)). |
| .Ar fraglen |
| is the maximum size of the fragments. |
| 552 should work anywhere, |
| but the higher |
| .Ar fraglen |
| is, the better the performance. |
| .Pp |
| Note that because PMTU discovery is broken on many sites, you will |
| have to use MSS clamping if you want TCP to work correctly. |
| .\" |
| .It Ic initial_contact (on | off) ; |
| Enable this to send an INITIAL-CONTACT message. |
| The default value is |
| .Ic on . |
| This message is useful only when the responder implementation chooses an |
| old SA when there are multiple SAs with different established time and the |
| initiator reboots. |
| If racoon did not send the message, |
| the responder would use an old SA even when a new SA was established. |
| For systems that use a KAME derived IPSEC stack, the |
| .Xr sysctl 8 |
| variable net.key.preferred_oldsa can be used to control this preference. |
| When the value is zero, the stack always uses a new SA. |
| .\" |
| .It Ic passive (on | off) ; |
| If you do not want to initiate the negotiation, set this to on. |
| The default value is |
| .Ic off . |
| It is useful for a server. |
| .\" |
| .It Ic proposal_check Ar level ; |
| Specifies the action of lifetime length, key length, and PFS of the phase 2 |
| selection on the responder side, and the action of lifetime check in |
| phase 1. |
| The default level is |
| .Ic strict . |
| If the |
| .Ar level |
| is: |
| .Bl -tag -width Ds -compact |
| .It Ic obey |
| The responder will obey the initiator anytime. |
| .It Ic strict |
| If the responder's lifetime length is longer than the initiator's or |
| the responder's key length is shorter than the initiator's, |
| the responder will use the initiator's value. |
| Otherwise, the proposal will be rejected. |
| If PFS is not required by the responder, the responder will obey the proposal. |
| If PFS is required by both sides and the responder's group is not equal to |
| the initiator's, then the responder will reject the proposal. |
| .It Ic claim |
| If the responder's lifetime length is longer than the initiator's or |
| the responder's key length is shorter than the initiator's, |
| the responder will use the initiator's value. |
| If the responder's lifetime length is shorter than the initiator's, |
| the responder uses its own length AND sends a RESPONDER-LIFETIME notify |
| message to an initiator in the case of lifetime (phase 2 only). |
| For PFS, this directive behaves the same as |
| .Ic strict . |
| .It Ic exact |
| If the initiator's lifetime or key length is not equal to the responder's, |
| the responder will reject the proposal. |
| If PFS is required by both sides and the responder's group is not equal to |
| the initiator's, then the responder will reject the proposal. |
| .El |
| .\" |
| .It Ic support_proxy (on | off) ; |
| If this value is set to on, then both values of ID payloads in the |
| phase 2 exchange are always used as the addresses of end-point of |
| IPsec-SAs. |
| The default is off. |
| .\" |
| .It Ic generate_policy (on | off | require | unique) ; |
| This directive is for the responder. |
| Therefore you should set |
| .Ic passive |
| to on in order that |
| .Xr racoon 8 |
| only becomes a responder. |
| If the responder does not have any policy in SPD during phase 2 |
| negotiation, and the directive is set to on, then |
| .Xr racoon 8 |
| will choose the first proposal in the |
| SA payload from the initiator, and generate policy entries from the proposal. |
| It is useful to negotiate with clients whose IP address is allocated |
| dynamically. |
| Note that an inappropriate policy might be installed into the responder's SPD |
| by the initiator, |
| so other communications might fail if such policies are installed |
| due to a policy mismatch between the initiator and the responder. |
| .Ic on |
| and |
| .Ic require |
| values mean the same thing (generate a require policy). |
| .Ic unique |
| tells racoon to set up unique policies, with a monotoning increasing |
| reqid number (between 1 and IPSEC_MANUAL_REQID_MAX). |
| This directive is ignored in the initiator case. |
| The default value is |
| .Ic off . |
| .\" |
| .\" |
| .It Ic nat_traversal (on | off | force) ; |
| This directive enables use of the NAT-Traversal IPsec extension |
| (NAT-T). |
| NAT-T allows one or both peers to reside behind a NAT gateway (i.e., |
| doing address- or port-translation). |
| If a NAT gateway is detected during the phase 1 handshake, racoon will |
| attempt to negotiate the use of NAT-T with the remote peer. |
| If the negotiation succeeds, all ESP and AH packets for the given connection |
| will be encapsulated into UDP datagrams (port 4500, by default). |
| Possible values are: |
| .Bl -tag -width Ds -compact |
| .It Ic on |
| NAT-T is used when a NAT gateway is detected between the peers. |
| .It Ic off |
| NAT-T is not proposed/accepted. |
| This is the default. |
| .It Ic force |
| NAT-T is used regardless of whether a NAT gateway is detected between the |
| peers or not. |
| .El |
| Please note that NAT-T support is a compile-time option. |
| Although it is enabled in the source distribution by default, it |
| may not be available in your particular build. |
| In that case you will get a |
| warning when using any NAT-T related config options. |
| .\" |
| .It Ic dpd_delay Ar delay ; |
| This option activates the DPD and sets the time (in seconds) allowed |
| between 2 proof of liveliness requests. |
| The default value is |
| .Ic 0 , |
| which disables DPD monitoring, but still negotiates DPD support. |
| .\" |
| .It Ic dpd_retry Ar delay ; |
| If |
| .Ic dpd_delay |
| is set, this sets the delay (in seconds) to wait for a proof of |
| liveliness before considering it as failed and send another request. |
| The default value is |
| .Ic 5 . |
| .\" |
| .It Ic dpd_maxfail Ar number ; |
| If |
| .Ic dpd_delay |
| is set, this sets the maximum number of liveliness proofs to request |
| (without reply) before considering the peer is dead. |
| The default value is |
| .Ic 5 . |
| .\" |
| .It Ic rekey (on | off | force) ; |
| Enable automatic renegotiation of expired phase1 when there are non-dying |
| phase2 SAs. |
| Possible values are: |
| .Bl -tag -width Ds -compact |
| .It Ic force |
| Rekeying is done unconditionally. |
| .It Ic on |
| Rekeying is done only if DPD monitoring is active. |
| This is the default. |
| .It Ic off |
| No automatic rekeying. |
| Do note that turning off automatic rekeying will |
| result in inaccurate DPD monitoring. |
| .El |
| .\" |
| .It Ic nonce_size Ar number ; |
| define the byte size of nonce value. |
| Racoon can send any value although |
| RFC2409 specifies that the value MUST be between 8 and 256 bytes. |
| The default size is 16 bytes. |
| .\" |
| .It Ic ph1id Ar number ; |
| An optional number to identify the remote proposal and to link it |
| only with sainfos who have the same number. |
| Defaults to 0. |
| .\" |
| .It Ic proposal { Ar sub-substatements Ic } |
| .Bl -tag -width Ds -compact |
| .\" |
| .It Ic encryption_algorithm Ar algorithm ; |
| Specifies the encryption algorithm used for the phase 1 negotiation. |
| This directive must be defined. |
| .Ar algorithm |
| is one of following: |
| .Ic des, 3des, blowfish, cast128, aes, camellia |
| .\".Ic rc5 , idea |
| for Oakley. |
| For other transforms, this statement should not be used. |
| .\" |
| .It Ic hash_algorithm Ar algorithm ; |
| Defines the hash algorithm used for the phase 1 negotiation. |
| This directive must be defined. |
| .Ar algorithm |
| is one of following: |
| .Ic md5, sha1, sha256, sha384, sha512 |
| for Oakley. |
| .\" |
| .It Ic authentication_method Ar type ; |
| Defines the authentication method used for the phase 1 negotiation. |
| This directive must be defined. |
| .Ar type |
| is one of: |
| .Ic pre_shared_key , rsasig |
| (for plain RSA authentication), |
| .Ic gssapi_krb , hybrid_rsa_server , |
| .Ic hybrid_rsa_client , xauth_rsa_server , xauth_rsa_client , xauth_psk_server |
| or |
| .Ic xauth_psk_client . |
| .\" |
| .It Ic dh_group Ar group ; |
| Defines the group used for the Diffie-Hellman exponentiations. |
| This directive must be defined. |
| .Ar group |
| is one of following: |
| .Ic modp768 , modp1024 , modp1536 , |
| .Ic modp2048 , modp3072 , modp4096 , |
| .Ic modp6144 , modp8192 . |
| Or you can define 1, 2, 5, 14, 15, 16, 17, or 18 as the DH group number. |
| When you want to use aggressive mode, |
| you must define the same DH group in each proposal. |
| .It Ic lifetime time Ar number Ar timeunit ; |
| Defines the lifetime of the phase 1 SA proposal. |
| Refer to the description of the |
| .Ic lifetime |
| directive defined in the |
| .Ic remote |
| directive. |
| .It Ic gss_id Ar string ; |
| Defines the GSS-API endpoint name, to be included as an attribute in the SA, |
| if the |
| .Ic gssapi_krb |
| authentication method is used. |
| If this is not defined, the default value of |
| .Ql host/hostname |
| is used, where hostname is the value returned by the |
| .Xr hostname 1 |
| command. |
| .El |
| .El |
| .Pp |
| .It Ic remote Po Ar address | Ic anonymous Pc Bo Bo Ar port Bc Bc \ |
| Bo Ic inherit Ar parent Bc Ic { Ar statements Ic } |
| Deprecated format of specifying a remote block. |
| This will be removed in future. |
| It is a remnant from time when remote block was decided |
| solely based on the peers IP address. |
| .Pp |
| This is equivalent to: |
| .Bd -literal -offset |
| remote "address" [inherit "parent-address"] { |
| remote_address address; |
| } |
| .Ed |
| .El |
| .\" |
| .Ss Sainfo Specifications |
| .Bl -tag -width Ds -compact |
| .It Ic sainfo Po Ar local_id | Ic anonymous Pc \ |
| Po Ar remote_id | Ic clientaddr | Ic anonymous Pc \ |
| Bo Ic from Ar idtype Bo Ar string Bc Bc Bo Ic group Ar string Bc \ |
| Ic { Ar statements Ic } |
| Defines the parameters of the IKE phase 2 (IPsec-SA establishment). |
| .Pp |
| The |
| .Ar local_id |
| and |
| .Ar remote_id |
| strings are constructed like: |
| .Pp |
| .Ic address Ar address |
| .Bq Ic / Ar prefix |
| .Bq Ic [ Ar port ] |
| .Ar ul_proto |
| .Pp |
| or |
| .Pp |
| .Ic subnet Ar address |
| .Bq Ic / Ar prefix |
| .Bq Ic [ Ar port ] |
| .Ar ul_proto |
| .Pp |
| An id string should be expressed to match the exact value of an ID payload. |
| This is not like a filter rule. |
| For example, if you define 3ffe:501:4819::/48 as |
| .Ar local_id . |
| 3ffe:501:4819:1000:/64 will not match. |
| In the case of a longest prefix (selecting a single host), |
| .Ar address |
| instructs to send ID type of ADDRESS while |
| .Ar subnet |
| instructs to send ID type of SUBNET. |
| Otherwise, these instructions are identical. |
| .Pp |
| The |
| .Ic anonymous |
| keyword can be used to match any id. |
| The |
| .Ic clientaddr |
| keyword can be used to match a remote id that is equal to either the peer |
| ip address or the mode_cfg ip address (if assigned). |
| This can be useful |
| to restrict policy generation when racoon is acting as a client gateway |
| for peers with dynamic ip addresses. |
| .Pp |
| The |
| .Ic from |
| keyword allows an sainfo to only match for peers that use a specific phase1 |
| id value during authentication. |
| The |
| .Ic group |
| keyword allows an XAuth group membership check to be performed |
| for this sainfo section. |
| When the mode_cfg auth source is set to |
| .Ic system |
| or |
| .Ic ldap , |
| the XAuth user is verified to be a member of the specified group |
| before allowing a matching SA to be negotiated. |
| .Pp |
| .Bl -tag -width Ds -compact |
| .\" |
| .It Ic pfs_group Ar group ; |
| define the group of Diffie-Hellman exponentiations. |
| If you do not require PFS then you can omit this directive. |
| Any proposal will be accepted if you do not specify one. |
| .Ar group |
| is one of following: |
| .Ic modp768 , modp1024 , modp1536 , |
| .Ic modp2048 , modp3072 , modp4096 , |
| .Ic modp6144 , modp8192 . |
| Or you can define 1, 2, 5, 14, 15, 16, 17, or 18 as the DH group number. |
| .\" |
| .It Ic lifetime time Ar number Ar timeunit ; |
| define how long an IPsec-SA will be used, in timeunits. |
| Any proposal will be accepted, and no attribute(s) will be proposed to |
| the peer if you do not specify it(them). |
| See the |
| .Ic proposal_check |
| directive. |
| .\" |
| .It Ic remoteid Ar number ; |
| Sainfos will only be used if their remoteid matches the ph1id of the |
| remote section used for phase 1. |
| Defaults to 0, which is also the default for ph1id. |
| .El |
| .\" |
| .Pp |
| .Xr racoon 8 |
| does not have a list of security protocols to be negotiated. |
| The list of security protocols are passed by SPD in the kernel. |
| Therefore you have to define all of the potential algorithms |
| in the phase 2 proposals even if there are algorithms which will not be used. |
| These algorithms are define by using the following three directives, |
| with a single comma as the separator. |
| For algorithms that can take variable-length keys, algorithm names |
| can be followed by a key length, like |
| .Dq Li blowfish 448 . |
| .Xr racoon 8 |
| will compute the actual phase 2 proposals by computing |
| the permutation of the specified algorithms, |
| and then combining them with the security protocol specified by the SPD. |
| For example, if |
| .Ic des , 3des , hmac_md5 , |
| and |
| .Ic hmac_sha1 |
| are specified as algorithms, we have four combinations for use with ESP, |
| and two for AH. |
| Then, based on the SPD settings, |
| .Xr racoon 8 |
| will construct the actual proposals. |
| If the SPD entry asks for ESP only, there will be 4 proposals. |
| If it asks for both AH and ESP, there will be 8 proposals. |
| Note that the kernel may not support the algorithm you have specified. |
| .\" |
| .Bl -tag -width Ds -compact |
| .It Ic encryption_algorithm Ar algorithms ; |
| .Ic des , 3des , des_iv64 , des_iv32 , |
| .Ic rc5 , rc4 , idea , 3idea , |
| .Ic cast128 , blowfish , null_enc , |
| .Ic twofish , rijndael , aes , camellia |
| .Pq used with ESP |
| .\" |
| .It Ic authentication_algorithm Ar algorithms ; |
| .Ic des , 3des , des_iv64 , des_iv32 , |
| .Ic hmac_md5 , hmac_sha1 , hmac_sha256, hmac_sha384, hmac_sha512, non_auth |
| .Pq used with ESP authentication and AH |
| .\" |
| .It Ic compression_algorithm Ar algorithms ; |
| .Ic deflate |
| .Pq used with IPComp |
| .El |
| .El |
| .\" |
| .Ss Logging level |
| .Bl -tag -width Ds -compact |
| .It Ic log Ar level ; |
| Defines the logging level. |
| .Ar level |
| is one of following: |
| .Ic error , warning , notify , info , debug |
| or |
| .Ic debug2 . |
| The default is |
| .Ic info . |
| If you set the logging level too high on slower machines, |
| IKE negotiation can fail due to timing constraint changes. |
| .El |
| .\" |
| .Ss Specifies the way to pad |
| .Bl -tag -width Ds -compact |
| .It Ic padding { Ar statements Ic } |
| specifies the padding format. |
| The following are valid statements: |
| .Bl -tag -width Ds -compact |
| .It Ic randomize (on | off) ; |
| Enables the use of a randomized value for padding. |
| The default is on. |
| .It Ic randomize_length (on | off) ; |
| The pad length will be random. |
| The default is off. |
| .It Ic maximum_length Ar number ; |
| Defines a maximum padding length. |
| If |
| .Ic randomize_length |
| is off, this is ignored. |
| The default is 20 bytes. |
| .It Ic exclusive_tail (on | off) ; |
| Means to put the number of pad bytes minus one into the last part |
| of the padding. |
| The default is on. |
| .It Ic strict_check (on | off) ; |
| Means to constrain the peer to set the number of pad bytes. |
| The default is off. |
| .El |
| .El |
| .Ss ISAKMP mode configuration settings |
| .Bl -tag -width Ds -compact |
| .It Ic mode_cfg { Ar statements Ic } |
| Defines the information to return for remote hosts' ISAKMP mode config |
| requests. |
| Also defines the authentication source for remote peers |
| authenticating through Xauth. |
| .Pp |
| The following are valid statements: |
| .Bl -tag -width Ds -compact |
| .It Ic auth_source (system | radius | pam | ldap) ; |
| Specifies the source for authentication of users through Xauth. |
| .Ar system |
| means to use the Unix user database. |
| This is the default. |
| .Ar radius |
| means to use a RADIUS server. |
| It works only if |
| .Xr racoon 8 |
| was built with libradius support. |
| Radius configuration is handled by statements in the |
| .Ic radiuscfg |
| section. |
| .Ar pam |
| means to use PAM. |
| It works only if |
| .Xr racoon 8 |
| was built with libpam support. |
| .Ar ldap |
| means to use LDAP. |
| It works only if |
| .Xr racoon 8 |
| was built with libldap support. |
| LDAP configuration is handled by statements in the |
| .Ic ldapcfg |
| section. |
| .It Ic auth_groups Ar "group1", ... ; |
| Specifies the group memberships for Xauth in quoted group name strings. |
| When defined, the authenticating user must be a member of at least one |
| group for Xauth to succeed. |
| .It Ic group_source (system | ldap) ; |
| Specifies the source for group validation of users through Xauth. |
| .Ar system |
| means to use the Unix user database. |
| This is the default. |
| .Ar ldap |
| means to use LDAP. |
| It works only if |
| .Xr racoon 8 |
| was built with libldap support and requires LDAP authentication. |
| LDAP configuration is handled by statements in the |
| .Ic ldapcfg |
| section. |
| .It Ic conf_source (local | radius | ldap) ; |
| Specifies the source for IP addresses and netmask allocated through ISAKMP |
| mode config. |
| .Ar local |
| means to use the local IP pool defined by the |
| .Ic network4 |
| and |
| .Ic pool_size |
| statements. |
| This is the default. |
| .Ar radius |
| means to use a RADIUS server. |
| It works only if |
| .Xr racoon 8 |
| was built with libradius support and requires RADIUS authentication. |
| RADIUS configuration is handled by statements in the |
| .Ic radiuscfg |
| section. |
| .Ar ldap |
| means to use an LDAP server. |
| It works only if |
| .Xr racoon 8 |
| was built with libldap support and requires LDAP authentication. |
| LDAP configuration is handled by |
| statements in the |
| .Ic ldapcfg |
| section. |
| .It Ic accounting (none | system | radius | pam) ; |
| Enables or disables accounting for Xauth logins and logouts. |
| The default is |
| .Ar none |
| which disable accounting. |
| Specifying |
| .Ar system |
| enables system accounting through |
| .Xr utmp 5 . |
| Specifying |
| .Ar radius |
| enables RADIUS accounting. |
| It works only if |
| .Xr racoon 8 |
| was built with libradius support and requires RADIUS authentication. |
| RADIUS configuration is handled by statements in the |
| .Ic radiuscfg |
| section. |
| Specifying |
| .Ar pam |
| enables PAM accounting. |
| It works only if |
| .Xr racoon 8 |
| was build with libpam support and requires PAM authentication. |
| .It Ic pool_size Ar size |
| Specify the size of the IP address pool, either local or allocated |
| through RADIUS. |
| .Ic conf_source |
| selects the local pool or the RADIUS configuration, but in both |
| configurations, you cannot have more than |
| .Ar size |
| users connected at the same time. |
| The default is 255. |
| .It Ic network4 Ar address ; |
| .It Ic netmask4 Ar address ; |
| The local IP pool base address and network mask from which dynamically |
| allocated IPv4 addresses should be taken. |
| This is used if |
| .Ic conf_source |
| is set to |
| .Ar local |
| or if the RADIUS server returned |
| .Ar 255.255.255.254 . |
| Default is |
| .Ar 0.0.0.0/0.0.0.0 . |
| .It Ic dns4 Ar addresses ; |
| A list of IPv4 addresses for DNS servers, separated by commas, or on multiple |
| .Ic dns4 |
| lines. |
| .It Ic wins4 Ar addresses ; |
| A list of IPv4 address for WINS servers. |
| The keyword |
| .It nbns4 |
| can also be used as an alias for |
| .It wins4 . |
| .It Ic split_network (include | local_lan) Ar network/mask, ... |
| The network configuration to send, in CIDR notation (e.g. 192.168.1.0/24). |
| If |
| .Ic include |
| is specified, the tunnel should be only used to encrypt the indicated |
| destinations ; otherwise, if |
| .Ic local_lan |
| is used, everything will pass through the tunnel but those destinations. |
| .It Ic default_domain Ar domain ; |
| The default DNS domain to send. |
| .It Ic split_dns Ar "domain", ... |
| The split dns configuration to send, in quoted domain name strings. |
| This list can be used to describe a list of domain names for which |
| a peer should query a modecfg assigned dns server. |
| DNS queries for all other domains would be handled locally. |
| (Cisco VPN client only). |
| .It Ic banner Ar path ; |
| The path of a file displayed on the client at connection time. |
| Default is |
| .Ar /etc/motd . |
| .It Ic auth_throttle Ar delay ; |
| On each failed Xauth authentication attempt, refuse new attempts for a set |
| .Ar delay |
| of seconds. |
| This is to avoid dictionary attacks on Xauth passwords. |
| Default is one second. |
| Set to zero to disable authentication delay. |
| .It Ic pfs_group Ar group ; |
| Sets the PFS group used in the client proposal (Cisco VPN client only). |
| Default is 0. |
| .It Ic save_passwd (on | off) ; |
| Allow the client to save the Xauth password (Cisco VPN client only). |
| Default is off. |
| .El |
| .El |
| .Ss Ldap configuration settings |
| .Bl -tag -width Ds -compact |
| .It Ic ldapcfg { Ar statements Ic } |
| Defines the parameters that will be used to communicate with an ldap |
| server for |
| .Ic xauth |
| authentication. |
| .Pp |
| The following are valid statements: |
| .Bl -tag -width Ds -compact |
| .It Ic version (2 | 3) ; |
| The ldap protocol version used to communicate with the server. |
| The default is |
| .Ic 3 . |
| .It Ic host Ar (hostname | address) ; |
| The host name or ip address of the ldap server. |
| The default is |
| .Ic localhost . |
| .It Ic port Ar number ; |
| The port that the ldap server is configured to listen on. |
| The default is |
| .Ic 389 . |
| .It Ic base Ar distinguished name ; |
| The ldap search base. |
| This option has no default value. |
| .It Ic subtree (on | off) ; |
| Use the subtree ldap search scope. |
| Otherwise, use the one level search scope. |
| The default is |
| .Ic off . |
| .It Ic bind_dn Ar distinguished name ; |
| The user dn used to optionally bind as before performing ldap search operations. |
| If this option is not specified, anonymous binds are used. |
| .It Ic bind_pw Ar string ; |
| The password used when binding as |
| .Ic bind_dn . |
| .It Ic attr_user Ar attribute name ; |
| The attribute used to specify a users name in an ldap directory. |
| For example, |
| if a user dn is "cn=jdoe,dc=my,dc=net" then the attribute would be "cn". |
| The default value is |
| .Ic cn . |
| .It Ic attr_addr Ar attribute name ; |
| .It Ic attr_mask Ar attribute name ; |
| The attributes used to specify a users network address and subnet mask in an |
| ldap directory. |
| These values are forwarded during mode_cfg negotiation when |
| the conf_source is set to ldap. |
| The default values are |
| .Ic racoon-address |
| and |
| .Ic racoon-netmask . |
| .It Ic attr_group Ar attribute name ; |
| The attribute used to specify a group name in an ldap directory. |
| For example, |
| if a group dn is "cn=users,dc=my,dc=net" then the attribute would be "cn". |
| The default value is |
| .Ic cn . |
| .It Ic attr_member Ar attribute name ; |
| The attribute used to specify group membership in an ldap directory. |
| The default value is |
| .Ic member . |
| .El |
| .El |
| .Ss Radius configuration settings |
| .Bl -tag -width Ds -compact |
| .It Ic radiuscfg { Ar statements Ic } |
| Defines the parameters that will be used to communicate with radius |
| servers for |
| .Ic xauth |
| authentication. |
| If radius is selected as the xauth authentication or accounting |
| source and no servers are defined in this section, settings from |
| the system |
| .Xr radius.conf 5 |
| configuration file will be used instead. |
| .Pp |
| The following are valid statements: |
| .Bl -tag -width Ds -compact |
| .It Ic auth Ar (hostname | address) [port] sharedsecret ; |
| The host name or ip address, optional port value and shared secret value |
| of a radius authentication server. |
| Up to 5 radius authentication servers |
| may be specified using multiple lines. |
| .It Ic acct Ar (hostname | address) [port] sharedsecret ; |
| The host name or ip address, optional port value and shared secret value |
| of a radius accounting server. |
| Up to 5 radius accounting servers may be |
| specified using multiple lines. |
| .It Ic timeout Ar seconds ; |
| The timeout for receiving replies from radius servers. |
| The default is |
| .Ic 3 . |
| .It Ic retries Ar count ; |
| The maximum number of repeated requests to make before giving up |
| on a radius server. |
| The default is |
| .Ic 3 . |
| .El |
| .El |
| .Ss Special directives |
| .Bl -tag -width Ds -compact |
| .It Ic complex_bundle (on | off) ; |
| defines the interpretation of proposal in the case of SA bundle. |
| Normally |
| .Dq IP AH ESP IP payload |
| is proposed as |
| .Dq AH tunnel and ESP tunnel . |
| The interpretation is more common to other IKE implementations, however, |
| it allows very limited set of combinations for proposals. |
| With the option enabled, it will be proposed as |
| .Dq AH transport and ESP tunnel . |
| The default value is |
| .Ic off . |
| .El |
| .\" |
| .Ss Pre-shared key File |
| The pre-shared key file defines pairs of identifiers and corresponding |
| shared secret keys which are used in the pre-shared key authentication |
| method in phase 1. |
| The pair in each line is separated by some number of blanks and/or tab |
| characters like in the |
| .Xr hosts 5 |
| file. |
| Key can include blanks because everything after the first blanks |
| is interpreted as the secret key. |
| Lines starting with |
| .Ql # |
| are ignored. |
| Keys which start with |
| .Ql 0x |
| are interpreted as hexadecimal strings. |
| Note that the file must be owned by the user ID running |
| .Xr racoon 8 |
| .Pq usually the privileged user , |
| and must not be accessible by others. |
| .\" |
| .Sh EXAMPLES |
| The following shows how the remote directive should be configured. |
| .Bd -literal -offset |
| path pre_shared_key "/usr/local/v6/etc/psk.txt" ; |
| remote anonymous |
| { |
| exchange_mode aggressive,main,base; |
| lifetime time 24 hour; |
| proposal { |
| encryption_algorithm 3des; |
| hash_algorithm sha1; |
| authentication_method pre_shared_key; |
| dh_group 2; |
| } |
| } |
| |
| sainfo anonymous |
| { |
| pfs_group 2; |
| lifetime time 12 hour ; |
| encryption_algorithm 3des, blowfish 448, twofish, rijndael ; |
| authentication_algorithm hmac_sha1, hmac_md5 ; |
| compression_algorithm deflate ; |
| } |
| .Ed |
| .Pp |
| If you are configuring plain RSA authentication, the remote directive |
| should look like the following: |
| .Bd -literal -offset |
| path certificate "/usr/local/v6/etc" ; |
| remote anonymous |
| { |
| exchange_mode main,base ; |
| lifetime time 12 hour ; |
| certificate_type plain_rsa "/usr/local/v6/etc/myrsakey.priv"; |
| peers_certfile plain_rsa "/usr/local/v6/etc/yourrsakey.pub"; |
| proposal { |
| encryption_algorithm aes ; |
| hash_algorithm sha1 ; |
| authentication_method rsasig ; |
| dh_group 2 ; |
| } |
| } |
| .Ed |
| .Pp |
| The following is a sample for the pre-shared key file. |
| .Bd -literal -offset |
| 10.160.94.3 mekmitasdigoat |
| 172.16.1.133 0x12345678 |
| 194.100.55.1 whatcertificatereally |
| 3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat |
| 3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat |
| foo@kame.net mekmitasdigoat |
| foo.kame.net hoge |
| .Ed |
| .\" |
| .Sh SEE ALSO |
| .Xr racoon 8 , |
| .Xr racoonctl 8 , |
| .Xr setkey 8 |
| .\" |
| .Sh HISTORY |
| The |
| .Nm |
| configuration file first appeared in the |
| .Dq YIPS |
| Yokogawa IPsec implementation. |
| .\" |
| .Sh BUGS |
| Some statements may not be handled by |
| .Xr racoon 8 |
| yet. |
| .Pp |
| Diffie-Hellman computation can take a very long time, and may cause |
| unwanted timeouts, specifically when a large D-H group is used. |
| .\" |
| .Sh SECURITY CONSIDERATIONS |
| The use of IKE phase 1 aggressive mode is not recommended, |
| as described in |
| .Li http://www.kb.cert.org/vuls/id/886601 . |