手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

ikeadm(1M)

名称

ikeadm - 处理 Internet 密钥交换 (Internet Key Exchange, IKE) 参数和状态

用法概要

ikeadm [-np] [-v {1|2}]
ikeadm [-np] [-v {1|2}] get [debug | priv | stats | defaults]
ikeadm [-np] [-v {1|2}] set [debug | priv] [level] [file]
ikeadm [-np] [-v {1|2}] [get | del] [p1 | ikesa | rule | preshared] [id]
ikeadm [-np] [-v {1|2}] add [rule | preshared] { 
description }
ikeadm [-np] [-v {1|2}] token [login | logout] 
PKCS#11_Token_Object
ikeadm [-np] [-v {1|2}] [read | write] [rule | preshared | certcache] 
file
ikeadm [-np] [-v {1|2}] dump [p1 | ikesa | rule | preshared | certcache | groups
     | encralgs | authalgs]
ikeadm [-v {1|2}] [-np] flush [p1 | ikesa | certcache]
ikeadm help
     [get | set | add | del | read | write | dump | flush | token]

描述

ikeadm 实用程序从 Internet 密钥交换 (Internet Key Exchange, IKE) 协议守护进程 in.iked(1M) 检索信息,并处理此守护进程的配置。

ikeadm 实用程序与运行的 Internet 密钥交换 (Internet Key Exchange, IKE) 守护进程通信。此实用程序可以从运行的守护进程检索信息或者更改其配置而不重新启动该守护进程。有两个 IKE 协议守护进程 in.iked(1M)in.ikev2d(1M),分别支持 Internet 密钥交换协议的版本 1 和 2。

ikeadm 实用程序提供了可以替代 ike.config(4)ikev2.config(4) 中描述的配置文件的配置机制。此外,它还提供了唯一的接口用于收集仅来自运行的守护进程的统计信息和其他信息。

ikeadm 支持一系列操作,可对支持的一个或多个对象类型执行这些操作。当在不带任何参数的情况下调用时,ikeadm 将进入交互模式,这会在标准输出中输出一个提示,并接受来自标准输入的命令,直到到达文件结尾为止。

由于 ikeadm 处理敏感加密信息,因此您必须是超级用户或者被授予了 "Network IPsec Management"(网络 IPsec 管理)权限配置文件才能使用此命令。此外,某些可用命令还要求在特权模式下运行此守护进程,此模式在启动守护进程时建立。

有关如何安全地使用此命令的详细信息,请参见“安全性”部分。

选项

支持以下选项:

–n

防止在报告操作时尝试以符号方式输出主机和网络名称。此选项非常有用,例如,当关闭或无法访问所有名称服务器时。

–p

偏执。不输出任何加密材料,即使在保存安全关联时。启用此标志时输出 X,而非实际的十六进制数字。

–v {1|2}

IKE 版本号。如果 in.iked(1M)in.ikev2d(1M) 守护进程中只有一个在运行,此标志是可选的。否则,此标志指定 IKE 守护进程的哪个版本是此操作的目标。

用法

命令

所支持的命令如下:

add

添加指定对象。此选项可用于向当前(正在运行的)IKE 配置添加新的策略规则或新的预先共享的密钥。新的预先共享的密钥值仅能由正在运行的 ikeadm 以交互方式输入。请参见“安全性”部分。添加的规则或密钥使用相应的 id-对指定,如“Id 格式”部分中所述。

del

从 IKE 守护进程的当前配置中删除一个或多个特定对象。此操作适用于 IKE(阶段 1)SA、IKEv2 IKE SA、策略规则和预先共享的密钥。按照“Id 格式”中的说明指定要删除的对象。

dump

显示 IKE 守护进程已知的指定类型的所有对象。此选项可用于显示所有阶段 1 SA、IKEv2 IKE SA、策略规则、预先共享的密钥、实现的 Diffie-Helman 组、可用于阶段 1 或 IKE SA 的加密和验证算法或证书高速缓存。此命令可能会生成大量输出。

flush

从 IKE 守护进程删除所有 IKE(阶段 1)SA、IKEv2 IKE SA 或缓存的证书。

请注意,刷新 certcache 还将使用添加或删除的任何新证书更新 IKEv1(负作用)。请注意,IKEv2 没有公开的证书高速缓存。

get

