系统管理指南:IP 服务

第 23 章 配置 IKE(任务)

本章介绍如何为系统配置 Internet 密钥交换 (Internet Key Exchange, IKE)。配置 IKE 后,它将自动为网络上的 IPsec 生成加密材料。本章包含以下信息:

有关 IKE 的概述信息,请参见第 22 章。有关 IKE 的参考信息,请参见第 24 章。有关更多过程,请参见 ikeadm(1M)ikecert(1M)ike.config(4) 手册页的示例部分。

配置 IKE(任务列表)

可以使用预先共享的密钥、自签名证书和证书颁发机构 (Certificate Authority, CA) 所颁发的证书来验证 IKE。规则将特定的 IKE 验证方法与受保护的端点相关联。因此,可以在系统上使用一种或所有 IKE 验证方法。利用指向 PKCS #11 库的指针,证书可以使用连接的硬件加速器。

配置 IKE 后,完成使用 IKE 配置的 IPsec 任务。下表提供了着重说明特定 IKE 配置的任务列表。

任务 

说明 

参考 

使用预先共享的密钥配置 IKE 

通过使两个系统共享一个密钥来保护它们之间的通信。 

使用预先共享的密钥配置 IKE(任务列表)

使用公钥证书配置 IKE 

使用公钥证书保护通信。这些证书可以是自签名的,也可以由 PKI 组织认证。 

使用公钥证书配置 IKE(任务列表)

跨 NAT 边界 

将 IPsec 和 IKE 配置为与移动系统进行通信 

为移动系统配置 IKE(任务列表)

将 IKE 配置为在连接的硬件上生成和存储公钥证书 

使 Sun Crypto Accelerator 1000 板或 Sun Crypto Accelerator 4000 板可以加快 IKE 操作。此外,使 Sun Crypto Accelerator 4000 板可以存储公钥证书。 

将 IKE 配置为查找连接的硬件(任务列表)

调整阶段 1 密钥协商参数 

更改 IKE 密钥协商的时间安排。 

更改 IKE 传输参数(任务列表)

使用预先共享的密钥配置 IKE(任务列表)

下表包含使用预先共享的密钥配置和维护 IKE 的过程的链接。

任务 

说明 

参考 

使用预先共享的密钥配置 IKE 

创建 IKE 策略文件和要共享的一个密钥。 

如何使用预先共享的密钥配置 IKE

在正运行的 IKE 系统上刷新预先共享的密钥 

在通信系统上为 IKE 添加新的加密材料。 

如何刷新 IKE 预先共享密钥

将预先共享的密钥添加到正运行的 IKE 系统 

将新的 IKE 策略项和新的加密材料添加到当前实施 IKE 策略的系统。 

如何为 ipsecinit.conf 中的新策略项添加 IKE 预先共享密钥

检查预先共享的密钥是否完全相同 

在两个系统上显示预先共享的密钥,以查看它们是否完全相同。 

如何检验 IKE 预先共享密钥是否完全相同

使用预先共享的密钥配置 IKE

使用预先共享的密钥是验证 IKE 的最简单方法。如果要将两个系统配置为使用 IKE,而且您是这两个系统的管理员,则使用预先共享的密钥是一个良好的选择。但是,与公钥证书不同,预先共享的密钥与特定的 IP 地址相关联。预先共享的密钥不能用于移动系统或可能重新编号的系统。此外,在使用预先共享的密钥时,不能将 IKE 计算转移到连接的硬件。

Procedure如何使用预先共享的密钥配置 IKE

IKE 实现提供了采用可变密钥长度的算法。所选的密钥长度是由站点安全性确定的。通常,密钥越长,提供的安全性就越高。

以下过程使用系统名称 enigmapartym。请用您的系统名称替换名称 enigmapartym

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 在每个系统上,将文件 /etc/inet/ike/config.sample 复制到文件 /etc/inet/ike/config

  3. 在每个系统上的 ike/config 文件中输入规则和全局参数。

    此文件中的规则和全局参数应该允许系统的 ipsecinit.conf 文件中的 IPsec 策略可以成功实施。以下是与如何使用 IPsec 保证两个系统之间的通信安全中的 ipsecinit.conf 示例配合使用的 ike/config 示例。

    1. 例如,在 enigma 系统上修改 /etc/inet/ike/config 文件:


      ### ike/config file on enigma, 192.168.116.16
      
      ## Global parameters
      #
      ## Phase 1 transform defaults
      p1_lifetime_secs 14400
      p1_nonce_len 40
      #
      ## Defaults that individual rules can override.
      p1_xform
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 2
      #
      ## The rule to communicate with partym
      #  Label must be unique
      { label "enigma-partym"
        local_addr 192.168.116.16
        remote_addr 192.168.13.213
        p1_xform
         { auth_method preshared oakley_group 5 auth_alg sha1 encr_alg aes }
        p2_pfs 5
      }
      

      注 –

      auth_method 参数的所有变量都必须在同一行上。


    2. partym 系统上修改 /etc/inet/ike/config 文件:


      ### ike/config file on partym, 192.168.13.213
      ## Global Parameters
      #
      p1_lifetime_secs 14400
      p1_nonce_len 40
      #
      p1_xform
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 2
      
      ## The rule to communicate with enigma
      #  Label must be unique
      { label "partym-enigma"
        local_addr 192.168.13.213
        remote_addr 192.168.116.16
      p1_xform
         { auth_method preshared oakley_group 5 auth_alg sha1 encr_alg aes }
      p2_pfs 5
      }
      
  4. 在每个系统上,检验该文件的语法。


    # /usr/lib/inet/in.iked -c -f /etc/inet/ike/config
    
  5. 生成随机数以用作加密材料。

    如果站点具有随机数生成器,请使用该生成器。在 Solaris 系统上,可以使用 od 命令。例如,以下命令列显两行十六进制数:


    % od -X -A n /dev/random | head -2
             f47cb0f4 32e14480 951095f8 2b735ba8
             0a9467d0 8f92c880 68b6a40e 0efe067d

    有关 od 命令的说明,请参见如何在 Solaris 系统上生成随机数od(1) 手册页。


    注 –

    其他操作系统可能需要 ASCII 加密材料。要以十六进制格式和 ASCII 格式生成相同的密钥,请参见示例 23–1


  6. 利用步骤 5 的输出构造一个密钥。


    f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e

    此过程中的验证算法是 SHA–1,如步骤 3 所示。散列的大小(即验证算法输出的大小)确定预先共享密钥的最小建议大小。SHA–1 算法的输出是 160 位或 40 个字符。示例密钥的长度是 56 个字符,这将提供其他加密材料供 IKE 使用。

  7. 在每个系统上创建文件 /etc/inet/secret/ike.preshared

    在每个文件中放置预先共享的密钥。

    1. 例如,在 enigma 系统上,ike.preshared 文件的显示与以下信息类似:


      # ike.preshared on enigma, 192.168.116.16
      #…
      { localidtype IP
      	localid 192.168.116.16
      	remoteidtype IP
      	remoteid 192.168.13.213
      	# enigma and partym's shared key in hex (192 bits)
      	key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e
      	}
    2. partym 系统上,ike.preshared 文件的显示与以下信息类似:


      # ike.preshared on partym, 192.168.13.213
      #…
      { localidtype IP
      	localid 192.168.13.213
      	remoteidtype IP
      	remoteid 192.168.116.16
      	# partym and enigma's shared key in hex (192 bits)
      	key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e
      	}

    注 –

    每个系统上的预先共享密钥必须完全相同。



示例 23–1 为运行不同操作系统的两个系统生成相同的加密材料

Solaris IPsec 可与其他操作系统交互操作。如果您的系统与需要 ASCII 预先共享密钥的系统通信,则需要以两种格式(十六进制格式和 ASCII 格式)生成一个密钥。

