The following variables are only set if mode_cfg was
enabled:
INTERNAL_ADDR4
An IPv4 internal address obtained by ISAKMP mode
config.
INTERNAL_NETMASK4
An IPv4 internal netmask obtained by ISAKMP mode
config.
INTERNAL_CIDR4
An IPv4 internal netmask obtained by ISAKMP mode
config, in CIDR notation.
INTERNAL_DNS4
The first internal DNS server IPv4 address
obtained by ISAKMP mode config.
INTERNAL_DNS4_LIST
A list of internal DNS servers IPv4 address
obtained by ISAKMP mode config, separated by spa-
ces.
INTERNAL_WINS4
The first internal WINS server IPv4 address
obtained by ISAKMP mode config.
INTERNAL_WINS4_LIST
A list of internal WINS servers IPv4 address
obtained by ISAKMP mode config, separated by spa-
ces.
SPLIT_INCLUDE
The space separated list of IPv4 addresses and
masks (address slash mask) that define the net-
works 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.
SPLIT_LOCAL
The space separated list of IPv4 addresses and
masks (address slash mask) that define the net-
works to be considered local, and thus excluded
from the tunnels ; obtained by ISAKMP mode con-
fig.
DEFAULT_DOMAIN
The DNS default domain name obtained by ISAKMP
mode config.
send_cert (on | off);
If you do not want to send a certificate for some reason,
set this to off. The default is on.
send_cr (on | off);
If you do not want to send a certificate request for some
reason, set this to off. The default is on.
verify_cert (on | off);
If you do not want to verify the peer's certificate for
some reason, set this to off. The default is on.
lifetime time number timeunit;
Define a lifetime of a certain time which will be pro-
posed in the phase 1 negotiations. Any proposal will be
accepted, and the attribute(s) will be not proposed to
the peer if you do not specify it (them). They can be
individually specified in each proposal.
ike_frag (on | off);
Enable receiver-side IKE fragmentation, if racoon(8) has
been built with this feature. This extension is there to
work around broken firewalls that do not work with frag-
mented UDP packets. IKE fragmentation is always enabled
on the sender-side, and it is used if the peer advertises
itself as IKE fragmentation capable.
esp_frag 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)). fraglen is the maximum size of the
fragments. 552 should work anywhere, but the higher
fraglen is, the better is the performance.
Note that because PMTU discovery is broken on many sites,
you will have to use MSS clamping if you want TCP to work
correctly.
initial_contact (on | off);
enable this to send an INITIAL-CONTACT message. The
default value is on. This message is useful only when
the implementation of the responder 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. The KAME stack has the switch
in the system wide value net.key.preferred_oldsa. when
the value is zero, the stack always uses a new SA.
passive (on | off);
If you do not want to initiate the negotiation, set this
to on. The default value is off. It is useful for a
server.
proposal_check level;
specifies the action of lifetime 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
strict. If the level is:
obey the responder will obey the initiator anytime.
strict If the responder's length is longer than the ini-
tiator's one, the responder uses the initiator's
one. Otherwise it rejects the proposal. If PFS
is not required by the responder, the responder
will obey the proposal. If PFS is required by
both sides and if the responder's group is not
equal to the initiator's one, then the responder
will reject the proposal.
claim If the responder's length is longer than the ini-
tiator's one, the responder will use the initia-
tor's one. If the responder's length is shorter
than the initiator's one, 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 strict.
exact If the initiator's length is not equal to the
responder's one, the responder will reject the
proposal. If PFS is required by both sides and
if the responder's group is not equal to the ini-
tiator's one, then the responder will reject the
proposal.
support_proxy (on | off);
If this value is set to on, then both values of ID pay-
loads in the phase 2 exchange are always used as the
addresses of end-point of IPsec-SAs. The default is off.
generate_policy (on | off | require | unique);
This directive is for the responder. Therefore you
should set passive to on in order that racoon(8) only
becomes a responder. If the responder does not have any
policy in SPD during phase 2 negotiation, and the direc-
tive is set to on, then racoon(8) will choose the first
proposal in the SA payload from the initiator, and gener-
ate 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. on and require values means the same
thing (generate a require policy). 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 off.
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). Presence of NAT gateways along the
path is discovered during phase 1 handshake and if found,
NAT-T is negotiated. When NAT-T is in charge, all ESP
and AH packets of a given connection are encapsulated
into UDP datagrams (port 4500, by default). Possible
values are:
on NAT-T is used when a NAT gateway is detected
between the peers.
off NAT-T is not proposed/accepted. This is the
default.
force NAT-T is used regardless if a NAT is detected
between the peers or not.
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.
dpd_delay delay;
This option activates the DPD and sets the time (in sec-
onds) allowed between 2 proof of liveness requests. The
default value is 0, which disables DPD monitoring, but
still negotiates DPD support.
dpd_retry delay;
If dpd_delay is set, this sets the delay (in seconds) to
wait for a proof of liveness before considering it as
failed and send another request. The default value is 5.
dpd_maxfail number;
If dpd_delay is set, this sets the maximum number of
proof of liveness to request (without reply) before con-
sidering the peer is dead. The default value is 5.
nonce_size 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.
proposal { sub-substatements }
encryption_algorithm algorithm;
specify the encryption algorithm used for the
phase 1 negotiation. This directive must be
defined. algorithm is one of following: des,
3des, blowfish, cast128, aes for Oakley. For
other transforms, this statement should not be
used.
hash_algorithm algorithm;
define the hash algorithm used for the phase 1
negotiation. This directive must be defined.
algorithm is one of following: md5, sha1, sha256,
sha384, sha512 for Oakley.
authentication_method type;
defines the authentication method used for the
phase 1 negotiation. This directive must be
defined. type is one of: pre_shared_key, rsasig,
gssapi_krb, hybrid_rsa_server, hybrid_rsa_client,
xauth_rsa_server, xauth_rsa_client,
xauth_psk_server or xauth_psk_client.
dh_group group;
define the group used for the Diffie-Hellman
exponentiations. This directive must be defined.
group is one of following: modp768, modp1024,
modp1536, modp2048, modp3072, modp4096, 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.
lifetime time number timeunit;
define lifetime of the phase 1 SA proposal.
Refer to the description of the lifetime direc-
tive defined in the remote directive.
gss_id string;
define the GSS-API endpoint name, to be included
as an attribute in the SA, if the gssapi_krb
authentication method is used. If this is not
defined, the default value of `host/hostname' is
used, where hostname is the value returned by the
hostname(1) command.