1 '\" te
   2 .\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
   3 .\" Copyright (c) 2015, Circonus, Inc. All Rights Reserved.
   4 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
   5 .\"  See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the
   6 .\" fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
   7 .TH IKE.CONFIG 4 "Apr 27, 2009"
   8 .SH NAME
   9 ike.config \- configuration file for IKE policy
  10 .SH SYNOPSIS
  11 .LP
  12 .nf
  13 \fB/etc/inet/ike/config\fR
  14 .fi
  15 
  16 .SH DESCRIPTION
  17 .LP
  18 The \fB/etc/inet/ike/config\fR file contains rules for matching inbound IKE
  19 requests. It also contains rules for preparing outbound \fBIKE\fR requests.
  20 .sp
  21 .LP
  22 You can test the syntactic correctness of an \fB/etc/inet/ike/config\fR file by
  23 using the \fB-c\fR or \fB-f\fR options of \fBin.iked\fR(1M). You must use the
  24 \fB-c\fR option to test a \fBconfig\fR file. You might need to use the \fB-f\fR
  25 option if it is not in \fB/etc/inet/ike/config\fR.
  26 .SS "Lexical Components"
  27 .LP
  28 On any line, an unquoted \fB#\fR character introduces a comment. The remainder
  29 of that line is ignored. Additionally, on any line, an unquoted \fB//\fR
  30 sequence introduces a comment. The remainder of that line is ignored.
  31 .sp
  32 .LP
  33 There are several types of lexical tokens in the \fBike.config\fR file:
  34 .sp
  35 .ne 2
  36 .na
  37 \fB\fInum\fR\fR
  38 .ad
  39 .sp .6
  40 .RS 4n
  41 A decimal, hex, or octal number representation is as in 'C'.
  42 .RE
  43 
  44 .sp
  45 .ne 2
  46 .na
  47 \fB\fIIPaddr\fR/\fIprefix\fR/\fIrange\fR\fR
  48 .ad
  49 .sp .6
  50 .RS 4n
  51 An IPv4 or IPv6 address with an optional /\fINNN\fR suffix, (where \fINNN\fR is
  52 a \fInum\fR) that indicates an address (\fBCIDR\fR) prefix (for example,
  53 \fB10.1.2.0/24\fR). An optional /\fIADDR\fR suffix (where \fIADDR\fR is a
  54 second IP address) indicates an address/mask pair (for example,
  55 \fB10.1.2.0/255.255.255.0\fR). An optional -\fIADDR\fR suffix (where \fIADDR\fR
  56 is a second IPv4 address) indicates an inclusive range of addresses (for
  57 example, \fB10.1.2.0-10.1.2.255\fR). The \fB/\fR or \fB-\fR can be surrounded
  58 by an arbitrary amount of white space.
  59 .RE
  60 
  61 .sp
  62 .ne 2
  63 .na
  64 \fB\fBXXX\fR | \fBYYY\fR | \fBZZZ\fR\fR
  65 .ad
  66 .sp .6
  67 .RS 4n
  68 Either the words \fBXX\fRX, \fBYYY\fR, or \fBZZZ\fR, for example, {yes,no}.
  69 .RE
  70 
  71 .sp
  72 .ne 2
  73 .na
  74 \fBp1-id-type\fR
  75 .ad
  76 .sp .6
  77 .RS 4n
  78 An IKE phase 1 identity type. IKE phase 1 identity types include:
  79 .br
  80 .in +2
  81 \fBdn, DN\fR
  82 .in -2
  83 .br
  84 .in +2
  85 \fBdns, DNS\fR
  86 .in -2
  87 .br
  88 .in +2
  89 \fBfqdn, FQDN\fR
  90 .in -2
  91 .br
  92 .in +2
  93 \fBgn, GN\fR
  94 .in -2
  95 .br
  96 .in +2
  97 \fBip, IP\fR
  98 .in -2
  99 .br
 100 .in +2
 101 \fBipv4\fR
 102 .in -2
 103 .br
 104 .in +2
 105 \fBipv4_prefix\fR
 106 .in -2
 107 .br
 108 .in +2
 109 \fBipv4_range\fR
 110 .in -2
 111 .br
 112 .in +2
 113 \fBipv6\fR
 114 .in -2
 115 .br
 116 .in +2
 117 \fBipv6_prefix\fR
 118 .in -2
 119 .br
 120 .in +2
 121 \fBipv6_range\fR
 122 .in -2
 123 .br
 124 .in +2
 125 \fBmbox, MBOX\fR
 126 .in -2
 127 .br
 128 .in +2
 129 \fBuser_fqdn\fR
 130 .in -2
 131 .RE
 132 
 133 .sp
 134 .ne 2
 135 .na
 136 \fB\fB"\fR\fIstring\fR\fB"\fR\fR
 137 .ad
 138 .sp .6
 139 .RS 4n
 140 A quoted string.
 141 .sp
 142 Examples include:\fB"Label foo"\fR, or \fB"C=US, OU=Sun Microsystems\\, Inc.,
 143 N=olemcd@eng.example.com"\fR
 144 .sp
 145 A backslash (\fB\e\fR) is an escape character. If the string needs an actual
 146 backslash, two must be specified.
 147 .RE
 148 
 149 .sp
 150 .ne 2
 151 .na
 152 \fB\fIcert-sel\fR\fR
 153 .ad
 154 .sp .6
 155 .RS 4n
 156 A certificate selector, a \fIstring\fR which specifies the identities of zero
 157 or more certificates. The specifiers can conform to \fBX.509\fR naming
 158 conventions.
 159 .sp
 160 A \fIcert-sel\fR can also use various shortcuts to match either subject
 161 alternative names, the filename or \fBslot\fR of a certificate in
 162 \fB/etc/inet/ike/publickeys\fR, or even the \fBISSUER\fR. For example:
 163 .sp
 164 .in +2
 165 .nf
 166 "SLOT=0"
 167 "EMAIL=postmaster@domain.org"
 168 "webmaster@domain.org" # Some just work w/o TYPE=
 169 "IP=10.0.0.1"
 170 "10.21.11.11"          # Some just work w/o TYPE=
 171 "DNS=www.domain.org"
 172 "mailhost.domain.org"  # Some just work w/o TYPE=
 173 "ISSUER=C=US, O=Sun Microsystems\\, Inc., CN=Sun CA"
 174 .fi
 175 .in -2
 176 .sp
 177 
 178 Any \fIcert-sel\fR preceded by the character \fB!\fR indicates a negative
 179 match, that is, not matching this specifier. These are the same kind of strings
 180 used in \fBikecert\fR(1M).
 181 .RE
 182 
 183 .sp
 184 .ne 2
 185 .na
 186 \fB\fIldap-list\fR\fR
 187 .ad
 188 .sp .6
 189 .RS 4n
 190 A quoted, comma-separated list of LDAP servers and ports.
 191 .sp
 192 For example, \fB"ldap1.example.com"\fR, \fB"ldap1.example.com:389"\fR,
 193 \fB"ldap1.example.com:389,ldap2.example.com"\fR.
 194 .sp
 195 The default port for LDAP is \fB389\fR.
 196 .RE
 197 
 198 .sp
 199 .ne 2
 200 .na
 201 \fB\fIparameter-list\fR\fR
 202 .ad
 203 .sp .6
 204 .RS 4n
 205 A list of parameters.
 206 .RE
 207 
 208 .SS "File Body Entries"
 209 .LP
 210 There are four main types of entries:
 211 .RS +4
 212 .TP
 213 .ie t \(bu
 214 .el o
 215 global parameters
 216 .RE
 217 .RS +4
 218 .TP
 219 .ie t \(bu
 220 .el o
 221 IKE phase 1 transform defaults
 222 .RE
 223 .RS +4
 224 .TP
 225 .ie t \(bu
 226 .el o
 227 IKE rule defaults
 228 .RE
 229 .RS +4
 230 .TP
 231 .ie t \(bu
 232 .el o
 233 IKE rules
 234 .RE
 235 .sp
 236 .LP
 237 The global parameter entries are as follows:
 238 .sp
 239 .ne 2
 240 .na
 241 \fBcert_root \fIcert-sel\fR\fR
 242 .ad
 243 .sp .6
 244 .RS 4n
 245 The X.509 distinguished name of a certificate that is a trusted root CA
 246 certificate.It must be encoded in a file in the \fB/etc/inet/ike/publickeys\fR
 247 directory. It must have a CRL in \fB/etc/inet/ike/crl\fRs. Multiple
 248 \fBcert_root\fR parameters aggregate.
 249 .RE
 250 
 251 .sp
 252 .ne 2
 253 .na
 254 \fBcert_trust \fIcert-sel\fR\fR
 255 .ad
 256 .sp .6
 257 .RS 4n
 258 Specifies an X.509 distinguished name of a certificate that is self-signed, or
 259 has otherwise been verified as trustworthy for signing IKE exchanges. It must
 260 be encoded in a file in \fB/etc/inet/ike/publickeys\fR. Multiple
 261 \fBcert_trust\fR parameters aggregate.
 262 .RE
 263 
 264 .sp
 265 .ne 2
 266 .na
 267 \fBexpire_timer \fIinteger\fR\fR
 268 .ad
 269 .sp .6
 270 .RS 4n
 271 The number of seconds to let a not-yet-complete IKE Phase I (Main Mode)
 272 negotiation linger before deleting it. Default value: 300 seconds.
 273 .RE
 274 
 275 .sp
 276 .ne 2
 277 .na
 278 \fBignore_crls\fR
 279 .ad
 280 .sp .6
 281 .RS 4n
 282 If this keyword is present in the file, \fBin.iked\fR(1M) ignores Certificate
 283 Revocation Lists (\fBCRL\fRs) for root \fBCA\fRs (as given in \fBcert_root\fR)
 284 .RE
 285 
 286 .sp
 287 .ne 2
 288 .na
 289 \fBldap_server \fIldap-list\fR\fR
 290 .ad
 291 .sp .6
 292 .RS 4n
 293 A list of LDAP servers to query for certificates. The list can be additive.
 294 .RE
 295 
 296 .sp
 297 .ne 2
 298 .na
 299 \fBpkcs11_path \fIstring\fR\fR
 300 .ad
 301 .sp .6
 302 .RS 4n
 303 The string that follows is a name of a shared object (\fB\&.so\fR) that
 304 implements the PKCS#11 standard. The name is passed directly into
 305 \fBdlopen\fR(3C) for linking, with all of the semantics of that library call.
 306 By default, \fBin.iked\fR(1M) runs the same ISA as the running kernel, so a
 307 library specified using \fBpkcs11_path\fR and an absolute pathname \fBmust\fR
 308 match the same ISA as the kernel. One can use the start/exec SMF property (see
 309 \fBsvccfg\fR(1M)) to change \fBin.iked\fR's ISA, but it is not recommended.
 310 .sp
 311 If this setting is not present, the default value is set to \fBlibpkcs11.so\fR.
 312 Most cryptographic providers go through the default library, and this parameter
 313 should only be used if a specialized provider of IKE-useful cryptographic
 314 services cannot interface with the Solaris Cryptographic Framework. See
 315 \fBcryptoadm\fR(1M).
 316 .sp
 317 This option is now deprecated, and may be removed in a future release.
 318 .RE
 319 
 320 .sp
 321 .ne 2
 322 .na
 323 \fBretry_limit \fIinteger\fR\fR
 324 .ad
 325 .sp .6
 326 .RS 4n
 327 The number of retransmits before any IKE negotiation is aborted. Default value:
 328 5 times.
 329 .RE
 330 
 331 .sp
 332 .ne 2
 333 .na
 334 \fBretry_timer_init \fIinteger\fR or \fIfloat\fR\fR
 335 .ad
 336 .sp .6
 337 .RS 4n
 338 The initial interval (in seconds) between retransmits. This interval is doubled
 339 until the \fBretry_timer_max\fR value (see below) is reached. Default value:
 340 0.5 seconds.
 341 .RE
 342 
 343 .sp
 344 .ne 2
 345 .na
 346 \fBretry_timer_max \fIinteger\fR or \fIfloat\fR\fR
 347 .ad
 348 .sp .6
 349 .RS 4n
 350 The maximum interval (in seconds) between retransmits. The doubling retransmit
 351 interval stops growing at this limit. Default value: 30 seconds.
 352 .LP
 353 Note -
 354 .sp
 355 .RS 2
 356 This value is never reached with the default configuration. The longest
 357 interval is 8 (0.5 * 2 ^ (5 - 1)) seconds.
 358 .RE
 359 .RE
 360 
 361 .sp
 362 .ne 2
 363 .na
 364 \fBproxy \fIstring\fR\fR
 365 .ad
 366 .sp .6
 367 .RS 4n
 368 The string following this keyword must be a URL for an HTTP proxy, for example,
 369 \fBhttp://proxy:8080\fR.
 370 .RE
 371 
 372 .sp
 373 .ne 2
 374 .na
 375 \fBsocks \fIstring\fR\fR
 376 .ad
 377 .sp .6
 378 .RS 4n
 379 The string following this keyword must be a URL for a SOCKS proxy, for example,
 380 \fBsocks://socks-proxy\fR.
 381 .RE
 382 
 383 .sp
 384 .ne 2
 385 .na
 386 \fBuse_http\fR
 387 .ad
 388 .sp .6
 389 .RS 4n
 390 If this keyword is present in the file, \fBin.iked\fR(1M) uses HTTP to retrieve
 391 Certificate Revocation Lists (\fBCRL\fRs).
 392 .RE
 393 
 394 .sp
 395 .LP
 396 The following IKE phase 1 transform parameters can be prefigured using
 397 file-level defaults. Values specified within any given transform override these
 398 defaults.
 399 .sp
 400 .LP
 401 The IKE phase 1 transform defaults are as follows:
 402 .sp
 403 .ne 2
 404 .na
 405 \fBp1_lifetime_secs \fInum\fR\fR
 406 .ad
 407 .sp .6
 408 .RS 4n
 409 The proposed default lifetime, in seconds, of an IKE phase 1 security
 410 association (\fBSA\fR).
 411 .RE
 412 
 413 .sp
 414 .ne 2
 415 .na
 416 \fBp1_nonce_len \fInum\fR\fR
 417 .ad
 418 .sp .6
 419 .RS 4n
 420 The length in bytes of the phase 1 (quick mode) nonce data. This cannot be
 421 specified on a per-rule basis.
 422 .RE
 423 
 424 .sp
 425 .LP
 426 The following IKE rule parameters can be prefigured using file-level defaults.
 427 Values specified within any given rule override these defaults, unless a rule
 428 cannot.
 429 .sp
 430 .ne 2
 431 .na
 432 \fBp2_lifetime_secs \fInum\fR\fR
 433 .ad
 434 .sp .6
 435 .RS 4n
 436 The proposed default lifetime, in seconds, of an IKE phase 2 security
 437 association (SA). This value is optional. If omitted, a default value is used.
 438 .RE
 439 
 440 .sp
 441 .ne 2
 442 .na
 443 \fBp2_softlife_secs \fInum\fR\fR
 444 .ad
 445 .sp .6
 446 .RS 4n
 447 The soft lifetime of a phase 2 SA, in seconds. If this value is specified, the
 448 SA soft expires after the number of seconds specified by
 449 \fBp2_softlife_secs\fR. This causes \fBin.iked\fR to renegotiate a new phase 2
 450 SA before the original SA expires.
 451 .sp
 452 This value is optional, if omitted soft expiry occurs after 90% of the lifetime
 453 specified by \fBp2_lifetime_secs\fR. The value specified by
 454 \fBp2_softlife_secs\fR is ignored if \fBp2_lifetime_secs\fR is not specified.
 455 .sp
 456 Setting \fBp2_softlife_secs\fR to the same value as \fBp2_lifetime_secs\fR
 457 disables soft expires.
 458 .RE
 459 
 460 .sp
 461 .ne 2
 462 .na
 463 \fBp2_idletime_secs \fInum\fR\fR
 464 .ad
 465 .sp .6
 466 .RS 4n
 467 The idle lifetime of a phase 2 SA, in seconds. If the value is specified, the
 468 value specifies the lifetime of the SA, if the security association is not used
 469 before the SA is revalidated.
 470 .RE
 471 
 472 .sp
 473 .ne 2
 474 .na
 475 \fBp2_lifetime_kb \fInum\fR\fR
 476 .ad
 477 .sp .6
 478 .RS 4n
 479 The lifetime of an SA can optionally be specified in kilobytes. This parameter
 480 specifies the default value. If lifetimes are specified in both seconds and
 481 kilobytes, the SA expires when either the seconds or kilobyte threshholds are
 482 passed.
 483 .RE
 484 
 485 .sp
 486 .ne 2
 487 .na
 488 \fBp2_softlife_kb \fInum\fR\fR
 489 .ad
 490 .sp .6
 491 .RS 4n
 492 This value is the number of kilobytes that can be protected by an SA before a
 493 soft expire occurs (see \fBp2_softlife_secs\fR, above).
 494 .sp
 495 This value is optional. If omitted, soft expiry occurs after 90% of the
 496 lifetime specified by \fBp2_lifetime_kb\fR. The value specified by
 497 \fBp2_softlife_kb\fR is ignored if \fBp2_lifetime_kb\fR is not specified.
 498 .RE
 499 
 500 .sp
 501 .ne 2
 502 .na
 503 \fBp2_nonce_len \fInum\fR\fR
 504 .ad
 505 .sp .6
 506 .RS 4n
 507 The length in bytes of the phase 2 (quick mode) nonce data. This cannot be
 508 specified on a per-rule basis.
 509 .RE
 510 
 511 .sp
 512 .ne 2
 513 .na
 514 \fBlocal_id_type \fIp1-id-type\fR\fR
 515 .ad
 516 .sp .6
 517 .RS 4n
 518 The local identity for IKE requires a type. This identity type is reflected in
 519 the IKE exchange. The type can be one of the following:
 520 .RS +4
 521 .TP
 522 .ie t \(bu
 523 .el o
 524 an IP address (for example, \fB10.1.1.2\fR)
 525 .RE
 526 .RS +4
 527 .TP
 528 .ie t \(bu
 529 .el o
 530 DNS name (for example, \fBtest.domain.com\fR)
 531 .RE
 532 .RS +4
 533 .TP
 534 .ie t \(bu
 535 .el o
 536 MBOX RFC 822 name (for example, \fBroot@domain.com\fR)
 537 .RE
 538 .RS +4
 539 .TP
 540 .ie t \(bu
 541 .el o
 542 DNX.509 distinguished name (for example, \fBC=US, O=Sun Microsystems\, Inc.,
 543 CN=Sun Test cert\fR)
 544 .RE
 545 .RE
 546 
 547 .sp
 548 .ne 2
 549 .na
 550 \fBp1_xform '{' parameter-list '}\fR
 551 .ad
 552 .sp .6
 553 .RS 4n
 554 A phase 1 transform specifies a method for protecting an IKE phase 1 exchange.
 555 An initiator offers up lists of phase 1 transforms, and a receiver is expected
 556 to only accept such an entry if it matches one in a phase 1 rule. There can be
 557 several of these, and they are additive. There must be either at least one
 558 phase 1 transform in a rule or a global default phase 1 transform list. In a
 559 configuration file without a global default phase 1 transform list \fBand\fR a
 560 rule without a phase, transform list is an invalid file. Unless specified as
 561 optional, elements in the parameter-list must occur exactly once within a given
 562 transform's parameter-list:
 563 .sp
 564 .ne 2
 565 .na
 566 \fBoakley_group \fInumber\fR\fR
 567 .ad
 568 .sp .6
 569 .RS 4n
 570 The Oakley Diffie-Hellman group used for IKE SA key derivation. The group
 571 numbers are defined in RFC 2409, Appendix A, RFC 3526, and RFC 5114, section
 572 3.2. Acceptable values are currently:
 573 .br
 574 .in +2
 575 1 (MODP 768-bit)
 576 .in -2
 577 .br
 578 .in +2
 579 2 (MODP 1024-bit)
 580 .in -2
 581 .br
 582 .in +2
 583 3 (EC2N 155-bit)
 584 .in -2
 585 .br
 586 .in +2
 587 4 (EC2N 185-bit)
 588 .in -2
 589 .br
 590 .in +2
 591 5 (MODP 1536-bit)
 592 .in -2
 593 .br
 594 .in +2
 595 14 (MODP 2048-bit)
 596 .in -2
 597 .br
 598 .in +2
 599 15 (MODP 3072-bit)
 600 .in -2
 601 .br
 602 .in +2
 603 16 (MODP 4096-bit)
 604 .in -2
 605 .br
 606 .in +2
 607 17 (MODP 6144-bit)
 608 .in -2
 609 .br
 610 .in +2
 611 18 (MODP 8192-bit)
 612 .in -2
 613 .br
 614 .in +2
 615 19 (ECP 256-bit)
 616 .in -2
 617 .br
 618 .in +2
 619 20 (ECP 384-bit)
 620 .in -2
 621 .br
 622 .in +2
 623 21 (ECP 521-bit)
 624 .in -2
 625 .br
 626 .in +2
 627 22 (MODP 1024-bit, with 160-bit Prime Order Subgroup)
 628 .in -2
 629 .br
 630 .in +2
 631 23 (MODP 2048-bit, with 224-bit Prime Order Subgroup)
 632 .in -2
 633 .br
 634 .in +2
 635 24 (MODP 2048-bit, with 256-bit Prime Order Subgroup)
 636 .in -2
 637 .br
 638 .in +2
 639 25 (ECP 192-bit)
 640 .in -2
 641 .br
 642 .in +2
 643 26 (ECP 224-bit)
 644 .in -2
 645 .RE
 646 
 647 .sp
 648 .ne 2
 649 .na
 650 \fBencr_alg {3des, 3des-cbc, blowfish, blowfish-cdc, des, des-cbc, aes,
 651 aes-cbc}\fR
 652 .ad
 653 .sp .6
 654 .RS 4n
 655 An encryption algorithm, as in \fBipsecconf\fR(1M). However, of the ciphers
 656 listed above, only \fBaes\fR and \fBaes-cbc\fR allow optional key-size setting,
 657 using the "low value-to-high value" syntax. To specify a single AES key size,
 658 the low value must equal the high value. If no range is specified, all three
 659 AES key sizes are allowed.
 660 .RE
 661 
 662 .sp
 663 .ne 2
 664 .na
 665 \fBauth_alg {md5, sha, sha1, sha256, sha384, sha512}\fR
 666 .ad
 667 .sp .6
 668 .RS 4n
 669 An authentication algorithm.
 670 .sp
 671 Use \fBipsecalgs\fR(1M) with the \fB-l\fR option to list the IPsec protocols
 672 and algorithms currently defined on a system. The \fBcryptoadm list\fR command
 673 diplays a list of installed providers and their mechanisms. See
 674 \fBcryptoadm\fR(1M).
 675 .RE
 676 
 677 .sp
 678 .ne 2
 679 .na
 680 \fBauth_method {preshared, rsa_sig, rsa_encrypt, dss_sig}\fR
 681 .ad
 682 .sp .6
 683 .RS 4n
 684 The authentication method used for IKE phase 1.
 685 .RE
 686 
 687 .sp
 688 .ne 2
 689 .na
 690 \fBp1_lifetime_secs \fInum\fR\fR
 691 .ad
 692 .sp .6
 693 .RS 4n
 694 Optional. The lifetime for a phase 1 SA.
 695 .RE
 696 
 697 .RE
 698 
 699 .sp
 700 .ne 2
 701 .na
 702 \fBp2_lifetime_secs \fInum\fR\fR
 703 .ad
 704 .sp .6
 705 .RS 4n
 706 If configuring the kernel defaults is not sufficient for different tasks, this
 707 parameter can be used on a per-rule basis to set the IPsec \fBSA\fR lifetimes
 708 in seconds.
 709 .RE
 710 
 711 .sp
 712 .ne 2
 713 .na
 714 \fBp2_pfs \fInum\fR\fR
 715 .ad
 716 .sp .6
 717 .RS 4n
 718 Use perfect forward secrecy for phase 2 (quick mode). If selected, the oakley
 719 group specified is used for phase 2 PFS. Acceptable values are:
 720 .br
 721 .in +2
 722 0 (do not use Perfect Forward Secrecy for IPsec SAs)
 723 .in -2
 724 .br
 725 .in +2
 726 1 (768-bit)
 727 .in -2
 728 .br
 729 .in +2
 730 2 (1024-bit)
 731 .in -2
 732 .br
 733 .in +2
 734 5 (1536-bit)
 735 .in -2
 736 .br
 737 .in +2
 738 14 (2048-bit)
 739 .in -2
 740 .br
 741 .in +2
 742 15 (3072-bit)
 743 .in -2
 744 .br
 745 .in +2
 746 16 (4096-bit)
 747 .in -2
 748 .RE
 749 
 750 .sp
 751 .LP
 752 An IKE rule starts with a right-curly-brace (\fB{\fR), ends with a
 753 left-curly-brace (\fB}\fR), and has the following parameters in between:
 754 .sp
 755 .ne 2
 756 .na
 757 \fBlabel \fIstring\fR\fR
 758 .ad
 759 .sp .6
 760 .RS 4n
 761 Required parameter. The administrative interface to \fBin.iked\fR looks up
 762 phase 1 policy rules with the label as the search string. The administrative
 763 interface also converts the label into an index, suitable for an extended
 764 ACQUIRE message from PF_KEY - effectively tying IPsec policy to IKE policy in
 765 the case of a node initiating traffic. Only one \fBlabel\fR parameter is
 766 allowed per rule.
 767 .RE
 768 
 769 .sp
 770 .ne 2
 771 .na
 772 \fBlocal_addr <\fIIPaddr\fR/\fIprefix\fR/\fIrange\fR>\fR
 773 .ad
 774 .sp .6
 775 .RS 4n
 776 Required parameter. The local address, address prefix, or address range for
 777 this phase 1 rule. Multiple \fBlocal_addr\fR parameters accumulate within a
 778 given rule.
 779 .RE
 780 
 781 .sp
 782 .ne 2
 783 .na
 784 \fBremote_addr <\fIIPaddr\fR/\fIprefix\fR/\fIrang\fRe>\fR
 785 .ad
 786 .sp .6
 787 .RS 4n
 788 Required parameter. The remote address, address prefix, or address range for
 789 this phase 1 rule. Multiple \fBremote_addr\fR parameters accumulate within a
 790 given rule.
 791 .RE
 792 
 793 .sp
 794 .ne 2
 795 .na
 796 \fBlocal_id_type \fIp1-id-type\fR\fR
 797 .ad
 798 .sp .6
 799 .RS 4n
 800 Which phase 1 identity type I uses. This is needed because a single certificate
 801 can contain multiple values for use in IKE phase 1. Within a given rule, all
 802 phase 1 transforms must either use preshared or non-preshared authentication
 803 (they cannot be mixed). For rules with preshared authentication, the
 804 \fBlocal_id_type\fR parameter is optional, and defaults to \fBIP\fR. For rules
 805 which use non-preshared authentication, the 'local_id_type' parameter is
 806 required. Multiple 'local_id_type' parameters within a rule are not allowed.
 807 .RE
 808 
 809 .sp
 810 .ne 2
 811 .na
 812 \fBlocal_id \fIcert-sel\fR\fR
 813 .ad
 814 .sp .6
 815 .RS 4n
 816 Disallowed for preshared authentication method; required parameter for
 817 non-preshared authentication method. The local identity string or certificate
 818 selector. Only one local identity per rule is used, the first one stated.
 819 .RE
 820 
 821 .sp
 822 .ne 2
 823 .na
 824 \fBremote_id \fIcert-sel\fR\fR
 825 .ad
 826 .sp .6
 827 .RS 4n
 828 Disallowed for preshared authentication method; required parameter for
 829 non-preshared authentication method. Selector for which remote phase 1
 830 identities are allowed by this rule. Multiple \fBremote_id\fR parameters
 831 accumulate within a given rule. If a single empty string (\fB""\fR) is given,
 832 then this accepts any remote \fBID\fR for phase 1. It is recommended that
 833 certificate trust chains or address enforcement be configured strictly to
 834 prevent a breakdown in security if this value for \fBremote_id\fR is used.
 835 .RE
 836 
 837 .sp
 838 .ne 2
 839 .na
 840 \fBp2_lifetime_secs \fInum\fR\fR
 841 .ad
 842 .sp .6
 843 .RS 4n
 844 If configuring the kernel defaults is not sufficient for different tasks, this
 845 parameter can be used on a per-rule basis to set the IPsec \fBSA\fR lifetimes
 846 in seconds.
 847 .RE
 848 
 849 .sp
 850 .ne 2
 851 .na
 852 \fBp2_pfs \fInum\fR\fR
 853 .ad
 854 .sp .6
 855 .RS 4n
 856 Use perfect forward secrecy for phase 2 (quick mode). If selected, the oakley
 857 group specified is used for phase 2 PFS. Acceptable values are:
 858 .br
 859 .in +2
 860 0 (do not use Perfect Forward Secrecy for IPsec SAs)
 861 .in -2
 862 .br
 863 .in +2
 864 1 (768-bit)
 865 .in -2
 866 .br
 867 .in +2
 868 2 (1024-bit)
 869 .in -2
 870 .br
 871 .in +2
 872 5 (1536-bit)
 873 .in -2
 874 .br
 875 .in +2
 876 14 (2048-bit)
 877 .in -2
 878 .br
 879 .in +2
 880 15 (3072-bit)
 881 .in -2
 882 .br
 883 .in +2
 884 16 (4096-bit)
 885 .in -2
 886 .RE
 887 
 888 .sp
 889 .ne 2
 890 .na
 891 \fBp1_xform \fB{\fR \fIparameter-list\fR \fB}\fR\fR
 892 .ad
 893 .sp .6
 894 .RS 4n
 895 A phase 1 transform specifies a method for protecting an IKE phase 1 exchange.
 896 An initiator offers up lists of phase 1 transforms, and a receiver is expected
 897 to only accept such an entry if it matches one in a phase 1 rule. There can be
 898 several of these, and they are additive. There must be either at least one
 899 phase 1 transform in a rule or a global default phase 1 transform list. A
 900 \fBike.config\fR file without a global default phase 1transform list \fBand\fR
 901 a rule without a phase 1 transform list is an invalid file. Elements within the
 902 parameter-list; unless specified as optional, must occur exactly once within a
 903 given transform's parameter-list:
 904 .sp
 905 .ne 2
 906 .na
 907 \fBoakley_group \fInumber\fR\fR
 908 .ad
 909 .sp .6
 910 .RS 4n
 911 The Oakley Diffie-Hellman group used for \fBIKE SA\fR key derivation.
 912 Acceptable values are currently:
 913 .br
 914 .in +2
 915 1 (768-bit)
 916 .in -2
 917 .br
 918 .in +2
 919 2 (1024-bit)
 920 .in -2
 921 .br
 922 .in +2
 923 5 (1536-bit)
 924 .in -2
 925 .br
 926 .in +2
 927 14 (2048-bit)
 928 .in -2
 929 .br
 930 .in +2
 931 15 (3072-bit)
 932 .in -2
 933 .br
 934 .in +2
 935 16 (4096-bit)
 936 .in -2
 937 .RE
 938 
 939 .sp
 940 .ne 2
 941 .na
 942 \fBencr_alg {3des, 3des-cbc, blowfish, blowfish-cdc, des, des-cbc, aes,
 943 aes-cbc}\fR
 944 .ad
 945 .sp .6
 946 .RS 4n
 947 An encryption algorithm, as in \fBipsecconf\fR(1M). However, of the ciphers
 948 listed above, only \fBaes\fR and \fBaes-cbc\fR allow optional key-size setting,
 949 using the "low value-to-high value" syntax. To specify a single AES key size,
 950 the low value must equal the high value. If no range is specified, all three
 951 AES key sizes are allowed.
 952 .RE
 953 
 954 .sp
 955 .ne 2
 956 .na
 957 \fBauth_alg {md5, sha, sha1}\fR
 958 .ad
 959 .sp .6
 960 .RS 4n
 961 An authentication algorithm, as specified in \fBipseckey\fR(1M).
 962 .RE
 963 
 964 .sp
 965 .ne 2
 966 .na
 967 \fBauth_method {preshared, rsa_sig, rsa_encrypt, dss_sig}\fR
 968 .ad
 969 .sp .6
 970 .RS 4n
 971 The authentication method used for IKE phase 1.
 972 .RE
 973 
 974 .sp
 975 .ne 2
 976 .na
 977 \fBp1_lifetime_secs \fInum\fR\fR
 978 .ad
 979 .sp .6
 980 .RS 4n
 981 Optional. The lifetime for a phase 1 SA.
 982 .RE
 983 
 984 .RE
 985 
 986 .SH EXAMPLES
 987 .LP
 988 \fBExample 1 \fRA Sample \fBike.config\fR File
 989 .sp
 990 .LP
 991 The following is an example of an \fBike.config\fR file:
 992 
 993 .sp
 994 .in +2
 995 .nf
 996 
 997 ### BEGINNING OF FILE
 998 
 999 ### First some global parameters...
1000 
1001 ### certificate parameters...
1002 
1003 # Root certificates. I SHOULD use a full Distinguished Name.
1004 # I must have this certificate in my local filesystem, see ikecert(1m).
1005 cert_root    "C=US, O=Sun Microsystems\\, Inc., CN=Sun CA"
1006 
1007 # Explicitly trusted certs that need no signatures, or perhaps
1008 # self-signed ones. Like root certificates, use full DNs for them
1009 # for now.
1010 cert_trust    "EMAIL=root@domain.org"
1011 
1012 # Where do I send LDAP requests?
1013 ldap_server        "ldap1.domain.org,ldap2.domain.org:389"
1014 
1015 ## phase 1 transform defaults...
1016 
1017 p1_lifetime_secs 14400
1018 p1_nonce_len 20
1019 
1020 ## Parameters that might also show up in rules.
1021 
1022 p1_xform { auth_method preshared oakley_group 5 auth_alg sha
1023           encr_alg 3des }
1024 p2_pfs 2
1025 
1026 
1027 
1028 ### Now some rules...
1029 
1030 {
1031    label "simple inheritor"
1032    local_id_type ip
1033    local_addr 10.1.1.1
1034    remote_addr 10.1.1.2
1035 }
1036 {
1037    label "simple inheritor IPv6"
1038    local_id_type ipv6
1039    local_addr fe80::a00:20ff:fe7d:6
1040    remote_addr fe80::a00:20ff:fefb:3780
1041 }
1042 
1043 {
1044    # an index-only rule.  If I'm a receiver, and all I
1045    # have are index-only rules, what do I do about inbound IKE requests?
1046    # Answer:  Take them all!
1047 
1048    label "default rule"
1049    # Use whatever "host" (e.g. IP address) identity is appropriate
1050    local_id_type ipv4
1051 
1052    local_addr 0.0.0.0/0
1053    remote_addr 0.0.0.0/0
1054 
1055    p2_pfs 5
1056 
1057    # Now I'm going to have the p1_xforms
1058    p1_xform
1059    {auth_method preshared  oakley_group 5  auth_alg md5  encr_alg \e
1060     blowfish }   p1_xform
1061    {auth_method preshared  oakley_group 5  auth_alg md5  encr_alg 3des }
1062 
1063    # After said list, another keyword (or a '}') stops xform
1064    # parsing.
1065 }
1066 
1067 {
1068    # Let's try something a little more conventional.
1069 
1070    label "host to .80 subnet"
1071    local_id_type ip
1072    local_id "10.1.86.51"
1073 
1074    remote_id ""    # Take any, use remote_addr for access control.
1075 
1076    local_addr 10.1.86.51
1077    remote_addr 10.1.80.0/24
1078 
1079    p1_xform
1080    { auth_method rsa_sig  oakley_group 5  auth_alg md5  encr_alg 3des }
1081    p1_xform
1082    { auth_method rsa_sig  oakley_group 5  auth_alg md5  encr_alg \e
1083      blowfish }
1084    p1_xform
1085    { auth_method rsa_sig  oakley_group 5  auth_alg sha1  encr_alg 3des }
1086    p1_xform
1087    { auth_method rsa_sig  oakley_group 5  auth_alg sha1  encr_alg \e
1088      blowfish }
1089 }
1090 
1091 {
1092    # Let's try something a little more conventional, but with ipv6.
1093 
1094     label "host to fe80::/10 subnet"
1095     local_id_type ip
1096     local_id "fe80::a00:20ff:fe7d:6"
1097 
1098     remote_id ""    # Take any, use remote_addr for access control.
1099 
1100     local_addr fe80::a00:20ff:fe7d:6
1101     remote_addr fe80::/10
1102 
1103     p1_xform
1104     { auth_method rsa_sig  oakley_group 5  auth_alg md5  encr_alg 3des }
1105     p1_xform
1106     { auth_method rsa_sig  oakley_group 5  auth_alg md5  encr_alg \e
1107       blowfish }
1108     p1_xform
1109     { auth_method rsa_sig  oakley_group 5  auth_alg sha1  encr_alg \e
1110       3des }
1111     p1_xform
1112     { auth_method rsa_sig  oakley_group 5  auth_alg sha1  encr_alg \e
1113       blowfish }
1114 }
1115 
1116 {
1117     # How 'bout something with a different cert type and name?
1118 
1119     label "punchin-point"
1120     local_id_type mbox
1121     local_id "ipsec-wizard@domain.org"
1122 
1123     remote_id "10.5.5.128"
1124 
1125     local_addr 0.0.0.0/0
1126     remote_addr 10.5.5.128
1127 
1128     p1_xform
1129     { auth_method rsa_sig oakley_group 5 auth_alg md5 encr_alg \e
1130       blowfish }
1131 }
1132 
1133 {
1134    label "receiver side"
1135 
1136    remote_id "ipsec-wizard@domain.org"
1137 
1138    local_id_type ip
1139    local_id "10.5.5.128"
1140 
1141    local_addr 10.5.5.128
1142    remote_addr 0.0.0.0/0
1143 
1144    p1_xform
1145    { auth_method rsa_sig oakley_group 5 auth_alg md5 encr_alg blowfish }
1146    # NOTE:  Specifying preshared null-and-voids the remote_id/local_id
1147    #        fields.
1148    p1_xform
1149    { auth_method preshared oakley_group 5 auth_alg md5 encr_alg \e
1150      blowfish}
1151 
1152 }
1153 .fi
1154 .in -2
1155 
1156 .SH ATTRIBUTES
1157 .LP
1158 See \fBattributes\fR(5) for descriptions of the following attributes:
1159 .sp
1160 
1161 .sp
1162 .TS
1163 box;
1164 c | c
1165 l | l .
1166 ATTRIBUTE TYPE  ATTRIBUTE VALUE
1167 _
1168 Interface Stability     Committed
1169 .TE
1170 
1171 .SH SEE ALSO
1172 .LP
1173 \fBcryptoadm\fR(1M), \fBikeadm\fR(1M), \fBin.iked\fR(1M), \fBikecert\fR(1M),
1174 \fBipseckey\fR(1M), \fBipsecalgs\fR(1M), \fBipsecconf\fR(1M), \fBsvccfg\fR(1M),
1175 \fBdlopen\fR(3C), \fBattributes\fR(5), \fBrandom\fR(7D)
1176 .sp
1177 .LP
1178 Harkins, Dan and Carrel, Dave. \fIRFC 2409, Internet Key Exchange (IKE)\fR.
1179 Cisco Systems, November 1998.
1180 .sp
1181 .LP
1182 Maughan, Douglas et. al. \fIRFC 2408, Internet Security Association and Key
1183 Management Protocol (ISAKMP)\fR. National Security Agency, Ft. Meade, MD.
1184 November 1998.
1185 .sp
1186 .LP
1187 Piper, Derrell. \fIRFC 2407, The Internet IP Security Domain of Interpretation
1188 for ISAKMP\fR. Network Alchemy. Santa Cruz, California. November 1998.
1189 .sp
1190 .LP
1191 Kivinen, T. \fIRFC 3526, More Modular Exponential (MODP) Diffie-Hellman Groups
1192 for Internet Key Exchange (IKE)\fR. The Internet Society, Network Working
1193 Group. May 2003.
1194 .sp
1195 .LP
1196 Lepinksi, M. and Kent, S. \fIRFC 5114, Additional Diffie-Hellman Groups for Use
1197 with IETF Standards\fR. BBN Technologies, January 2008.