在此示例中,Solaris 系统管理员需要 56 个字符的加密材料。该管理员使用以下命令从 ASCII 口令短语中生成十六进制的密钥。在所有 Solaris 系统中,-tx1 选项每次输出一个字节。


# /bin/echo "papiermache with cashews and\c" | od -tx1 | cut -c 8-55 | \
tr -d '\n' | tr -d ' ' | awk '{print}'
7061706965726d616368652077697468206361736865777320616e64

通过删除偏移和串联十六进制输出,Solaris 系统的十六进制密钥为 7061706965726d616368652077697468206361736865777320616e64。管理员可以将该值放在 Solaris 系统上的 ike.preshared 文件中。


# Shared key in hex (192 bits)
key 7061706965726d616368652077697468206361736865777320616e64

在需要 ASCII 预先共享密钥的系统中,口令短语就是预先共享的密钥。Solaris 系统管理员使用口令短语 papiermache with cashews and 给其他管理员打电话。


Procedure如何刷新 IKE 预先共享密钥

此过程假定您希望按固定的时间间隔替换现有的预先共享密钥。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 生成随机数,并构造适当长度的密钥。

    有关详细信息,请参见如何在 Solaris 系统上生成随机数。如果要为 Solaris 系统生成预先共享的密钥,而且此系统与需要 ASCII 的操作系统通信,请参见示例 23–1

  3. 将当前密钥替换为新密钥。

    例如,在主机 enigmapartym 上,将 /etc/inet/secret/ike.preshared 文件中 key 的值替换为一个相同长度的新数值。

  4. 将新密钥读入内核。

    • 从 Solaris 10 4/09 发行版开始,请刷新 ike 服务。


      # svcadm refresh ike
      
    • 如果您运行的是 Solaris 10 4/09 发行版之前的发行版,请中止并重新启动 in.iked 守护进程。

      1. 检查 in.iked 守护进程的权限级别。


        # /usr/sbin/ikeadm get priv
        Current privilege level is 0x0, base privileges enabled

        如果该命令返回权限级别 0x10x2,则您可以更改加密材料。级别 0x0 不允许执行修改或查看加密材料的操作。缺省情况下,in.iked 守护进程按权限级别 0x0 运行。

      2. 如果权限级别是 0x0,请先中止再重新启动该守护进程。

        守护进程重新启动时,它将读取新版本的 ike.preshared 文件。


        # pkill in.iked
        # /usr/lib/inet/in.iked
        
      3. 如果权限级别是 0x10x2,则读入新版本的 ike.preshared 文件。


        # ikeadm read preshared
        

Procedure如何查看 IKE 预先共享密钥

缺省情况下,ikeadm 命令会阻止您在阶段 1 SA 的转储中查看实际密钥。在调试期间查看密钥很有用。

要查看实际密钥,您必须提高守护进程的权限级别。有关权限级别的说明,请参见IKE 管理命令


注 –

要在 Solaris 10 4/09 发行版之前的发行版中执行此过程,请参见示例 23–2


开始之前

已配置 IKE,并且 ike 服务正在运行。

  1. 查看 IKE 预先共享密钥。


    # ikeadm
    ikeadm> dump preshared
    
  2. 如果出现错误,请提高 in.iked 守护进程的权限级别。

    1. 提高 SMF 系统信息库中 in.iked 守护进程的权限级别。


      # svcprop -p config/admin_privilege ike
      base
      # svccfg -s ike setprop config/admin_privilege=keymat
      
    2. 提高正在运行的 in.iked 守护进程的权限级别。


      # svcadm refresh ike ; svcadm restart ike
      
    3. (可选的)确认权限级别为 keymat


      # svcprop -p config/admin_privilege ike
      keymat
    4. 通过再次运行步骤 1 查看密钥。

  3. 将 IKE 守护进程恢复为 base 权限级别。

    1. 查看密钥后,将权限级别恢复为缺省级别。


      # svccfg -s ike setprop config/admin_privilege=base
      
    2. 刷新 IKE,然后再重新启动 IKE。


      # svcadm refresh ike ; svcadm restart ike
      

示例 23–2 在 Solaris 10 4/09 发行版之前的发行版中检验 IKE 预先共享密钥

在以下示例中,管理员要在运行的不是当前 Solaris 发行版的 Solaris 系统中查看密钥。管理员想要检验该系统中的密钥是否与通信系统中的密钥完全相同。检验两个系统中的密钥是否完全相同后,管理员将权限级别恢复为 0。


Procedure如何为 ipsecinit.conf 中的新策略项添加 IKE 预先共享密钥

如果在 IPsec 和 IKE 正在运行时添加 IPsec 策略项,则必须将新的策略和 IKE 规则读入内核。从 Solaris 10 4/09 发行版开始,添加新密钥后,要重新启动 policy 服务并刷新 ike 服务。


注 –

要在 Solaris 10 4/09 发行版之前的发行版中执行此过程,请参见示例 23–3


开始之前

此过程将假定以下内容:

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 在此系统中,生成随机数,并构造一个 64 位到 448 位的密钥。

    有关详细信息,请参见如何在 Solaris 系统上生成随机数。如果要为 Solaris 系统生成预先共享的密钥,而且此系统与需要 ASCII 的操作系统通信,请参见示例 23–1

  3. 以某种方法将密钥发送给远程系统的管理员。

    需要同时添加相同的预先共享密钥。密钥的安全性仅与传输机制的安全性相同。带外机制(如已注册的邮件或受保护的传真机)是最佳的。您也可以使用 ssh 会话管理这两个系统。

  4. 为 IKE 创建一个规则以管理 enigmaada 的密钥。

    1. enigma 系统上,将以下规则添加到 /etc/inet/ike/config 文件:


      ### ike/config file on enigma, 192.168.116.16
       
      ## The rule to communicate with ada
      
      {label "enigma-to-ada"
       local_addr 192.168.116.16
       remote_addr 192.168.15.7
       p1_xform
       {auth_method preshared oakley_group 5 auth_alg sha1 encr_alg blowfish}
       p2_pfs 5
      	}
    2. ada 系统上,添加以下规则:


      ### ike/config file on ada, 192.168.15.7
       
      ## The rule to communicate with enigma
      
      {label "ada-to-enigma"
       local_addr 192.168.15.7
       remote_addr 192.168.116.16
       p1_xform
       {auth_method preshared oakley_group 5 auth_alg sha1 encr_alg blowfish}
       p2_pfs 5
      }
  5. 确保 IKE 预先共享密钥在重新引导时是可用的。

    1. enigma 系统上,将以下信息添加到 /etc/inet/secret/ike.preshared 文件:


      # ike.preshared on enigma for the ada interface
      # 
      { localidtype IP
        localid 192.168.116.16
        remoteidtype IP
        remoteid 192.168.15.7
        # enigma and ada's shared key in hex (32 - 448 bits required)
        key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d
      }
    2. ada 系统上,将以下信息添加到 ike.preshared 文件:


      # ike.preshared on ada for the enigma interface
      # 
      { localidtype IP
        localid 192.168.15.7
        remoteidtype IP
        remoteid 192.168.116.16
        # ada and enigma's shared key in hex (32 - 448 bits required)
        key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d
      }
  6. 在每个系统上,重新启动 IPsec 策略服务以保证所添加的接口的安全。


    # svcadm restart policy
    
  7. 在每个系统上,刷新 ike 服务。


    # svcadm refresh ike
    
  8. 检验系统是否可以进行通信。

    请参见如何检验 IKE 预先共享密钥是否完全相同


示例 23–3 为新的 IPsec 策略项添加 IKE 预先共享密钥