查找并显示指定对象。可用于查看当前调试或特权级别、守护进程的全局统计信息和缺省值、特定 IKE(阶段 1)SA、IKEv2 IKE SA、策略规则或预先共享的密钥。后面三种对象类型要求传入标识信息;下面介绍了每种对象类型的相应规范。

help

输出简要的命令摘要,或者当后跟有命令时,输出有关此命令的信息。

read

通过从缺省位置或指定文件读取策略规则或预先共享的密钥,更新当前 IKE 配置。

set

调整当前调试或特权级别。如果要修改调试级别,可以选择性地指定输出文件;如果守护进程正在后台运行,并且当前未输出到文件,必须指定输出文件。更改特权级别时,调整只能是降低访问级别;不能使用 ikeadm 提高访问级别。请注意特权级别仅适用于 IKEv1。

write

将当前 IKE/IKEv2 策略规则集或预先共享的密钥集写入到指定文件。必须指定目标文件。此命令不能用于覆盖现有配置文件。

token

登录 PKCS#11 令牌对象并授予对加密材料的访问,或者注销并使对加密材料的访问无效。

具有 "Network IPsec Management"(网络 IPsec 管理)权限配置文件的普通用户可以运行 token

对象类型

debug

指定守护进程的调试级别。此选项确定守护进程提供的有关其操作的输出的数量和类型。调试级别实际为位掩码,并且各个位支持不同类型的信息。

IKEv1 and IKEv2

Certificate management   0x00000001               cert
Key management           0x00000002               key
Operational              0x00000004               op
Phase 1 SA creation      0x00000008               phase1
Phase 2 SA creation      0x00000010               phase2
PF_KEY interface         0x00000020               pfkey
Policy management        0x00000040               policy
Proposal construction    0x00000080               prop
Door interface           0x00000100               door
Config file processing   0x00000200               config
Label processing         0x00000400               label

IKEv2 only

Packet processing        0x00000800               packet
Audit interaction        0x00002000               audit
Additional Notes         0x00004000               note
Threading issues         0x00008000               thread
Extra PF_KEY dumps       0x00010000               pfkeymsg
Verbose                  0x00006204               verbose
All debug flags          0x0001ffff               all

当指定调试级别时,可指定编号(十进制或十六进制)或昵称字符串。例如,880x58phase1+phase2+policy 均等效,并且将启用调试以便创建 phase 1 saphase 2 sa 和策略管理。此外,还可以使用昵称字符串删除特定类型的信息;all-op 的作用是启用操作消息以外的所有调试;它等效于编号 10190x3fb

priv

仅限 IKEv1

指定守护进程的访问特权级别。可能值有:


Description                  Level   Nickname
Base level                   0       base
Access to preshared key info 1       modkeys
Access to keying material    2       keymat

缺省情况下,在基本级别启动 in.iked。命令行选项可用于在更高级别启动守护进程。ikeadm 可用于降低级别,但不能用于提升级别。

数字级别或昵称可用于指定目标特权级别。

有关 config/admin_privilege SMF 属性的说明,请参见 in.iked(1M)。此属性允许您建立基线特权级别,ikeadm 随后可以修改该级别。

为了获取、添加、删除、转储、读取或写入预先共享的密钥,特权级别必须至少能够授予对预先共享的密钥信息的访问。但是,当查看预先共享的密钥(使用获取或转储命令)时,仅当特权级别能够授予对加密材料的访问时,才能使用密钥本身。当查看阶段 1 SA 时,也会出现此种情况。

stats

守护进程的全局统计信息。

IKEv1 stats 包括成功和失败的阶段 1 SA 创建操作。

报告的统计信息包括:

  • 本地实体启动的当前 P1 SA 的计数

  • 本地实体作为响应器的当前 P1 SA 的计数

  • 本地实体自引导以来启动的所有 P1 SA 的计数。

  • 本地实体自引导以来作为响应器的所有 P1 SA 的计数

  • 自引导以来尝试的所有 P1 SA 的计数(其中本地实体是启动器);包括失败的尝试

  • 自引导以来尝试的所有 P1 SA 的计数(其中本地实体是响应器);包括失败的尝试

  • 启动 P1 SA 的所有失败尝试的计数,出现失败的原因是因为同级设备未响应

  • 启动 P1 SA 的所有失败尝试的计数,其中统计设备已响应

  • 同级设备作为启动器的所有失败 P1 SA 的计数

  • 是否使用了 PKCS#11 库以及装载的 PKCS#11 库(如果适用)。请参见 ike.config(4)

