1 IKEADM(1M) Maintenance Commands IKEADM(1M) 2 3 4 5 NAME 6 ikeadm - manipulate Internet Key Exchange (IKE) parameters and state 7 8 SYNOPSIS 9 ikeadm [-np] 10 11 12 ikeadm [-np] get [debug | priv | stats | defaults] 13 14 15 ikeadm [-np] set [debug | priv] [level] [file] 16 17 18 ikeadm [-np] [get | del] [p1 | rule | preshared] [id] 19 20 21 ikeadm [-np] add [rule | preshared] { description } 22 23 24 ikeadm [-np] token [login | logout] PKCS#11_Token_Object 25 26 27 ikeadm [-np] [read | write] [rule | preshared | certcache] file 28 29 30 ikeadm [-np] [dump | pls | rule | preshared] 31 32 33 ikeadm [-np] flush [p1 | certcache] 34 35 36 ikeadm help 37 [get | set | add | del | read | write | dump | flush | token] 38 39 40 DESCRIPTION 41 The ikeadm utility retrieves information from and manipulates the 42 configuration of the Internet Key Exchange (IKE) protocol daemon, 43 in.iked(1M). 44 45 46 ikeadm supports a set of operations, which may be performed on one or 47 more of the supported object types. When invoked without arguments, 48 ikeadm enters interactive mode which prints a prompt to the standard 49 output and accepts commands from the standard input until the end-of- 50 file is reached. 51 52 53 Because ikeadm manipulates sensitive keying information, you must be 54 superuser to use this command. Additionally, some of the commands 55 available require that the daemon be running in a privileged mode, 56 which is established when the daemon is started. 57 58 59 For details on how to use this command securely see . 60 61 OPTIONS 62 The following options are supported: 63 64 -n 65 66 Prevent attempts to print host and network names symbolically when 67 reporting actions. This is useful, for example, when all name 68 servers are down or are otherwise unreachable. 69 70 71 -p 72 73 Paranoid. Do not print any keying material, even if saving Security 74 Associations. Instead of an actual hexadecimal digit, print an X 75 when this flag is turned on. 76 77 78 USAGE 79 Commands 80 The following commands are supported: 81 82 add 83 84 Add the specified object. This option can be used to add a new 85 policy rule or a new preshared key to the current (running) in.iked 86 configuration. When adding a new preshared key, the command cannot 87 be invoked from the command line, as it will contain keying 88 material. The rule or key being added is specified using 89 appropriate id-value pairs as described in the ID FORMATS section. 90 91 92 del 93 94 Delete a specific object or objects from in.iked's current 95 configuration. This operation is available for IKE (Phase 1) SAs, 96 policy rules, and preshared keys. The object to be deleted is 97 specified as described in the Id Formats. 98 99 100 dump 101 102 Display all objects of the specified type known to in.iked. This 103 option can be used to display all Phase 1 SAs, policy rules, 104 preshared keys, or the certificate cache. A large amount of output 105 may be generated by this command. 106 107 108 flush 109 110 Remove all IKE (Phase 1) SAs or cached certificates from in.iked. 111 112 Note that flushing the certcache will also (as a side-effect) 113 update IKE with any new certificates added or removed. 114 115 116 get 117 118 Lookup and display the specified object. May be used to view the 119 current debug or privilege level, global statistics and default 120 values for the daemon, or a specific IKE (Phase 1) SA, policy rule, 121 or preshared key. The latter three object types require that 122 identifying information be passed in; the appropriate specification 123 for each object type is described below. 124 125 126 help 127 128 Print a brief summary of commands, or, when followed by a command, 129 prints information about that command. 130 131 132 read 133 134 Update the current in.iked configuration by reading the policy 135 rules or preshared keys from either the default location or from 136 the file specified. 137 138 139 set 140 141 Adjust the current debug or privilege level. If the debug level is 142 being modified, an output file may optionally be specified; the 143 output file must be specified if the daemon is running in the 144 background and is not currently printing to a file. When changing 145 the privilege level, adjustments may only be made to lower the 146 access level; it cannot be increased using ikeadm. 147 148 149 write 150 151 Write the current in.iked policy rule set or preshared key set to 152 the specified file. A destination file must be specified. This 153 command should not be used to overwrite the existing configuration 154 files. 155 156 157 token 158 159 Log into a PKCS#11 token object and grant access to keying material 160 or log out and invalidate access to keying material. 161 162 token can be run as a normal user with the following 163 authorizations: 164 165 o token login: solaris.network.ipsec.ike.token.login 166 167 o token logout: solaris.network.ipsec.ike.token.logout 168 169 170 Object Types 171 debug 172 173 Specifies the daemon's debug level. This determines the amount and 174 type of output provided by the daemon about its operations. The 175 debug level is actually a bitmask, with individual bits enabling 176 different types of information. 177 178 179 180 181 Description Flag Nickname 182 ------------------------------------------- 183 Certificate management 0x0001 cert 184 Key management 0x0002 key 185 Operational 0x0004 op 186 Phase 1 SA creation 0x0008 phase1 187 Phase 2 SA creation 0x0010 phase2 188 PF_KEY interface 0x0020 pfkey 189 Policy management 0x0040 policy 190 Proposal construction 0x0080 prop 191 Door interface 0x0100 door 192 Config file processing 0x0200 config 193 All debug flags 0x3ff all 194 195 When specifying the debug level, either a number (decimal or 196 hexadecimal) or a string of nicknames may be given. For example, 197 88, 0x58, and phase1+phase2+policy are all equivalent, and will 198 turn on debug for phase 1 sa creation, phase 2 sa creation, and 199 policy management. A string of nicknames may also be used to remove 200 certain types of information; all-op has the effect of turning on 201 all debug except for operational messages; it is equivalent to the 202 numbers 1019 or 0x3fb. 203 204 205 priv 206 207 Specifies the daemon's access privilege level. The possible values 208 are: 209 210 Description Level Nickname 211 Base level 0 base 212 Access to preshared key info 1 modkeys 213 Access to keying material 2 keymat 214 215 216 By default, in.iked is started at the base level. A command-line 217 option can be used to start the daemon at a higher level. ikeadm 218 can be used to lower the level, but it cannot be used to raise the 219 level. 220 221 Either the numerical level or the nickname may be used to specify 222 the target privilege level. 223 224 In order to get, add, delete, dump, read, or write preshared keys, 225 the privilege level must at least give access to preshared key 226 information. However, when viewing preshared keys (either using 227 the get or dump command), the key itself will only be available if 228 the privilege level gives access to keying material. This is also 229 the case when viewing Phase 1 SAs. 230 231 232 stats 233 234 Global statistics from the daemon, covering both successful and 235 failed Phase 1 SA creation. 236 237 Reported statistics include: 238 239 o Count of current P1 SAs which the local entity initiated 240 241 o Count of current P1 SAs where the local entity was the 242 responder 243 244 o Count of all P1 SAs which the local entity initiated 245 since boot 246 247 o Count of all P1 SAs where the local entity was the 248 responder since boot 249 250 o Count of all attempted P1 SAs since boot, where the 251 local entity was the initiator; includes failed attempts 252 253 o Count of all attempted P1 SAs since boot, where the 254 local entity was the responder; includes failed attempts 255 256 o Count of all failed attempts to initiate a P1 SA, where 257 the failure occurred because the peer did not respond 258 259 o Count of all failed attempts to initiate a P1 SA, where 260 the peer responded 261 262 o Count of all failed P1 SAs where the peer was the 263 initiator 264 265 o Whether a PKCS#11 library is in use, and if applicable, 266 the PKCS#11 library that is loaded. See . 267 268 269 defaults 270 271 Display default values used by the in.iked daemon. Some values can 272 be overridden in the daemon configuration file (see ike.config(4)); 273 for these values, the token name is displayed in the get defaults 274 output. The output will reflect where a configuration token has 275 changed the default. 276 277 Default values might be ignored in the event a peer system makes a 278 valid alternative proposal or they can be overridden by per-rule 279 values established in ike.config. In such instances, a get defaults 280 command continues to display the default values, not the values 281 used to override the defaults. 282 283 284 p1 285 286 An IKE Phase 1 SA. A p1 object is identified by an IP address pair 287 or a cookie pair; identification formats are described below. 288 289 290 rule 291 292 An IKE policy rule, defining the acceptable security 293 characteristics for Phase 1 SAs between specified local and remote 294 identities. A rule is identified by its label; identification 295 formats are described below. 296 297 298 preshared 299 300 A preshared key, including the local and remote identification and 301 applicable IKE mode. A preshared key is identified by an IP address 302 pair or an identity pair; identification formats are described 303 below. 304 305 306 Id Formats 307 Commands like add, del, and get require that additional information be 308 specified on the command line. In the case of the delete and get 309 commands, all that is required is to minimally identify a given object; 310 for the add command, the full object must be specified. 311 312 313 Minimal identification is accomplished in most cases by a pair of 314 values. For IP addresses, the local addr and then the remote addr are 315 specified, either in dot-notation for IPv4 addresses, colon-separated 316 hexadecimal format for IPv6 addresses, or a host name present in the 317 host name database. If a host name is given that expands to more than 318 one address, the requested operation will be performed multiple times, 319 once for each possible combination of addresses. 320 321 322 Identity pairs are made up of a local type-value pair, followed by the 323 remote type-value pair. Valid types are: 324 325 prefix 326 327 An address prefix. 328 329 330 fqdn 331 332 A fully-qualified domain name. 333 334 335 domain 336 337 Domain name, synonym for fqdn. 338 339 340 user_fqdn 341 342 User identity of the form user@fqdn. 343 344 345 mailbox 346 347 Synonym for user_fqdn. 348 349 350 351 A cookie pair is made up of the two cookies assigned to a Phase 1 352 Security Association (SA) when it is created; first is the initiator's, 353 followed by the responder's. A cookie is a 64-bit number. 354 355 356 Finally, a label (which is used to identify a policy rule) is a 357 character string assigned to the rule when it is created. 358 359 360 Formatting a rule or preshared key for the add command follows the 361 format rules for the in.iked configuration files. Both are made up of a 362 series of id-value pairs, contained in curly braces ({ and }). See 363 ike.config(4) and ike.preshared(4) for details on the formatting of 364 rules and preshared keys. 365 366 SECURITY 367 The ikeadm command allows a privileged user to enter cryptographic 368 keying information. If an adversary gains access to such information, 369 the security of IPsec traffic is compromised. The following issues 370 should be taken into account when using the ikeadm command. 371 372 o Is the TTY going over a network (interactive mode)? 373 374 If it is, then the security of the keying material is the 375 security of the network path for this TTY's traffic. Using 376 ikeadm over a clear-text telnet or rlogin session is risky. 377 Even local windows may be vulnerable to attacks where a 378 concealed program that reads window events is present. 379 380 o Is the file accessed over the network or readable to the 381 world (read/write commands)? 382 383 A network-mounted file can be sniffed by an adversary as it 384 is being read. A world-readable file with keying material in 385 it is also risky. 386 387 388 If your source address is a host that can be looked up over the 389 network, and your naming system itself is compromised, then any names 390 used will no longer be trustworthy. 391 392 393 Security weaknesses often lie in misapplication of tools, not the tools 394 themselves. It is recommended that administrators are cautious when 395 using the ikeadm command. The safest mode of operation is probably on a 396 console, or other hard-connected TTY. 397 398 399 For additional information regarding this subject, see the afterward by 400 Matt Blaze in Bruce Schneier's Applied Cryptography: Protocols, 401 Algorithms, and Source Code in C. 402 403 EXAMPLES 404 Example 1 Emptying out all Phase 1 Security Associations 405 406 407 The following command empties out all Phase 1 Security Associations: 408 409 410 example# ikeadm flush p1 411 412 413 414 Example 2 Displaying all Phase 1 Security Associations 415 416 417 The following command displays all Phase 1 Security Associations: 418 419 420 example# ikeadm dump p1 421 422 423 424 Example 3 Deleting a Specific Phase 1 Security Association 425 426 427 The following command deletes the specified Phase 1 Security 428 Associations: 429 430 431 example# ikeadm del p1 local_ip remote_ip 432 433 434 435 Example 4 Adding a Rule From a File 436 437 438 The following command adds a rule from a file: 439 440 441 example# ikeadm add rule rule_file 442 443 444 445 Example 5 Adding a Preshared Key 446 447 448 The following command adds a preshared key: 449 450 451 example# ikeadm 452 ikeadm> add preshared { localidtype ip localid local_ip 453 remoteidtype ip remoteid remote_ip ike_mode main 454 key 1234567890abcdef1234567890abcdef } 455 456 457 458 Example 6 Saving All Preshared Keys to a File 459 460 461 The following command saves all preshared keys to a file: 462 463 464 example# ikeadm write preshared target_file 465 466 467 468 Example 7 Viewing a Particular Rule 469 470 471 The following command views a particular rule: 472 473 474 example# ikeadm get rule rule_label 475 476 477 478 Example 8 Reading in New Rules from ike.config 479 480 481 The following command reads in new rules from the ike.config file: 482 483 484 example# ikeadm read rules 485 486 487 488 Example 9 Lowering the Privilege Level 489 490 491 The following command lowers the privilege level: 492 493 494 example# ikeadm set priv base 495 496 497 498 Example 10 Viewing the Debug Level 499 500 501 The following command shows the current debug level 502 503 504 example# ikeadm get debug 505 506 507 508 Example 11 Using stats to Verify Hardware Accelerator 509 510 511 The following example shows how stats may include an optional line at 512 the end to indicate if IKE is using a PKCS#11 library to accelerate 513 public-key operations, if applicable. 514 515 516 example# ikeadm get stats 517 Phase 1 SA counts: 518 Current: initiator: 0 responder: 0 519 Total: initiator: 21 responder: 27 520 Attempted:initiator: 21 responder: 27 521 Failed: initiator: 0 responder: 0 522 initiator fails include 0 time-out(s) 523 PKCS#11 library linked in from /opt/SUNWconn/lib/libpkcs11.so 524 example# 525 526 527 528 Example 12 Displaying the Certificate Cache 529 530 531 The following command shows the certificate cache and the status of 532 associated private keys, if applicable: 533 534 535 example# ikeadm dump certcache 536 537 538 539 Example 13 Logging into a PKCS#11 Token 540 541 542 The following command shows logging into a PKCS#11 token object and 543 unlocking private keys: 544 545 546 example# ikeadm token login "Sun Metaslot" 547 Enter PIN for PKCS#11 token: 548 ikeadm: PKCS#11 operation successful 549 550 551 552 EXIT STATUS 553 The following exit values are returned: 554 555 0 556 Successful completion. 557 558 559 non-zero 560 An error occurred. Writes an appropriate error message to 561 standard error. 562 563 564 ATTRIBUTES 565 See attributes(5) for descriptions of the following attributes: 566 567 568 569 570 +--------------------+------------------+ 571 | ATTRIBUTE TYPE | ATTRIBUTE VALUE | 572 +--------------------+------------------+ 573 |Interface Stability | Not an Interface | 574 +--------------------+------------------+ 575 576 SEE ALSO 577 in.iked(1M), ike.config(4), ike.preshared(4), attributes(5), ipsec(7P) 578 579 580 Schneier, Bruce, Applied Cryptography: Protocols, Algorithms, and 581 Source Code in C, Second Edition, John Wiley & Sons, New York, NY, 582 1996. 583 584 NOTES 585 As in.iked can run only in the global zone and exclusive-IP zones, this 586 command is not useful in shared-IP zones. 587 588 589 590 January 27, 2009 IKEADM(1M)