在以下示例中,管理员要将预先共享密钥添加到运行的不是当前 Solaris 发行版的 Solaris 系统。管理员遵循前面的过程来修改 ike/configike.preshared 文件,然后生成密钥并联系远程系统。管理员使用不同的命令将新的 IPsec 策略和 IKE 规则读入内核。


Procedure如何检验 IKE 预先共享密钥是否完全相同

如果通信系统上的预先共享密钥不是完全相同的,则系统无法进行验证。

开始之前

在要测试的两个系统之间已配置并启用 IPsec。您运行的是当前 Solaris 10 发行版。


注 –

要在 Solaris 10 4/09 发行版之前的发行版中执行此过程,请参见示例 23–2


  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 在每个系统上,检查 in.iked 守护进程的权限级别。


    # svcprop -p config/admin_privilege ike
    base
    • 如果权限级别为 keymat,请继续执行步骤 3

    • 如果权限级别为 basemodkeys,请提高权限级别。

      然后,刷新并重新启动 ike 服务。


      # svccfg -s ike setprop config/admin_privilege=keymat
      # svcadm refresh ike ; svcadm restart ike
      # svcprop -p config/admin_privilege ike
      keymat
  3. 在每个系统上,查看预先共享密钥的信息。


    # ikeadm dump preshared
    PSKEY: Preshared key (24 bytes): f47cb…/192
    LOCIP: AF_INET: port 0, 192.168.116.16 (enigma).
    REMIP: AF_INET: port 0, 192.168.13.213 (partym).
  4. 比较两个转储。

    如果预先共享的密钥不是完全相同的,则在 /etc/inet/secret/ike.preshared 文件中将一个密钥替换为另一个密钥。

  5. 检验完成后,在每个系统中将权限级别恢复为缺省级别。


    # svccfg -s ike setprop config/admin_privilege=base
    # svcadm restart ike
    

使用公钥证书配置 IKE(任务列表)

下表提供了为 IKE 创建公钥证书的过程的链接。这些过程包括如何在连接的硬件上加速和存储证书。

任务 

说明 

参考 

使用自签名的公钥证书配置 IKE 

在每个系统上创建并放置两个证书: 

  • 自签名证书

  • 来自远程系统的公钥证书

如何使用自签名的公钥证书配置 IKE

通过 PKI 证书颁发机构配置 IKE 

创建证书请求,然后在每个系统上放置三个证书: 

  • 证书颁发机构 (Certificate Authority, CA) 根据您的请求创建的证书

  • 来自 CA 的公钥证书

  • 来自 CA 的 CRL

如何使用 CA 签名的证书配置 IKE

在本地硬件上配置公钥证书 

涉及以下操作之一:  

  • 在本地硬件上生成自签名证书,然后将公钥从远程系统添加到硬件。

  • 在本地硬件上生成证书请求,然后将公钥证书从 CA 添加到硬件。

如何在硬件上生成和存储公钥证书

更新来自 PKI 的证书撤销列表 (certificate revocation list, CRL) 

从中心分发点访问 CRL。 

如何处理证书撤销列表

使用公钥证书配置 IKE

使用公钥证书,通信系统就无需在带外共享秘密的加密材料。与预先共享的密钥不同,公钥证书可以在移动机器或可能重新编号的系统上使用。

公钥证书也可以存储在连接的硬件上。有关过程,请参见将 IKE 配置为查找连接的硬件(任务列表)

Procedure如何使用自签名的公钥证书配置 IKE