IKEv2 stats 包括成功和失败的 IKE SA 创建操作。

  • 所有成功的 IKEv2 SA 创建操作的计数

  • 所有失败的 IKEv2 SA 创建操作的计数

  • 所有成功的 IKEv2 密钥重设操作的计数

  • 所有失败的 IKEv2 密钥重设操作的计数

  • 所有内存分配故障的计数

defaults

仅限 IKEv1

显示 in.iked 守护进程使用的缺省值。某些值可在守护进程配置文件中覆盖(请参见 ike.config(4));对于这些值,令牌名称显示在 get defaults 输出中。此输出将反映配置令牌已更改缺省值的位置。

如果同级系统提出有效的备用提案,或者可根据 ike.config 中建立的基于规则的值覆盖缺省值,则可以忽略缺省值。此种情况下,get defaults 命令继续显示缺省值,而不是用于覆盖缺省值的值。

ikesa

IKEv2 IKE SA。ikesa 对象通过 IP 地址对或本地 SPI 标识;标识格式如下所述。

p1

IKE 阶段 1 SA。p1 对象通过 IP 地址对或 cookie 对标识;标识格式如下所述。

rule

IKE 策略规则,定义位于指定的本地标识和远程标识之间的阶段 1 或 IKEv2 IKE SA 的可接受安全特征。规则通过其标签标识;标识格式如下所述。

preshared

预先共享的密钥,包括适用标识符。在 IKEv1 中,preshared 密钥通过 IP 地址对或标识对进行标识。在 IKEv2 中,preshared 密钥通过其规则标签进行标识。标识格式如下所述。

Id 格式

adddelget 等命令要求在命令行中指定其他信息。对于删除和获取命令,所有所需操作仅为以最简单的方式标识给定对象;对于添加命令,必须指定完整对象。

在大多数情况下,使用一对值可以实现最简单的标识。对于 IP 地址,以点记法(适用于 IPv4 地址)、冒号分隔的十六进制格式(适用于 IPv6 地址)或主机名称数据库中存在的主机名的形式先后指定本地地址和远程地址。如果指定扩展为多个地址的主机名,则将多次执行请求的操作(对每个可能的地址组合各执行一次)。

标识对由后跟有远程类型-值对的本地类型-值对组成。有效类型包括:

prefix

地址前缀。

fqdn

全限定域名。

domain

域名,fqdn 的同义词。

user_fqdn

user@fqdn 格式的用户标识。(仅限 IKEv1)

mailbox

user_fqdn 的同义词。

一个 Cookie 对由在创建阶段 1 安全关联 (Security Association, SA) 时为其分配的两个 Cookie 组成;首先是启动器的 Cookie,其次是响应者的 Cookie。Cookie 是一个 64 位数值。

最后,标签(用于标识策略规则)是在创建规则时分配给规则的字符串。

为 add 命令格式化规则或预先共享的密钥时应遵循 in.ikedin.ikev2d 配置文件的格式规则。两种规则都由一系列包含在花括号({})中的 ID-值对组成。对于 IKEv1,有关格式化规则和预先共享的密钥的详细信息,请参见 ike.config(4)ike.preshared(4)。对于 IKEv2,有关其格式化规则,请参见 ikev2.config(4)ikev2.preshared(4)

安全

具有 "Network IPsec Management"(网络 IPsec 管理)权限配置文件的授权用户可以使用 ikeadm 命令输入密钥加密信息。如果对手获取了对此类信息的访问,则会影响 IPsec 通信的安全。使用 ikeadm 命令时,应考虑下列问题。

  • TTY 是否会通过网络(交互模式)?

    如果是,加密材料的安全即为此 TTY 的通信的网络路径的安全。使用 ikeadm(而非明文 telnet 或 rlogin 会话)具有一定的风险。甚至本地窗口也可能受到读取存在的窗口事件的隐藏程序的攻击。

  • 文件是否能通过网络访问,或者是否可供用户读取(读/写命令)?

    挂载在网络中的文件可在读取时被对手发现。包含加密材料的完全公开文件同样存在风险。

如果您的源地址是可通过网络查找的主机,并且您的命名系统本身已泄密,使用的所有名称都将不再值得信任。

管理加密材料的命令通常不允许在命令行上指定加密材料。这是因为此加密材料可能最终出现在 shell 历史文件中或者对运行 ps(1) 的其他用户可见,因此可能会泄密。

