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\e, 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 thresholds 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 displays 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. 1198 .sp 1199 .LP 1200 Fu, D. and Solinas, J. \fIRFC 5903, Elliptic Curve Groups modulo a Prime (ECP 1201 Groups) for IKE and IKEv2\fR. NSA, June 2010.