自签名证书比 CA 颁发的公共证书所需的开销少,但不太易于扩展。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 将自签名证书添加到 ike.privatekeys 数据库。


    # ikecert certlocal -ks|-kc -m keysize -t keytype \
    -D dname -A altname \
    [-S validity-start-time] [-F validity-end-time] [-T token-ID]
    -ks

    创建自签名证书。

    -kc

    创建证书请求。有关过程,请参见如何使用 CA 签名的证书配置 IKE

    -m keysize

    是密钥的大小。keysize 可以是 512、1024、2048、3072 或 4096。

    -t keytype

    指定要使用的算法类型。keytype 可以是 rsa-sha1rsa-md5dsa-sha1

    -D dname

    是证书主题的 X.509 标识名。dname 通常具有以下格式: C=country, O=organization, OU=organizational unit, CN=common name。有效标记是 C、O、OU 和 CN。

    -A altname

    是证书的替代名称。altname 的形式为 tag=value。有效标记是 IPDNSemailDN

    -S validity-start-time

    为证书提供绝对或相对有效开始时间。

    -F validity-end-time

    为证书提供绝对或相对有效结束时间。

    -T token-ID

    启用 PKCS #11 硬件标记来生成密钥。然后证书将被存储在硬件中。

    1. 例如,partym 系统上命令的显示与以下信息类似:


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      -A IP=192.168.13.213
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/0.
      Enabling external key providers - done.
      Acquiring private keys for signing - done.
      Certificate: 
       Proceeding with the signing operation.
       Certificate generated successfully (…/publickeys/0)
      Finished successfully.
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. enigma 系统上命令的显示与以下信息类似:


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
      -A IP=192.168.116.16
      Creating software private keys.
        …
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  3. 保存证书并将它发送到远程系统。

    可以将证书粘贴到电子邮件中。

    1. 例如,将以下 partym 证书发送给 enigma 管理员:


      To: admin@ja.enigmaexample.com
      From: admin@us.partyexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. enigma 管理员将向您发送以下 enigma 证书:


      To: admin@us.partyexample.com
      From: admin@ja.enigmaexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  4. 在每个系统上,添加收到的证书。

    1. 从管理员的电子邮件中复制公钥。

    2. 键入 ikecert certdb -a 命令,然后按回车键。

      回车键时,不显示任何提示。


      # ikecert certdb -a Press the Return key
      
    3. 粘贴公钥。然后按回车键。要结束输入,请按 Ctrl-D 组合键。


      -----BEGIN X509 CERTIFICATE-----
      MIIC…
      …
      ----END X509 CERTIFICATE----- Press the Return key
      <Control>-D
      
  5. 向其他管理员核实证书是否来自该管理员。

    例如,可以给其他管理员打电话,以比较公钥散列的值。在这两个系统上,共享证书的公钥散列必须是相同的。

    1. 列出在系统上存储的证书。

      例如,在 partym 系统上,公共证书位于插槽 1 中,而专用证书位于插槽 0 中。


      partym # ikecert certdb -l
      Certificate Slot Name: 0   Type: rsa-md5 Private Key
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: B2BD13FCE95FD27ECE6D2DCD0DE760E2
      
      Certificate Slot Name: 1   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 0) Points to certificate's private key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
      
    2. 将此值与 enigma 系统上的公钥散列进行比较。

      您可通过电话读取公钥散列。


      enigma # ikecert certdb -l
      Certificate Slot Name: 4   Type: rsa-md5 Private Key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: DF3F108F6AC669C88C6BD026B0FCE3A0
      
      Certificate Slot Name: 5   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 4)
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
      
  6. 在每个系统上,信任这两个证书。

    编辑 /etc/inet/ike/config 文件以识别证书。

    远程系统的管理员提供 cert_trustremote_addrremote_id 参数的值。

    1. 例如,在 partym 系统上,ike/config 文件的显示与以下信息类似:


      # Explicitly trust the following self-signed certs
      # Use the Subject Alternate Name to identify the cert
      
      # Verified remote address and remote ID
      # Verified public key hash per telephone call from administrator
      cert_trust "192.168.13.213" Local system's certificate Subject Alt Name
      cert_trust "192.168.116.16" Remote system's certificate Subject Alt Name
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 5
      
      {
       label "US-partym to JA-enigmax"
       local_id_type dn
       local_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
    2. enigma 系统上,在 ike/config 文件中添加本地参数的 enigma 值。

      对于远程参数,请使用 partym 值。确保 label 关键字的值是唯一的。此值必须与远程系统的 label 值不同。


      …
      {
       label "JA-enigmax to US-partym"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …

示例 23–4 检验来自其他管理员的证书是否有效

在此示例中,管理员使用主题名称来验证这些证书是否相同。

第一个管理员将生成和列出证书的输出保存到一个文件中。由于 ikecert 命令的输出列显到标准错误,因此管理员会将标准错误重定向到该文件。


sys1# cd /
sys1# ikecert certlocal -ks -m1024 -t rsa-md5 \
-D"C=US, O=TestCo, CN=Co2Sys" 2>/tmp/for_co2sys
Certificate added to database.
sys1# ikecert certdb -l "C=US, O=TestCo, CN=Co2Sys" 2>>/tmp/for_co2sys

管理员验证该文件的内容。


sys1# cat /tmp/for_co2sys
Creating private key.
-----BEGIN X509 CERTIFICATE-----
MIIB7TCCAVagAwIBAgIEZkHfOTANBgkqhkiG9w0BAQQFADAxMQwwCgYDVQQGEwNV
U0ExEDAOBgNVBAoMB3Rlc3RfY28xDzANBgNVBAMTBkVuaWdtYTAeFw0wODAxMTUx
OTI1MjBaFw0xMjAxMTUxOTI1MjBaMDExDDAKBgNVBAYTA1VTQTEQMA4GA1UECgwH
dGVzdF9jbzEPMA0GA1UEAxMGRW5pZ21hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQCPxGv0rUzHMnFtkx9uwYuPiWbftmWfa9iDt6ELOEuw3zlboy2qtuRUZohz
FIbCxAJevdCY6a+pktvYy3/2nJL0WATObO5T0FKn3F0bphajinLYbyCrYhEzD9E2
gkiT2D9/ttbSiMvi9usphprEDcLAFaWgCJiHnKPBEkjC0vhA3wIDAQABoxIwEDAO
BgNVHQ8BAf8EBAMCBaAwDQYJKoZIhvcNAQEEBQADgYEAL/q6xgweylGQylqLCwzN
5PIpjfzsNPf3saTyh3VplwEOW6WTHwRQT17IO/1Oc6Jnz9Mr0ZrbHWDXq+1sx180
F8+DMW1Qv1UR/lGMq3ufDG3qedmSN6txDF8qLlPCUML0YL8m4oGdewqGb+78aPyE
Y/cJRsK1hWbYyseqcIkjj5k=
-----END X509 CERTIFICATE-----
Certificate Slot Name: 2   Key Type: rsa
        (Private key in certlocal slot 2)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

然后,管理员通过电子邮件将该文件发送给第二个管理员。

第二个管理员将该文件放在安全目录中,并从该文件导入证书。


sys2# cd /
sys2# ikecert certdb -a < /sec/co2sys

ikecert 命令只导入 -----BEGIN-----END 行之间的文字。管理员验证本地证书的公钥散列是否与 co2sys 文件中的公钥散列相同。


sys2# ikecert certdb -l
Certificate Slot Name: 1   Key Type: rsa
        (Private key in certlocal slot 1)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

为确保第一个管理员发送了此电子邮件,第二个管理员会给第一个管理员打电话,以验证证书的主题名称。



示例 23–5 指定证书的开始时间和结束时间

在此示例中,由 partym 系统上的管理员建立证书有效日期。该证书可回溯 2 1/2 天,自创建之日起 4 年零 6 个月内有效。


# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
-A IP=192.168.13.213 \
-S -2d12h -F +4y6m

enigma 系统上的管理员建立证书有效日期。该证书可回溯 2 天,在 2010 年 12 月 31 号子夜前有效。


# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
-A IP=192.168.116.16 \
-S -2d -F "12/31/2010 12:00 AM"

Procedure如何使用 CA 签名的证书配置 IKE

证书颁发机构 (CA) 颁发的公共证书需要与外部组织进行协商。证书很容易扩展为保护大量通信系统。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 使用 ikecert certlocal -kc 命令创建证书请求。

    有关该命令的参数的说明,请参见如何使用自签名的公钥证书配置 IKE中的步骤 2


    # ikecert certlocal -kc -m keysize -t keytype \
    -D dname -A altname
    
    1. 例如,以下命令在 partym 系统上创建证书请求:


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany\, Inc., OU=US-Partym, CN=Partym" \
      > -A "DN=C=US, O=PartyCompany\, Inc., OU=US-Partym"
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/2.
      Enabling external key providers - done.
      Certificate Request: 
        Proceeding with the signing operation.
        Certificate request generated successfully (…/publickeys/0)
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
      …
      lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
      -----END CERTIFICATE REQUEST-----
    2. 以下命令在 enigma 系统上创建证书请求:


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax, CN=Enigmax" \
      > -A "DN=C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax"
      Creating software private keys.
      …
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
      …
      8qlqdjaStLGfhDOO
      -----END CERTIFICATE REQUEST-----
  3. 将证书请求提交到 PKI 组织。

    PKI 组织可以告诉您如何提交证书请求。大多数组织具有包含提交表单的 Web 站点。该表单要求证明提交是合法的。通常,将证书请求粘贴到表单中。组织在检查您的请求后,将向您发出以下两个证书对象和已撤销证书的列表:

    • 公钥证书-此证书基于您提交给组织的请求。所提交的请求是此公钥证书的一部分。证书可对您进行唯一标识。

    • 证书颁发机构-组织的签名。CA 检验公钥证书是否合法。

    • 证书撤销列表 (Certificate Revocation List, CRL)-组织已撤销的证书的最新列表。如果在公钥证书中嵌入对 CRL 的访问,则不会将 CRL 作为证书对象单独发送。

      在公钥证书中嵌入 CRL 的 URI 时,IKE 可以自动检索 CRL。同样,在公钥证书中嵌入 DN(LDAP 服务器上的目录名称)项时,IKE 可以从指定的 LDAP 服务器检索并高速缓存 CRL。

      有关公钥证书中的嵌入式 URI 和嵌入式 DN 项的示例,请参见如何处理证书撤销列表

  4. 将每个证书添加到系统。

    ikecert certdb -a-a 选项将已粘贴的对象添加到系统上的适当证书数据库。有关更多信息,请参见IKE,使用公钥证书

    1. 在系统控制台上,承担主管理员角色或成为超级用户。

    2. 添加从 PKI 组织收到的公钥证书。


      # ikecert certdb -a
      Press the Return key
      Paste the certificate:
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
      
    3. 添加来自 PKI 组织的 CA。


      # ikecert certdb -a
      Press the Return key
      Paste the CA:
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
      
    4. 如果 PKI 组织已发送撤销证书列表,则将 CRL 添加到 certrldb 数据库:


      # ikecert certrldb -a
      Press the Return key
      Paste the CRL:
      -----BEGIN CRL-----
      …
      -----END CRL----
      Press the Return key
      <Control>-D
      
  5. /etc/inet/ike/config 文件中使用 cert_root 关键字标识 PKI 组织。

    使用 PKI 组织提供的名称。

    1. 例如,partym 系统上 ike/config 文件的显示可能与以下信息类似:


      # Trusted root cert
      # This certificate is from Example PKI
      # This is the X.509 distinguished name for the CA that it issues.
      
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
       { auth_method rsa_sig oakley_group 1 auth_alg sha1 encr_alg des }
      p2_pfs 2
      
      {
       label "US-partym to JA-enigmax - Example PKI"
       local_id_type dn
       local_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }

      注 –

      auth_method 参数的所有变量都必须在同一行上。


    2. enigma 系统上,创建一个类似的文件。

      具体而言,enigmaike/config 文件应该满足以下要求:

      • 包括相同的 cert_root 值。

      • 对于本地参数,使用 enigma 值。

      • 对于远程参数,使用 partym 值。

      • label 关键字创建唯一值。此值必须与远程系统的 label 值不同。


      …
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      …
      {
       label "JA-enigmax to US-partym - Example PKI"
       local_id_type dn
       local_id   "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …
  6. 通知 IKE 如何处理 CRL。

    选择适当的选项:

    • 未提供 CRL

      如果 PKI 组织未提供 CRL,则将关键字 ignore_crls 添加到 ike/config 文件。


      # Trusted root cert
      …
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example,…
      ignore_crls

      ignore_crls 关键字指示 IKE 不搜索 CRL。

    • 提供了 CRL

      如果 PKI 组织提供了 CRL 的中心分发点,则可以修改 ike/config 文件以指向该位置。

      有关示例,请参见如何处理证书撤销列表


示例 23–6 配置 IKE 时使用 rsa_encrypt

    ike/config 文件中使用 auth_method rsa_encrypt 时,必须将对等方的证书添加到 publickeys 数据库。

  1. 将证书发送给远程系统的管理员。

    可以将证书粘贴到电子邮件中。

    例如,partym 管理员将发送以下电子邮件:


    To: admin@ja.enigmaexample.com
    From: admin@us.partyexample.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII…
    ----END X509 CERTIFICATE-----

    enigma 管理员将发送以下电子邮件:


    To: admin@us.partyexample.com
    From: admin@ja.enigmaexample.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII
    …
    -----END X509 CERTIFICATE-----
  2. 在每个系统上,将通过电子邮件发送的证书添加到本地 publickeys 数据库。


    # ikecert certdb -a
    Press the Return key
    -----BEGIN X509 CERTIFICATE-----
    MII…
    -----END X509 CERTIFICATE-----
    Press the Return key
    <Control>-D
    

RSA 加密的验证方法可防止窃听者知道 IKE 中的标识。由于 rsa_encrypt 方法隐藏对等方的标识,IKE 无法检索对等方的证书。因此,rsa_encrypt 方法要求 IKE 对等方知道彼此的公钥。

所以,在 /etc/inet/ike/config 文件中使用 rsa_encryptauth_method 时,必须将对等方的证书添加到 publickeys 数据库。添加证书后,publickeys 数据库包含每对通信系统的三个证书:

疑难解答-IKE 有效负荷(它包括这三个证书)可能变得过大而无法由 rsa_encrypt 加密。诸如“授权失败”和“有效负荷格式错误”之类的错误,可以指明 rsa_encrypt 方法无法对总有效负荷进行加密。使用仅需要两个证书的方法(如 rsa_sig)来减小有效负荷的大小。


Procedure如何在硬件上生成和存储公钥证书

在硬件上生成和存储公钥证书,与在系统上生成和存储公钥证书类似。在硬件上,ikecert certlocalikecert certdb 命令必须标识硬件。带有标记 ID 的 -T 选项向命令标识硬件。

开始之前
  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 生成自签名证书或证书请求,并指定标记 ID。

    选择以下选项之一:


    注 –

    对于 RSA,Sun Crypto Accelerator 4000 板最多支持 2048 位的密钥。对于 DSA,此板最多支持 1024 位的密钥。


    • 对于自签名证书,请使用此语法。


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      > -a -T dca0-accel-stor IP=192.168.116.16
      Creating hardware private keys.
      Enter PIN for PKCS#11 token: Type user:password
      

      -T 选项的参数是来自已连接 Sun Crypto Accelerator 4000 板的标记 ID。

    • 对于证书请求,请使用此语法。


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      > -a -T dca0-accel-stor IP=192.168.116.16
      Creating hardware private keys.
      Enter PIN for PKCS#11 token: Type user:password
      

    有关 ikecert 命令的参数的说明,请参见 ikecert(1M) 手册页。

  3. 在系统提示输入 PIN 时,键入 Sun Crypto Accelerator 4000 用户、冒号和该用户的口令。

    如果 Sun Crypto Accelerator 4000 板具有口令为 rgm4tigt 的用户 ikemgr,应键入以下内容:


    Enter PIN for PKCS#11 token: ikemgr:rgm4tigt
    

    注 –

    PIN 响应以明文形式存储在磁盘上。


    键入口令后,将输出证书内容:


    Enter PIN for PKCS#11 token: ikemgr:rgm4tigt
    -----BEGIN X509 CERTIFICATE-----
    MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
    …
    oKUDBbZ9O/pLWYGr
    -----END X509 CERTIFICATE-----
  4. 发送您的证书以供对方使用。

    选择以下选项之一:

    • 将自签名证书发送到远程系统。

      可以将证书粘贴到电子邮件中。

    • 将证书请求发送到处理 PKI 的组织。

      按照 PKI 组织的说明提交证书请求。有关更详细的论述,请参见如何使用 CA 签名的证书配置 IKE中的步骤 3

  5. 在系统上,编辑 /etc/inet/ike/config 文件以识别这些证书。

    选择以下选项之一。

    • 自签名证书

      使用远程系统管理员为 cert_trustremote_idremote_addr 参数提供的值。例如,在 enigma 系统上,ike/config 文件的显示与以下信息类似:


      # Explicitly trust the following self-signed certs
      # Use the Subject Alternate Name to identify the cert
      
      cert_trust "192.168.116.16"  Local system's certificate Subject Alt Name
      cert_trust "192.168.13.213"  Remote system's certificate Subject Alt name
      
      
      # Solaris 10 1/06 release: default path does not have to be typed in
      #pkcs11_path "/usr/lib/libpkcs11.so" Hardware connection
      
      # Solaris 10 release: use this path
      #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so"
      …
      {
       label "JA-enigmax to US-partym"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
    • 证书请求

      将 PKI 组织提供的名称作为 cert_root 关键字的值键入。例如,enigma 系统上 ike/config 文件的显示可能与以下信息类似:


      # Trusted root cert
      # This certificate is from Example PKI
      # This is the X.509 distinguished name for the CA that it issues.
      
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      
      # Solaris 10 1/06 release: default path does not have to be typed in
      #pkcs11_path "/usr/lib/libpkcs11.so" Hardware connection
      
      # Solaris 10 release: use this path
      #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so"
      …
      {
       label "JA-enigmax to US-partym - Example PKI"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
  6. 在硬件中存放来自对方的证书。

    按照在步骤 3 中作出的响应,响应 PIN 请求。


    注 –

    必须将公钥证书添加到生成私钥的那个连接硬件上。


    • 自签名证书。

      添加远程系统的自签名证书。在此示例中,证书存储在 DCA.ACCEL.STOR.CERT 文件中。


      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT
      Enter PIN for PKCS#11 token: Type user:password
      

      如果自签名证书将 rsa_encrypt 用作 auth_method 参数的值,则将对等方的证书添加到硬件存储。

    • 来自 PKI 组织的证书。

      添加组织从证书请求生成的证书,然后添加证书颁发机构 (certificate authority, CA)。


      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT
      Enter PIN for PKCS#11 token: Type user:password
      

      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CA.CERT
      Enter PIN for PKCS#11 token: Type user:password
      

      要添加来自 PKI 组织的证书撤销列表 (certificate revocation list, CRL),请参见如何处理证书撤销列表

Procedure如何处理证书撤销列表

证书撤销列表 (certificate revocation list, CRL) 包含来自证书颁发机构的过时证书或已损坏证书。CRL 的处理方式有四种。

以下过程介绍如何指示 IKE 从中心分发点使用 CRL。

  1. 显示从 CA 收到的证书。


    # ikecert certdb -lv certspec
    
    -l

    列出 IKE 证书数据库中的证书。

    -v

    以详细模式列出证书。应谨慎使用此选项。

    certspec

    是一种与 IKE 证书数据库中的证书匹配的模式。

    例如,以下证书是由 Sun Microsystems 颁发的。详细信息已更改。


    # ikecert certdb -lv example-protect.sun.com
    Certificate Slot Name: 0   Type: dsa-sha1
       (Private key in certlocal slot 0)
     Subject Name: <O=Sun Microsystems Inc, CN=example-protect.sun.com>
     Issuer Name: <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc>
     SerialNumber: 14000D93
       Validity:
          Not Valid Before: 2002 Jul 19th, 21:11:11 GMT
          Not Valid After:  2005 Jul 18th, 21:11:11 GMT
       Public Key Info:
          Public Modulus  (n) (2048 bits): C575A…A5
          Public Exponent (e) (  24 bits): 010001
       Extensions:
          Subject Alternative Names:
                  DNS = example-protect.sun.com
          Key Usage: DigitalSignature KeyEncipherment
          [CRITICAL]
       CRL Distribution Points:
          Full Name:
             URI = #Ihttp://www.sun.com/pki/pkismica.crl#i
             DN = <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc>
          CRL Issuer: 
          Authority Key ID:
          Key ID:              4F … 6B
          SubjectKeyID:        A5 … FD
          Certificate Policies
          Authority Information Access

    请注意 CRL Distribution Points 项。URI 项指示此组织的 CRL 在 Web 上是可用的。DN 项指示 CRL 在 LDAP 服务器上是可用的。在 IKE 访问 CRL 后,将高速缓存该 CRL 以供将来使用。

    要访问 CRL,您需要到达分发点。

  2. 选择以下方法之一从中心分发点访问 CRL。

    • 使用 URI。

      将关键字 use_http 添加到主机的 /etc/inet/ike/config 文件。例如,ike/config 文件的显示与以下信息类似:


      # Use CRL from organization's URI
      use_http
    • 使用 Web 代理。

      将关键字 proxy 添加到 ike/config 文件。proxy 关键字将 URL 用作参数,如下所示:


      # Use own web proxy
      proxy "http://proxy1:8080"
      
    • 使用 LDAP 服务器。

      在主机的 /etc/inet/ike/config 文件中,将 LDAP 服务器指定为 ldap-list 关键字的参数。您的组织提供 LDAP 服务器的名称。ike/config 文件中项的显示与以下信息类似:


      # Use CRL from organization's LDAP
      ldap-list "ldap1.sun.com:389,ldap2.sun.com"
      …

    在证书到期之前,IKE 检索并高速缓存 CRL。


示例 23–7 将 CRL 粘贴到本地 certrldb 数据库中

如果无法从中心分发点获取 PKI 组织的 CRL,则可以将该 CRL 手动添加到本地 certrldb 数据库。按照 PKI 组织的说明将 CRL 提取到文件中,然后使用 ikecert certrldb -a 命令将此 CRL 添加到数据库。


# ikecert certrldb -a < Sun.Cert.CRL

为移动系统配置 IKE(任务列表)

下表包含将 IKE 配置为处理远程登录到中心站点的系统的过程的链接。

任务 

说明 

参考 

从站点外与中心站点进行通信 

允许站点外系统与中心站点进行通信。站点外系统可能是移动系统。 

如何为站点外系统配置 IKE

在接受来自移动系统的流量的中心系统上使用根证书和 IKE 

将网关系统配置为接受来自没有固定 IP 地址的系统的 IPsec 流量。 

示例 23–8

在没有固定 IP 地址的系统上使用根证书和 IKE 

将移动系统配置为保护它传输到中心站点(如公司总部)的流量。 

示例 23–9

在接受来自移动系统的流量的中心系统上使用自签名证书和 IKE 

使用自签名证书配置网关系统,以接受来自移动系统的 IPsec 流量。 

示例 23–10

在没有固定 IP 地址的系统上使用自签名证书和 IKE 

使用自签名证书配置移动系统,以保护它传输到中心站点的流量。 

示例 23–11

为移动系统配置 IKE

在进行适当配置后,家庭办公室和膝上型移动计算机可以使用 IPsec 和 IKE 与其公司的中央计算机进行通信。利用与公钥证书验证方法组合的综合 IPsec 策略,离站系统可以保护它们传输到中心系统的流量。

Procedure如何为站点外系统配置 IKE

IPsec 和 IKE 要求用唯一 ID 标识源和目标。对于没有唯一 IP 地址的站点外系统或移动系统,必须使用其他 ID 类型。可以使用诸如 DNSDNemail 之类的 ID 类型唯一地标识系统。

对于具有唯一 IP 地址的站点外系统或移动系统,最好也应使用其他 ID 类型进行配置。例如,如果系统尝试从 NAT 盒 (NAT box) 之后连接到中心站点,则不会使用它们的唯一地址。NAT 盒 (NAT box) 指定一个中心系统无法识别的任意 IP 地址。

预先共享的密钥也不太适合用作移动系统的验证机制,因为预先共享的密钥需要固定的 IP 地址。使用自签名证书或来自 PKI 的证书,移动系统可以与中心站点进行通信。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 将中心系统配置为识别移动系统。

    1. 设置 /etc/hosts 文件。

      中心系统不必识别移动系统的特定地址。


      # /etc/hosts on central
      central 192.xxx.xxx.x
      
    2. 设置 ipsecinit.conf 文件。

      中心系统需要一个允许很宽的 IP 地址范围的策略。随后,IKE 策略中的证书确保进行连接的系统是合法的。


      # /etc/inet/ipsecinit.conf on central
      # Keep everyone out unless they use this IPsec policy:
      {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    3. 设置 ike.config 文件。

      DNS 标识中心系统。证书用于验证该系统。


      ## /etc/inet/ike/ike.config on central
      # Global parameters
      #
      # Find CRLs by URI, URL, or LDAP
      # Use CRL from organization's URI
      use_http
      #
      # Use web proxy
      proxy "http://somecache.domain:port/"
      #
      # Use LDAP server
      ldap_server   "ldap-server1.domain.org,ldap2.domain.org:port"
      #
      # List CA-signed certificates
      cert_root    "C=US, O=Domain Org, CN=Domain STATE"
      #
      # List self-signed certificates - trust server and enumerated others
      #cert_trust    "DNS=central.domain.org"
      #cert_trust    "DNS=mobile.domain.org"
      #cert_trust    "DN=CN=Domain Org STATE (CLASS), O=Domain Org
      #cert_trust    "email=root@central.domain.org"
      #cert_trust    "email=user1@mobile.domain.org"
      #
      
      # Rule for mobile systems with certificate
      {
        label "Mobile systems with certificate"
        local_id_type DNS
      
      # Any mobile system who knows my DNS or IP can find me.
      
        local_id "central.domain.org"
        local_addr 192.xxx.xxx.x
      
      # Root certificate ensures trust,
      # so allow any remote_id and any remote IP address.
        remote_id ""
        remote_addr 0.0.0.0/0
      
      p2_pfs 5
      
      p1_xform
      {auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
      }
  3. 登录到每个移动系统,然后将该系统配置为查找中心系统。

    1. 设置 /etc/hosts 文件。

      /etc/hosts 文件不需要移动系统的地址,但是可以提供一个地址。该文件必须包含中心系统的公共 IP 地址。


      # /etc/hosts on mobile
      mobile 10.x.x.xx
      central 192.xxx.xxx.x
      
    2. 设置 ipsecinit.conf 文件。

      移动系统需要按照中心系统的公共 IP 地址来查找中心系统。这些系统必须配置相同的 IPsec 策略。


      # /etc/inet/ipsecinit.conf on mobile
      # Find central
      {raddr 192.xxx.xxx.x} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    3. 设置 ike.config 文件。

      标识符不能是 IP 地址。以下标识符对移动系统有效:

      • DN=ldap-directory-name

      • DNS=domain-name-server-address

      • email=email-address

      证书用于验证移动系统。


      ## /etc/inet/ike/ike.config on mobile
      # Global parameters
      #
      # Find CRLs by URI, URL, or LDAP
      # Use CRL from organization's URI
      use_http
      #
      # Use web proxy
      proxy "http://somecache.domain:port/"
      #
      # Use LDAP server
      ldap_server   "ldap-server1.domain.org,ldap2.domain.org:port"
      #
      # List CA-signed certificates
      cert_root    "C=US, O=Domain Org, CN=Domain STATE"
      #
      # Self-signed certificates - trust me and enumerated others
      #cert_trust    "DNS=mobile.domain.org"
      #cert_trust    "DNS=central.domain.org"
      #cert_trust    "DN=CN=Domain Org STATE (CLASS), O=Domain Org
      #cert_trust    "email=user1@domain.org"
      #cert_trust    "email=root@central.domain.org"
      #
      # Rule for off-site systems with root certificate
      {
      	label "Off-site mobile with certificate"
      	local_id_type DNS
      
      # NAT-T can translate local_addr into any public IP address
      # central knows me by my DNS
      
      	local_id "mobile.domain.org"
      	local_addr 0.0.0.0/0
      
      # Find central and trust the root certificate
      	remote_id "central.domain.org"
      	remote_addr 192.xxx.xxx.x
      
      p2_pfs 5
      
      p1_xform
      {auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
      }
  4. 将 IKE 配置读入内核。

    • 从 Solaris 10 4/09 发行版开始,请启用 ike 服务。


      # svcadm enable svc:/network/ipsec/ike
      
    • 如果您运行的是 Solaris 10 4/09 发行版之前的发行版,请重新引导系统。


      # init 6
      

      或者,先停止然后再启动 in.iked 守护进程。


示例 23–8 将中心计算机配置为接受来自移动系统的 IPsec 流量

IKE 可以从 NAT 盒 (NAT box) 之后启动协商。但是,IKE 的理想设置是在 NAT 盒 (NAT box) 没有介入的情况下进行的。在以下示例中,根证书已由 CA 颁发。已将 CA 证书放置在移动系统和中心系统上。中心系统接受来自 NAT 盒 (NAT box) 之后的系统的 IPsec 协商。main1 是可以接受来自站点外系统的连接的公司系统。有关如何设置站点外系统,请参见示例 23–9


## /etc/hosts on main1
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on main1
# Keep everyone out unless they use this IPsec policy:
{} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on main1
# Global parameters
#
# Find CRLs by URI, URL, or LDAP
# Use CRL from organization's URI
use_http
#
# Use web proxy
proxy "http://cache1.domain.org:8080/"
#
# Use LDAP server
ldap_server   "ldap1.domain.org,ldap2.domain.org:389"
#
# List CA-signed certificate
cert_root "C=US, O=ExamplePKI Inc, OU=PKI-Example, CN=Example PKI"
#
# Rule for off-site systems with root certificate
{
  label "Off-site system with root certificate"
  local_id_type DNS
  local_id "main1.domain.org"
  local_addr 192.168.0.100

# Root certificate ensures trust,
# so allow any remote_id and any remote IP address.
  remote_id ""
  remote_addr 0.0.0.0/0

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1}
p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg aes auth_alg sha1}
p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1}
p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg aes auth_alg sha1}
}


示例 23–9 使用 IPsec 配置 NAT 之后的系统

在以下示例中,根证书已由 CA 颁发,并放置在移动系统和中心系统上。mobile1 将从本部连接到公司总部。Internet 服务提供商 (Internet service provider, ISP) 网络使用 NAT 盒 (NAT box) ,以允许 ISP 为 mobile1 指定专用地址。然后,NAT 盒 (NAT box) 将专用地址转换为与其他 ISP 网络节点共享的公共 IP 地址。公司总部不在 NAT 之后。有关如何在公司总部设置计算机,请参见示例 23–8


## /etc/hosts on mobile1
mobile1 10.1.3.3
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on mobile1
# Find main1
{raddr 192.168.0.100} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on mobile1
# Global parameters
#
# Find CRLs by URI, URL, or LDAP
# Use CRL from organization's URI
use_http
#
# Use web proxy
proxy "http://cache1.domain.org:8080/"
#
# Use LDAP server
ldap_server   "ldap1.domain.org,ldap2.domain.org:389"
#
# List CA-signed certificate
cert_root "C=US, O=ExamplePKI Inc, OU=PKI-Example, CN=Example PKI"
#
# Rule for off-site systems with root certificate
{
  label "Off-site mobile1 with root certificate"
  local_id_type DNS
  local_id "mobile1.domain.org"
  local_addr 0.0.0.0/0

# Find main1 and trust the root certificate
  remote_id "main1.domain.org"
  remote_addr 192.168.0.100

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
}


示例 23–10 接受来自移动系统的自签名证书

在以下示例中,自签名证书已经颁发,并存放在移动系统和中心系统上。main1 是可以接受来自站点外系统的连接的公司系统。有关如何设置站点外系统,请参见示例 23–11


## /etc/hosts on main1
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on main1
# Keep everyone out unless they use this IPsec policy:
{} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on main1
# Global parameters
#
# Self-signed certificates - trust me and enumerated others
cert_trust    "DNS=main1.domain.org"
cert_trust    "jdoe@domain.org"
cert_trust    "user2@domain.org"
cert_trust    "user3@domain.org"
#
# Rule for off-site systems with trusted certificate
{
  label "Off-site systems with trusted certificates"
  local_id_type DNS
  local_id "main1.domain.org"
  local_addr 192.168.0.100

# Trust the self-signed certificates
# so allow any remote_id and any remote IP address.
  remote_id ""
  remote_addr 0.0.0.0/0

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
}


示例 23–11 使用自签名证书联系中心系统

在以下示例中,mobile1 将从本部连接到公司总部。证书已经颁发,并放置在移动系统和中心系统上。ISP 网络使用 NAT 盒 (NAT box) ,以允许 ISP 为 mobile1 指定专用地址。然后,NAT 盒 (NAT box) 将专用地址转换为与其他 ISP 网络节点共享的公共 IP 地址。公司总部不在 NAT 之后。有关如何在公司总部设置计算机,请参见示例 23–10


## /etc/hosts on mobile1
mobile1 10.1.3.3
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on mobile1
# Find main1
{raddr 192.168.0.100} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on mobile1
# Global parameters

# Self-signed certificates - trust me and the central system
cert_trust    "jdoe@domain.org"
cert_trust    "DNS=main1.domain.org"
#
# Rule for off-site systems with trusted certificate
{
  label "Off-site mobile1 with trusted certificate"
  local_id_type email
  local_id "jdoe@domain.org"
  local_addr 0.0.0.0/0

# Find main1 and trust the certificate
  remote_id "main1.domain.org"
  remote_addr 192.168.0.100

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
}

将 IKE 配置为查找连接的硬件(任务列表)

下表包含将已连接硬件的相关信息通知给 IKE 的过程的链接。只有将已连接硬件的相关信息通知 IKE,IKE 才能使用该硬件。要使用硬件,请按照使用公钥证书配置 IKE中的硬件过程操作。


注 –

您不必通知 IKE 有关片内 (on-chip) 硬件的信息。例如,UltraSPARC® T2 处理器提供加密加速。您不需要配置 IKE 来查找片内加速器。


任务 

说明 

参考 

将 IKE 密钥操作转移到 Sun Crypto Accelerator 1000 板 

将 IKE 链接到 PKCS #11 库。 

如何将 IKE 配置为查找 Sun Crypto Accelerator 1000 板

将 IKE 密钥操作转移到 Sun Crypto Accelerator 4000 板并在该板上存储密钥 

将 IKE 链接到 PKCS #11 库,并列出已连接硬件的名称。 

如何将 IKE 配置为查找 Sun Crypto Accelerator 4000 板

将 IKE 配置为查找连接的硬件

公钥证书也可以存储在连接的硬件上。Sun Crypto Accelerator 1000 板仅提供存储。Sun Crypto Accelerator 4000 和 Sun Crypto Accelerator 6000 板提供存储,并允许将公钥操作从系统转移到板上。

Procedure如何将 IKE 配置为查找 Sun Crypto Accelerator 1000 板

开始之前

以下过程假定 Sun Crypto Accelerator 1000 板已连接到系统。此过程还假定已安装板的软件,而且已配置该软件。有关说明,请参见《Sun Crypto Accelerator 1000 Board Version 2.0 Installation and User’s Guide》

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 检查是否已链接 PKCS #11 库。

    键入以下命令,以确定 PKCS #11 库是否已链接:


    # ikeadm get stats
    Phase 1 SA counts:
    Current:   initiator:          0   responder:          0
    Total:     initiator:          0   responder:          0
    Attempted: initiator:          0   responder:          0
    Failed:    initiator:          0   responder:          0
               initiator fails include 0 time-out(s)
    PKCS#11 library linked in from /usr/lib/libpkcs11.so
    # 
  3. Solaris 10 1/06: 从此发行版开始,可以在 softtoken 密钥库中存储密钥。

    有关 Solaris 加密框架提供的密钥库的信息,请参见 cryptoadm(1M) 手册页。有关使用密钥库的示例,请参见Example 23–12

Procedure如何将 IKE 配置为查找 Sun Crypto Accelerator 4000 板

开始之前

以下过程假定 Sun Crypto Accelerator 4000 板已连接到系统。此过程还假定已安装板的软件,而且已配置该软件。有关说明,请参见《Sun Crypto Accelerator 4000 Board Version 1.1 Installation and User’s Guide》

如果使用的是 Sun Crypto Accelerator 6000 板,请参见《Sun Crypto Accelerator 6000 Board Version 1.1 User’s Guide》获取说明。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 检查是否已链接 PKCS #11 库。

    IKE 使用该库的例程在 Sun Crypto Accelerator 4000 板上处理密钥生成和密钥存储。键入以下命令,以确定 PKCS #11 库是否已链接:


    $ ikeadm get stats
    …
    PKCS#11 library linked in from /usr/lib/libpkcs11.so
    $

    注 –

    对于 RSA,Sun Crypto Accelerator 4000 板最多支持 2048 位的密钥。对于 DSA,此板最多支持 1024 位的密钥。


  3. 查找已连接的 Sun Crypto Accelerator 4000 板的标记 ID。


    $ ikecert tokens
    Available tokens with library "/usr/lib/libpkcs11.so":
    
    "Sun Metaslot                     "

    该库返回一个包含 32 个字符的标记 ID(也称为 keystore name(密钥库名称))。在此示例中,可以将 Sun Metaslot 标记与 ikecert 命令一起使用来存储和加速 IKE 密钥。

    有关如何使用标记的说明,请参见如何在硬件上生成和存储公钥证书

    结尾空格是由 ikecert 命令自动填充的。


示例 23–12 查找和使用 metaslot 标记

标记可以存储在磁盘上、连接板上或 Solaris 加密框架提供的 softtoken 密钥库中。softtoken 密钥库标记 ID 可能与以下信息类似。


$ ikecert tokens
Available tokens with library "/usr/lib/libpkcs11.so":

"Sun Metaslot                   "

有关如何为 softtoken 密钥库创建口令短语,请参见 pktool(1) 手册页。

如下所示的命令可向 softtoken 密钥库添加证书。Sun.Metaslot.cert 是一个包含 CA 证书的文件。


# ikecert certdb -a -T "Sun Metaslot" < Sun.Metaslot.cert
Enter PIN for PKCS#11 token: Type user:passphrase

更改 IKE 传输参数(任务列表)

下表包含配置 IKE 传输参数的过程的链接。

任务 

说明 

参考 

使密钥协商的效率更高 

更改密钥协商参数。 

如何更改阶段 1 IKE 密钥协商的持续时间

配置密钥协商以允许传输延迟 

增大密钥协商参数。 

示例 23–13

将密钥协商配置为快速成功或快速显示故障 

减小密钥协商参数。 

示例 23–14

更改 IKE 传输参数

当 IKE 协商密钥时,传输速度可能会影响协商的成功。通常,无需更改 IKE 传输参数的缺省值。但是,在通过很脏的线路优化密钥协商时,或者再现问题时,您可能希望更改传输值。

在持续时间较长的情况下,IKE 可以通过不可靠的传输线路协商密钥。可以增大某些参数以使初始尝试成功。如果初始尝试未成功,则可以隔开后续尝试以便为成功提供更多时间。

通过缩短持续时间,可以利用可靠的传输线路。这样,可以更快捷地重试已失败的协商,以便加快协商速度。在诊断问题时,您可能还希望加快协商,以便尽早获得失败的结果。缩短持续时间也使阶段 1 SA 可用于其生命周期。

Procedure如何更改阶段 1 IKE 密钥协商的持续时间

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”


    注 –

    远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 在每个系统上更改全局传输参数的缺省值。

    在每个系统上,修改 /etc/inet/ike/config 文件中的阶段 1 持续时间参数。


    ### ike/config file on system
    
    ## Global parameters
    #
    ## Phase 1 transform defaults
    #
    #expire_timer      300
    #retry_limit         5
    #retry_timer_init    0.5 (integer or float)
    #retry_timer_max    30   (integer or float)
    expire_timer

    允许尚未完成的 IKE 阶段 1 协商在删除协商尝试之前延迟的秒数。缺省情况下,尝试延迟 30 秒。

    retry_limit

    异常中止任何 IKE 协商之前的重新传输次数。缺省情况下,IKE 尝试五次。

    retry_timer_init

    重新传输之间的初始时间间隔。在达到 retry_timer_max 值之前,此时间间隔以双倍递增。初始时间间隔为 0.5 秒。

    retry_timer_max

    重新传输之间的最大时间间隔(以秒为单位)。重新传输时间间隔在达到此限制时停止增加。缺省情况下,该限制为 30 秒。

  3. 将已更改的配置读入内核。

    • 从 Solaris 10 4/09 发行版开始,请刷新 ike 服务。


      # svcadm refresh svc:/network/ipsec/ike
      
    • 如果您运行的是 Solaris 10 4/09 发行版之前的发行版,请重新引导系统。


      # init 6
      

      或者,先停止然后再启动 in.iked 守护进程。


示例 23–13 延长 IKE 阶段 1 协商时间

在以下示例中,系统已通过高流量传输线路连接到其 IKE 对等方。原始设置位于文件的注释中。新设置延长了协商时间。


### ike/config file on partym
## Global Parameters
#
## Phase 1 transform defaults
#expire_timer   300
#retry_limit      5
#retry_timer_init 0.5 (integer or float)
#retry_timer_max 30   (integer or float)
#
expire_timer  600
retry_limit  10
retry_timer_init  2.5
retry_timer_max  180


示例 23–14 缩短 IKE 阶段 1 协商时间

在以下示例中,系统已通过小流量的高速线路连接到其 IKE 对等方。原始设置位于文件的注释中。新设置缩短了协商时间。


### ike/config file on partym
## Global Parameters
#
## Phase 1 transform defaults
#expire_timer   300
#retry_limit      5
#retry_timer_init 0.5 (integer or float)
#retry_timer_max 30   (integer or float)
#
expire_timer  120
retry_timer_init  0.20