安全漏洞通常在工具的不当应用中产生,而不存在于工具自身中。建议管理员在使用 ikeadm 命令时应小心谨慎。最安全的运行模式可能是在控制台或其他硬连接 TTY 中运行。

有关此主题的其他信息,请参见 Matt Blaze 在 Bruce Schneier 编著的《Applied Cryptography: Protocols, Algorithms, and Source Code in C.》中撰写的后记。

示例

示例 1 清空所有阶段 1 或 IKEv2 IKE 安全关联

IKEv1:

下面的命令清空所有阶段 1 安全关联:

example# ikeadm flush p1

IKEv2:

下面的命令清空所有 IKEv2 IKE 安全关联:

example# ikeadm flush ikesa
示例 2 显示所有阶段 1 或 IKEv2 IKE 安全关联

IKEv1:

下面的命令显示所有阶段 1 安全关联:

example# ikeadm dump p1

IKEv2:

下面的命令显示所有 IKEv2 IKE 安全关联:

example# ikeadm dump ikesa
示例 3 删除特定阶段 1 安全关联

下面的命令删除指定阶段 1 或 IKEv2 IKE 安全关联:

IKEv1:

example# ikeadm del p1 local_ip remote_ip

IKEv2:

example# ikeadm del ikesa local_ip remote_ip

...或者:

example# ikeadm del ikesa 0x49bf01d5c7585ea8

请注意,以上命令中的值 0x49bf01d5c7585ea8,是 ikeadm dump ikesa 显示的 IKE SA 的本地 SPI。

示例 4 从文件中添加规则

下面的命令用于从文件中添加规则:

example# ikeadm add rule rule_file
示例 5 添加预先共享的密钥

下面的命令添加预先共享的密钥:

IKEv1:

example# ikeadm
     ikeadm> add preshared { localidtype ip localid local_ip
             remoteidtype ip remoteid remote_ip ike_mode main
             key 1234567890abcdef1234567890abcdef }

IKEv2:

example# ikeadm
     ikeadm> add preshared { label "existing rule label"
key 0x4b6562652e0a }
示例 6 将所有预先共享的密钥保存到文件

下面的命令将所有预先共享的密钥保存到文件:

example# ikeadm write preshared target_file
示例 7 查看特定规则

下面的命令用于查看特定规则:

example# ikeadm get rule rule_label
示例 8 ike.config 读入新规则

下面的命令从 ike.config 文件读入新规则:

example# ikeadm read rules
示例 9 降低特权级别

下面的命令降低 IKEv1 的特权级别:

example# ikeadm set priv base
示例 10 查看调试级别

下面的命令显示当前调试级别:

example# ikeadm get debug
示例 11 使用 stats 检验 IKEv1 中的硬件加速器

下面的示例显示统计信息如何在末尾包含可选行,以便指示 IKE 是否使用 PKCS#11 库来加快公钥操作的速度(如果适用)。

example# ikeadm get stats
Phase 1 SA counts:
Current:  initiator:     0    responder:      0
Total:    initiator:    21   responder:      27
Attempted:initiator:    21   responder:      27
Failed:   initiator:     0   responder:       0
	         initiator fails include 0 time-out(s)
PKCS#11 library linked in from /opt/system/core-osonn/lib/libpkcs11.so
example# 
示例 12 显示 IKEv1 中的证书高速缓存

下面的命令显示证书高速缓存以及关联私钥的状态(如果适用):

example# ikeadm dump certcache
示例 13 登录 PKCS#11 令牌

下面的命令显示如何登录 PKCS#11 令牌对象以及如何解除锁定私钥:

example# ikeadm token login "Sun Metaslot"
Enter PIN for PKCS#11 token:
ikeadm: PKCS#11 operation successful

退出状态

将返回以下退出值:

0

成功完成。

非零值

出现错误。在标准错误中写入相应错误消息。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
network/ike
接口稳定性
Committed(已确定)

另请参见

ps(1)in.iked(1M)in.ikev2d(1M)ike.config(4)ikev2.config(4)ike.preshared(4)ikev2.preshared(4)attributes(5)ipsec(7P)

Bruce Schneier 编著的《Applied Cryptography: Protocols, Algorithms, and Source Code in C》第 2 版,John Wiley & Sons 出版,纽约,1996 年。

附注

由于 in.ikedin.ikev2d 只能在全局区域和独占 IP 区域中运行,因此该命令在共享 IP 区域中不起作用。