跳过导航链接 | |
退出打印视图 | |
![]() |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11 Information Library (简体中文) |
- 处理 Internet 密钥交换 (Internet Key Exchange, IKE) 参数和状态
ikeadm [-np]
ikeadm [-np] get [debug | priv | stats | defaults]
ikeadm [-np] set [debug | priv] [level] [file]
ikeadm [-np] [get | del] [p1 | rule | preshared] [id]
ikeadm [-np] add [rule | preshared] { description }
ikeadm [-np] token [login | logout] PKCS#11_Token_Object
ikeadm [-np] [read | write] [rule | preshared | certcache] file
ikeadm [-np] dump [p1 | rule | preshared | certcache | groups | encralgs | authalgs]
ikeadm [-np] flush [p1 | certcache]
ikeadm help [get | set | add | del | read | write | dump | flush | token]
ikeadm 实用程序从 Internet 密钥交换 (Internet Key Exchange, IKE) 协议守护进程 in.iked(1M) 检索信息,并处理此守护进程的配置。
ikeadm 支持一系列操作,可对支持的一个或多个对象类型执行这些操作。当在不带任何参数的情况下调用时,ikeadm 将进入交互模式,这会在标准输出中输出一个提示,并接受来自标准输入的命令,直到到达文件结尾为止。
由于 ikeadm 处理敏感加密信息,因此您必须是超级用户才能使用此命令。此外,某些可用命令还要求在特权模式下运行此守护进程,此模式在启动守护进程时建立。
有关如何安全地使用此命令的详细信息,请参见安全。
所支持的选项如下:
防止在报告操作时尝试以符号方式输出主机和网络名称。此选项非常有用,例如,当关闭或无法访问所有名称服务器时。
偏执。不输出任何加密材料,即使在保存安全关联时。启用此标志时输出 X,而非实际的十六进制数字。
所支持的命令如下:
添加指定对象。此选项可用于向当前(正在运行的)in.iked 配置添加新的策略规则或新的预先共享的密钥。 当添加新的预先共享的密钥时,由于此命令将包含加密材料,因此无法从命令行调用此命令。添加的规则或密钥使用相应的 ID-值对指定,如 ID 格式部分中所述。
从 in.iked 的当前配置中删除一个或多个特定对象。此操作适用于 IKE(阶段 1)SA、策略规则和预先共享的密钥。按照 Id 格式中的说明指定要删除的对象。
显示 in.iked 已知的指定类型的所有对象。此选项可用于显示所有阶段 1 SA、策略规则、预先共享的密钥、实现的 Diffie-Helman 组、可用于阶段 1 的加密和验证算法或证书高速缓存。此命令可能会生成大量输出。
从 in.iked 中删除所有 IKE(阶段 1)SA 或缓存证书。
请注意,刷新证书高速缓存还将使用添加或删除的任何新证书更新 IKE(作为负面影响)。
查找并显示指定对象。可用于查看当前调试或特权级别、守护进程的全局统计信息和缺省值、特定 IKE(阶段 1)SA、策略规则或预先共享的密钥。后面三种对象类型要求传入标识信息;下面介绍了每种对象类型的相应规范。
输出简要的命令摘要,或者当后跟有命令时,输出有关此命令的信息。
通过从缺省位置或指定文件读取策略规则或预先共享的密钥,更新当前 in.iked 配置。
调整当前调试或特权级别。如果要修改调试级别,可以选择性地指定输出文件;如果守护进程正在后台运行,并且当前未输出到文件,必须指定输出文件。更改特权级别时,调整只能是降低访问级别;不能使用 ikeadm 提高访问级别。
将当前 in.iked 策略规则集或预先共享的密钥集写入到指定文件。必须指定目标文件。此命令不能用于覆盖现有配置文件。
登录 PKCS#11 令牌对象并授予对加密材料的访问,或者注销并使对加密材料的访问无效。
token 可作为具有下列授权的普通用户运行:
令牌登录:solaris.network.ipsec.ike.token.login
令牌注销:solaris.network.ipsec.ike.token.logout
指定守护进程的调试级别。此选项确定守护进程提供的有关其操作的输出的数量和类型。调试级别实际为位掩码,并且各个位支持不同类型的信息。
|
当指定调试级别时,可指定编号(十进制或十六进制)或昵称字符串。例如,88、0x58 和 phase1+phase2+policy 均等效,并且将启用调试以便创建 phase 1 sa、phase 2 sa 和策略管理。此外,还可以使用昵称字符串删除特定类型的信息;all-op 的作用是启用除操作消息以外的所有调试;它等效于编号 1019 或 0x3fb。
指定守护进程的访问特权级别。可能值有:
Description Level Nickname Base level 0 base Access to preshared key info 1 modkeys Access to keying material 2 keymat
缺省情况下,在基本级别启动 in.iked。命令行选项可用于在更高级别启动守护进程。ikeadm 可用于降低级别,但不能用于提升级别。
数字级别或昵称可用于指定目标特权级别。
为了获取、添加、删除、转储、读取或写入预先共享的密钥,特权级别必须至少能够授予对预先共享的密钥信息的访问。但是,当查看预先共享的密钥(使用获取或转储命令)时,仅当特权级别能够授予对加密材料的访问时,才能使用密钥本身。当查看阶段 1 SA 时,也会出现此种情况。
守护进程的全局统计信息,涵盖成功和失败的阶段 1 SA 创建。
报告的统计信息包括:
本地实体启动的当前 P1 SA 的计数
本地实体作为响应器的当前 P1 SA 的计数
本地实体自引导以来启动的所有 P1 SA 的计数。
本地实体自引导以来作为响应器的所有 P1 SA 的计数
自引导以来尝试的所有 P1 SA 的计数(其中本地实体是启动器);包括失败的尝试
自引导以来尝试的所有 P1 SA 的计数(其中本地实体是响应器);包括失败的尝试
启动 P1 SA 的所有失败尝试的计数,出现失败的原因是因为同级设备未响应
启动 P1 SA 的所有失败尝试的计数,其中统计设备已响应
同级设备作为启动器的所有失败 P1 SA 的计数
是否使用了 PKCS#11 库以及装载的 PKCS#11 库(如果适用)。请参见示例 11。
显示 in.iked 守护进程使用的缺省值。某些值可在守护进程配置文件中覆盖(请参见 ike.config(4));对于这些值,令牌名称显示在 get defaults 输出中。此输出将反映配置令牌已更改缺省值的位置。
如果同级系统提出有效的备用提案,或者可根据 ike.config 中建立的基于规则的值覆盖缺省值,则可以忽略缺省值。此种情况下,get defaults 命令继续显示缺省值,而不是用于覆盖缺省值的值。
IKE 阶段 1 SA。p1 对象通过 IP 地址对或 cookie 对标识;标识格式如下所述。
IKE 策略规则,定义位于指定的本地标识和远程标识之间的阶段 1 SA 的可接受安全特征。规则通过其标签标识;标识格式如下所述。
预先共享的密钥,包括本地和远程标识以及适用的 IKE 模式。预先共享的密钥通过 IP 地址对或标识对标识;标识格式如下所述。
add、del 和 get 等命令要求在命令行中指定其他信息。对于删除和获取命令,所有所需操作仅为以最简单的方式标识给定对象;对于添加命令,必须指定完整对象。
在大多数情况下,使用一对值可以实现最简单的标识。对于 IP 地址,以点记法(适用于 IPv4 地址)、冒号分隔的十六进制格式(适用于 IPv6 地址)或主机名称数据库中存在的主机名的形式先后指定本地地址和远程地址。如果指定扩展为多个地址的主机名,则将多次执行请求的操作(对每个可能的地址组合各执行一次)。
标识对由后跟有远程类型-值对的本地类型-值对组成。有效类型包括:
地址前缀。
全限定域名。
域名,fqdn 的同义词。
user@fqdn 格式的用户标识。
user_fqdn 的同义词。
cookie 对由两个 cookie 组成,在创建阶段 1 安全关联 (Security Association, SA) 时会将这两个 cookie 分配给此关联;第一个是启动器的 cookie,然后是响应器的 cookie。cookie 是一个 64 位数字。
最后,标签(用于标识策略规则)是在创建规则时分配给规则的字符串。
为添加命令格式化规则或预先共享的密钥时应遵循 in.iked 配置文件的格式规则。两种规则都由一系列包含在花括号({ 和 })中的 ID-值对组成。有关格式化规则和预先共享的密钥的详细信息,请参见 ike.config(4) 和 ike.preshared(4)。
ikeadm 命令允许特权用户输入加密密钥信息。如果对手获取了对此类信息的访问,则会影响 IPsec 通信的安全。使用 ikeadm 命令时,应考虑下列问题。
TTY 是否会通过网络(交互模式)?
如果是,加密材料的安全即为此 TTY 的通信的网络路径的安全。使用 ikeadm(而非明文 telnet 或 rlogin 会话)具有一定的风险。甚至本地窗口也可能受到读取存在的窗口事件的隐藏程序的攻击。
文件是否能通过网络访问,或者是否可供用户读取(读/写命令)?
挂载在网络中的文件可在读取时被对手发现。网络中带有加密材料的用户可读文件同样具有一定的风险。
如果您的源地址是可通过网络查找的主机,并且您的命名系统本身已泄密,使用的所有名称都将不再值得信任。
安全漏洞通常在工具的不当应用中产生,而不存在于工具自身中。建议管理员在使用 ikeadm 命令时应小心谨慎。最安全的运行模式可能是在控制台或其他硬连接 TTY 中运行。
有关此主题的其他信息,请参见 Matt Blaze 在 Bruce Schneier 编著的《Applied Cryptography: Protocols, Algorithms, and Source Code in C.》中撰写的后记。
示例 1 清空所有阶段 1 安全关联
下面的命令清空所有阶段 1 安全关联:
example# ikeadm flush p1
示例 2 显示所有阶段 1 安全关联
下面的命令显示所有阶段 1 安全关联:
example# ikeadm dump p1
示例 3 删除特定阶段 1 安全关联
下面的命令删除指定阶段 1 安全关联:
example# ikeadm del p1 local_ip remote_ip
示例 4 从文件中添加规则
下面的命令用于从文件中添加规则:
example# ikeadm add rule rule_file
示例 5 添加预先共享的密钥
下面的命令添加预先共享的密钥:
example# ikeadm ikeadm> add preshared { localidtype ip localid local_ip remoteidtype ip remoteid remote_ip ike_mode main key 1234567890abcdef1234567890abcdef }
示例 6 将所有预先共享的密钥保存到文件
下面的命令将所有预先共享的密钥保存到文件:
example# ikeadm write preshared target_file
示例 7 查看特定规则
下面的命令用于查看特定规则:
example# ikeadm get rule rule_label
示例 8 从 ike.config 读入新规则
下面的命令从 ike.config 文件读入新规则:
example# ikeadm read rules
示例 9 降低特权级别
下面的命令降低特权级别:
example# ikeadm set priv base
示例 10 查看调试级别
下面的命令显示当前调试级别:
example# ikeadm get debug
示例 11 使用统计信息检验硬件加速器
下面的示例显示统计信息如何在末尾包含可选行,以便指示 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 显示证书高速缓存
下面的命令显示证书高速缓存以及关联私钥的状态(如果适用):
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
将返回下列退出值:
成功完成。
出现错误。在标准错误中写入相应错误消息。
有关以下属性的说明,请参见 attributes(5):
|
in.iked(1M)、ike.config(4)、ike.preshared(4)、attributes(5)、ipsec(7P)
Bruce Schneier 编著的《Applied Cryptography: Protocols, Algorithms, and Source Code in C》第 2 版,John Wiley & Sons 出版,纽约,1996 年。
由于 in.iked 只能在全局区域和专用 IP 区域中运行,因此此命令在共享 IP 区域中不起作用。