'\" te .\" Copyright (c) 2009, 2012, Oracle and/or its affiliates.All rights reserved. .TH ipsecalgs 1M "2010 年 7 月 28 日" "SunOS 5.11" "系统管理命令" .SH 名称 ipsecalgs \- 配置 IPsec 协议和算法表 .SH 用法概要 .LP .nf \fBipsecalgs\fR .fi .LP .nf \fBipsecalgs\fR \fB-l\fR .fi .LP .nf \fBipsecalgs\fR \fB-s\fR .fi .LP .nf \fBipsecalgs\fR \fB-a\fR [\fB-P\fR \fIprotocol-number\fR | \fB-p\fR \fIprotocol-name\fR] \fB-k\fR \fIkeylen-list\fR [\fB-i\fR \fIinc\fR] [\fB-K\fR \fIdefault-keylen\fR] \fB-b\fR \fIblocklen-list\fR \fB-n\fR \fIalg-names\fR \fB-N\fR \fIalg-number\fR \fB-m\fR \fImech-name\fR [\fB-I\fR \fIinitialization-vector_length\fR] [\fB-M\fR \fIMAC-length\fR] [\fB-S\fR \fIlength-of-salt\fR] [\fB-F\fR \fIflags\fR] [\fB-f\fR] [\fB-s\fR] .fi .LP .nf \fBipsecalgs\fR \fB-P\fR \fIprotocol-number\fR \fB-p\fR \fIprotocol-name\fR [\fB-e\fR \fIexec-mode\fR] [\fB-f\fR] [\fB-s\fR] .fi .LP .nf \fBipsecalgs\fR \fB-r\fR \fB-p\fR \fIprotocol-name\fR [] \fB-n\fR \fIalg-name\fR [\fB-s\fR] .fi .LP .nf \fBipsecalgs\fR \fB-r\fR \fB-p\fR \fIprotocol-name\fR [] \fB-N\fR \fIalg-number\fR [\fB-s\fR] .fi .LP .nf \fBipsecalgs\fR \fB-R\fR \fB-P\fR \fIprotocol-number\fR [\fB-s\fR] .fi .LP .nf \fBipsecalgs\fR \fB-R\fR \fB-p\fR \fIprotocol-name\fR [\fB-s\fR] .fi .LP .nf \fBipsecalgs\fR \fB-e\fR \fIexec-mode\fR \fB-P\fR \fIprotocol-number\fR [\fB-s\fR] .fi .LP .nf \fBipsecalgs\fR \fB-e\fR \fIexec-mode\fR \fB-p\fR \fIprotocol-name\fR [\fB-s\fR] .fi .SH 描述 .sp .LP 使用 \fBipsecalgs\fR 命令可查询和修改存储在 \fB/etc/inet/ipsecalgs\fR 中的 IPsec 协议和算法。可以使用 \fBipsecalgs\fR 命令执行以下操作: .RS +4 .TP .ie t \(bu .el o 列出当前定义的 IPsec 协议和算法 .RE .RS +4 .TP .ie t \(bu .el o 修改 IPsec 协议定义 .RE .RS +4 .TP .ie t \(bu .el o 修改 IPsec 算法定义 .RE .sp .LP \fB切勿\fR手动编辑 \fB/etc/inet/ipsecalgs\fR 文件。ISAKMP DOI 描述了有效的 IPsec 协议和算法。请参见 \fIRFC 2407\fR。从一般意义上说,系统解释域 (domain of interpretation, DOI) 定义数据格式、网络通信交换类型和安全相关信息的命名约定(例如安全策略或加密算法和模式)。对于 \fBipsecalgs\fR,DOI 定义了算法及其所属协议的命名和编号约定。这些编号由 Internet 号码分配机构 (Internet Assigned Numbers Authority, IANA) 定义。每个算法都属于一个协议。算法信息包含支持的密钥长度、块长度或 MAC 长度以及与该算法对应的加密机制的名称。IPsec 模块 \fBipsecesp\fR(7P) 和 \fBipsecah\fR(7P) 使用这些信息确定可应用于 IPsec 通信的验证和加密算法。 .sp .LP 预定义了以下协议: .sp .ne 2 .mk .na \fB\fBIPSEC_PROTO_ESP\fR\fR .ad .RS 19n .rt 定义 IPsec 提供数据保密性可使用的加密算法(转换)。 .RE .sp .ne 2 .mk .na \fB\fBIPSEC_PROTO_AH\fR\fR .ad .RS 19n .rt 定义 IPsec 提供验证可使用的验证算法(转换)。 .RE .sp .LP 算法条目指定的机制名称必须对应有效的 Solaris 加密框架机制。您可以使用 \fBcryptoadm\fR(1M) 命令获取可用机制的列表。 .sp .LP 应用程序可以使用以下函数检索支持的算法及其关联协议:\fBgetipsecalgbyname\fR(3NSL)、\fBgetipsecalgbynum\fR(3NSL)、\fBgetipsecprotobyname\fR(3NSL) 和 \fBgetipsecprotobynum\fR(3NSL)。 .sp .LP 缺省情况下,对协议和算法的修改仅更新 \fB/etc/inet/ipsecalgs\fR 配置文件的内容。要将新定义用于 IPsec 处理,必须使用 \fB-s\fR 选项将所做更改传递给内核。有关 \fBipsecalgs\fR 配置如何在系统重启时与内核同步的说明,请参见\fB\fR“附注”部分。 .sp .LP 不带参数调用时,\fBipsecalgs\fR 显示当前在 \fB/etc/inet/ipsecalgs\fR 中定义的映射的列表。可以使用 \fB-l\fR 选项获取协议和算法对应的内核表。 .SH 选项 .sp .LP \fBipsecalgs\fR 支持以下选项: .sp .ne 2 .mk .na \fB\fB-a\fR\fR .ad .sp .6 .RS 4n 添加 \fB-P\fR 选项指定的协议的算法。算法名称使用 \fB-n\fR 选项指定。支持的密钥长度和块大小使用 \fB-k\fR、\fB-i\fR 和 \fB-b\fR 选项指定。 .RE .sp .ne 2 .mk .na \fB\fB-b\fR\fR .ad .sp .6 .RS 4n 指定算法的块长度或 MAC 长度(以字节为单位)。通过逗号分隔值可设置多个块长度。 .RE .sp .ne 2 .mk .na \fB\fB-e\fR\fR .ad .sp .6 .RS 4n 在没有加密硬件提供器的情况下,为指定的协议指定加密请求的执行模式。请参见 \fBcryptoadm\fR(1M)。\fIexec-mode\fR 可以为以下值之一: .sp .ne 2 .mk .na \fB\fBsync\fR\fR .ad .RS 9n .rt 在没有加密硬件提供器的情况下同步处理加密请求。没有加密硬件提供器可用时,该执行模式会缩短延迟。 .RE .sp .ne 2 .mk .na \fB\fBasync\fR\fR .ad .RS 9n .rt 在没有加密硬件提供器的情况下始终都以异步方式处理加密请求。该执行模式可以提高多 CPU 系统中的资源利用率,但在没有加密硬件提供器可用时会加大延迟。 .RE 该选项可以在定义新协议或修改现有协议的执行模式时指定。在没有加密硬件提供器时,缺省情况下使用 \fBsync\fR 执行模式。 .RE .sp .ne 2 .mk .na \fB\fB-f\fR\fR .ad .sp .6 .RS 4n 与 \fB-a\fR 选项一起使用时,可强制在已有相同名称或编号的条目的情况下添加算法或协议。 .RE .sp .ne 2 .mk .na \fB\fB-i\fR\fR .ad .sp .6 .RS 4n 指定有效的密钥长度增量(以位为单位)。如果算法的有效密钥长度是使用 \fB-k\fR 选项按范围指定的,必须使用该选项。 .RE .sp .ne 2 .mk .na \fB\fB-K\fR\fR .ad .sp .6 .RS 4n 指定算法的缺省密钥长度(以位为单位)。如果未指定 \fB-K\fR 选项,则最小密钥长度将按以下方式确定: .RS +4 .TP .ie t \(bu .el o 如果支持的密钥长度是按范围指定的,则缺省密钥长度将成为最小密钥长度。 .RE .RS +4 .TP .ie t \(bu .el o 如果支持的密钥长度是按枚举指定的,则缺省密钥长度将成为首先列出的密钥长度。 .RE .RE .sp .ne 2 .mk .na \fB\fB-k\fR\fR .ad .sp .6 .RS 4n 指定算法支持的密钥长度(以位为单位)。可以按枚举或范围指定支持的密钥长度。 .sp 如果未使用 \fB-i\fR 选项,\fB-k\fR 选项按枚举指定支持的密钥长度。在这种情况下,\fIkeylen-list\fR 是包含一个或多个用逗号分隔的密钥长度的列表,例如: .sp .in +2 .nf 128,192,256 .fi .in -2 .sp 列出的密钥长度无需增加,如果未使用 \fB-K\fR 选项,列出的第一个密钥长度将用作该算法的缺省密钥长度。 .sp 如果使用了 \fB-i\fR 选项,\fB-k\fR 选项将为算法指定支持的密钥长度范围。最小和最大密钥长度必须用破折号 ('\fB-\fR') 字符分隔,例如: .sp .in +2 .nf 32-448 .fi .in -2 .sp .RE .sp .ne 2 .mk .na \fB\fB-l\fR\fR .ad .sp .6 .RS 4n 显示内核算法表。 .RE .sp .ne 2 .mk .na \fB\fB-m\fR\fR .ad .sp .6 .RS 4n 指定与算法对应的加密框架机制的名称。\fBcryptoadm\fR(1M) 手册页中介绍了加密框架机制。 .RE .sp .ne 2 .mk .na \fB\fB-N\fR\fR .ad .sp .6 .RS 4n 指定算法编号。协议的算法编号必须是唯一的。IANA 管理算法编号。请参见 \fIRFC 2407\fR。 .RE .sp .ne 2 .mk .na \fB\fB-n\fR\fR .ad .sp .6 .RS 4n 为算法指定一个或多个名称。使用 \fB-a\fR 选项添加算法时,\fIalg-names\fR 包含一个字符串或逗号分隔的字符串列表,例如: .sp .in +2 .nf des-cbs,des .fi .in -2 .sp 与 \fB-r\fR 选项一起使用来删除算法时,\fIalg-names\fR 包含有效算法名称之一。 .RE .sp .ne 2 .mk .na \fB\fB-P\fR\fR .ad .sp .6 .RS 4n 添加编号由 \fIprotocol-number\fR 指定的协议,其名称由 \fB-p\fR 选项指定。该选项与 \fB-a\fR 和 \fB-R\fR 选项一起使用时,还可指定 IPsec 协议。协议编号由 IANA 管理。请参见 \fIRFC 2407\fR。 .RE .sp .ne 2 .mk .na \fB\fB-p\fR\fR .ad .sp .6 .RS 4n 指定 IPsec 协议的名称。 .RE .sp .ne 2 .mk .na \fB\fB-R\fR\fR .ad .sp .6 .RS 4n 从算法表中删除 IPsec 协议。可以使用 \fB-P\fR 选项按编号指定协议,或使用 \fB-p\fR 选项按名称指定协议。与协议相关联的算法也会被删除。 .RE .sp .ne 2 .mk .na \fB\fB-r\fR\fR .ad .sp .6 .RS 4n 删除算法映射。可以使用 \fB-N\fR 选项按算法编号指定算法,或使用 \fB-A\fR 选项按算法名称指定算法。 .RE .sp .ne 2 .mk .na \fB\fB-s\fR\fR .ad .sp .6 .RS 4n 将内核与 \fB/etc/inet/ipsecalgs\fR 的内容同步。\fB/etc/inet/ipsecalgs\fR 的内容始终都会更新,但只有使用了 \fB-s\fR 才会将新信息传递到内核。有关 \fBipsecalgs\fR 配置如何在系统重启时与内核同步的说明,请参见\fB\fR“附注”部分。 .RE .sp .LP 以下选项允许配置可选参数。这些选项当前仅用于组合模式算法,即在单个操作中提供加密和验证的算法。 .sp .ne 2 .mk .na \fB\fB-I\fR\fR .ad .sp .6 .RS 4n 初始化向量 (Initialization Vector, IV) 的长度(以字节为单位)。缺省 IV 长度与块长度相同。 .RE .sp .ne 2 .mk .na \fB\fB-M\fR\fR .ad .sp .6 .RS 4n 组合模式算法的 MAC 或 ICV 长度(以字节为单位)。 .RE .sp .ne 2 .mk .na \fB\fB-S\fR\fR .ad .sp .6 .RS 4n 算法所需的 salt 字节数。salt 需要由密钥管理机制提供。 .RE .sp .ne 2 .mk .na \fB\fB-F\fR\fR .ad .sp .6 .RS 4n 算法标志。这些标志会影响内核处理安全任务(尤其是验证)的方式。\fBipseckey\fR(1M) 和 \fBipsecconf\fR(1M) 也会使用这些标志。可以将标志指定为以逗号分隔的标记列表;请参见下文的示例。支持以下标记: .sp .ne 2 .mk .na \fB\fBCOUNTERMODE\fR\fR .ad .sp .6 .RS 4n 算法使用计数器模式。 .RE .sp .ne 2 .mk .na \fB\fBCOMBINED\fR\fR .ad .sp .6 .RS 4n 算法在同一操作中提供加密和验证。 .RE .sp .ne 2 .mk .na \fB\fBCCM\fR\fR .ad .sp .6 .RS 4n 加密框架机制需要使用 \fBCK_AES_CCM_PARAMS\fR 结构。 .RE .sp .ne 2 .mk .na \fB\fBGMAC\fR\fR .ad .sp .6 .RS 4n 加密框架机制需要使用 \fBCK_AES_GMAC_PARAMS\fR 结构。 .RE .sp .ne 2 .mk .na \fB\fBGCM\fR\fR .ad .sp .6 .RS 4n 加密框架机制需要使用 \fBCK_AES_GCM_PARAMS\fR 结构。 .RE .sp .ne 2 .mk .na \fB\fBCBC\fR\fR .ad .sp .6 .RS 4n 该标志指示算法使用分块加密链接。加密框架机制不需要 params 结构。这也是缺省值,可以省略该标志。 .RE 可以使用 \fB-l\fR 选项显示算法标志。 .RE .SH 示例 .LP \fB示例 1 \fR添加 IPsec 加密协议 .sp .LP 以下示例显示如何添加 IPsec 加密协议: .sp .in +2 .nf example# \fBipsecalgs -P 3 -p "IPSEC_PROTO_ESP"\fR .fi .in -2 .sp .LP \fB示例 2 \fR添加 Blowfish 算法 .sp .LP 以下示例显示如何添加 Blowfish 算法: .sp .in +2 .nf example# \fBipsecalgs -a -P 3 -k 32-488 -K 128 -i 8 -n "blowfish" \e -b 8 -N 7 -m CKM_BF_CBC\fR .fi .in -2 .sp .LP \fB示例 3 \fR更新内核算法表 .sp .LP 以下示例使用当前定义的协议和算法定义更新内核算法表: .sp .in +2 .nf example# \fBsvcadm refresh ipsecalgs\fR .fi .in -2 .sp .LP \fB示例 4 \fR添加 AES Galois/计数器模式 (Galois/Counter Mode, GCM) 算法 .sp .LP 以下命令可添加此算法。 .sp .in +2 .nf example# \fBipsecalgs -a -P3 -k 128-256 -K 128 -i 64 -N 20 -b 16 \e\fR \fB-n "aes-gcm16,aes-gcm" -m CKM_AES_GCM -M 16 -I 8 -S 4 \e\fR \fB-F GCM,COMBINED,COUNTER\fR .fi .in -2 .sp .SH 文件 .sp .ne 2 .mk .na \fB\fB/etc/inet/ipsecalgs\fR\fR .ad .sp .6 .RS 4n 包含配置的 IPsec 协议和算法定义的文件。切勿手动编辑该文件。 .RE .SH 属性 .sp .LP 有关下列属性的说明,请参见 \fBattributes\fR(5): .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性类型属性值 _ 可用性system/core-os _ 接口稳定性Committed(已确定) .TE .SH 另请参见 .sp .LP \fBcryptoadm\fR(1M)、\fBipsecconf\fR(1M)、\fBipseckey\fR(1M)、\fBsvcadm\fR(1M)、\fBgetipsecalgbyname\fR(3NSL)、\fBgetipsecprotobyname\fR(3NSL)、\fBike.config\fR(4)、\fBattributes\fR(5)、\fBsmf\fR(5)、\fBipsecah\fR(7P)、\fBipsecesp\fR(7P) .sp .LP 由 Piper, Derrell 编著的《\fIThe Internet IP Security Domain of Interpretation for ISAKMP\fR》,RFC 2407。Network Working Group 出版。1998 年 11 月。 .SH 附注 .sp .LP 如果协议或算法定义被删除或更改,则依赖这些定义的服务可能变得不可用。例如,如果 \fBIPSEC_PROTO_ESP\fR 协议被删除,则 IPsec 无法对包进行加密和解密。 .sp .LP 在系统启动时将 \fBipsecalgs\fR 配置与内核同步是通过以下 \fBsmf\fR(5) 服务提供的: .sp .in +2 .nf svc:/network/ipsec/ipsecalgs:default .fi .in -2 .sp .sp .LP IPsec 服务按如下方式交付: .sp .in +2 .nf svc:/network/ipsec/policy:default (enabled) svc:/network/ipsec/ipsecalgs:default (enabled) svc:/network/ipsec/manual-key:default (disabled) svc:/network/ipsec/ike:default (disabled) .fi .in -2 .sp .sp .LP 以禁用状态交付的服务之所以按该方式交付是因为:系统管理员必须先为其创建配置文件,然后才能启用这些服务。请参见 \fBipseckey\fR(1M) 和 \fBike.config\fR(4)。\fBpolicy\fR 服务的缺省策略是允许传递所有的通信而不使用 IPsec 保护。请参见 \fBipsecconf\fR(1M)。 .sp .LP 正确的管理过程是为每个服务创建配置文件,然后使用 \fBsvcadm\fR(1M) 启用每个服务,如以下示例所示: .sp .in +2 .nf example# \fBsvcadm enable ipsecalgs\fR .fi .in -2 .sp .sp .LP 可以使用 \fBsvcs\fR(1) 命令来查询服务的状态。 .sp .LP 如果 \fBipsecalgs\fR 配置做了修改,应按照如下方式重新同步新配置: .sp .in +2 .nf example# \fBsvcadm refresh ipsecalgs\fR .fi .in -2 .sp .sp .LP 可以使用 \fBsvcadm\fR(1M) 来对此服务执行管理操作(如启用、禁用、刷新和请求重新启动)。分配有以下授权的用户可以执行这些操作: .sp .in +2 .nf solaris.smf.manage.ipsec .fi .in -2 .sp .sp .LP 请参见 \fBauths\fR(1)、\fBuser_attr\fR(4)、\fBrbac\fR(5)。 .sp .LP \fBipsecalgs\fR \fBsmf\fR(5) 服务没有任何用户可配置的属性。 .sp .LP \fBsmf\fR(5) 框架在服务特定的日志文件中记录所有错误。可使用以下任一命令检查 \fBlogfile\fR 属性: .sp .in +2 .nf example# \fBsvcs -l ipsecalgs\fR example# \fBsvcprop ipsecalgs\fR example# \fBsvccfg -s ipsecalgs listprop\fR .fi .in -2 .sp .sp .LP 该命令需要有 \fBsys_ip_config\fR 特权才能操作,可以在全局区域和独占 IP 区域中运行。所有共享 IP 区域可以共享同一可用算法集合,但您可以使用 \fBipsecconf\fR(1M) 设置系统策略,将不同算法用于不同共享 IP 区域。所有的独占 IP 区域都有自己的算法集。