在 Oracle® Solaris 11.2 中确保网络安全

退出打印视图

更新时间: 2014 年 9 月
 
 

如何手动创建 IPsec 密钥

以下过程提供了 IPsec 密钥,以便在不只使用 IKE 进行密钥管理时使用。

使用 ipseckey 命令添加的 IPsec SA 在系统重新引导后不会保留。对于持久性的 IPsec SA,请将项添加到 /etc/inet/secret/ipseckeys 文件。


Caution

注意  - 如果必须使用手动加密,请谨慎操作,以确保生成的密钥安全可靠。这些都是用于保证数据安全的实际密钥。


开始之前

必须位于全局区域中才能手动管理共享 IP 区域中的加密材料。对于专用 IP 区域,请在此专用 IP 区域中配置加密材料。

您必须承担 root 角色。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  1. 生成 IPsec SA 的密钥。

    这些密钥必须支持 ipsecinit.conf 文件中的特定策略。例如,可以使用如何使用 IPsec 保护两台服务器之间的网络通信 中的策略:

    {laddr enigma raddr partym} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}

    此策略使用 AES 和 SHA-2 算法。

    1. 确定所需的密钥。

        您需要生成 aes 的密钥、sha512 的密钥以及 SA 的 security parameter index, SPI(安全参数索引)

      • 两个作为 SPI 值的十六进制随机数。一个数字用于外发通信,一个数字用于传入通信。每个数字的长度最大可以为八个字符。

      • 两个用于 SHA-2 验证算法的十六进制随机数。每个数字的长度都必须为 512 个字符。一个数字用于 dst enigma,另一个数字用于 dst partym

      • 两个用于 AES 加密算法的十六进制随机数。每个数字的长度都必须为 128 个字符。一个数字用于 dst enigma,另一个数字用于 dst partym


      注 - ipsecalgs -l 命令会显示算法的密钥大小。使用手动密钥(即,使用 SHA512 和 AES 算法)时,请遵循此过程。请勿将弱算法、组合模式算法或 GMAC 算法用于手动密钥。
    2. 生成所需的密钥。
  2. 将密钥添加到 IPsec 的手动密钥文件。
    1. 编辑 enigma 系统上的 /etc/inet/secret/ipseckeys 文件,使其显示与以下内容类似:
      ## ipseckeys - This file takes the file format documented in 
      ##  ipseckey(1m).
      #   Note that naming services might not be available when this file
      #   loads, just like ipsecinit.conf.
      #
      #   Backslashes indicate command continuation.
      #
      # for outbound packets on enigma
      add esp spi 0x8bcd1407 \
         src 192.168.116.16 dst 192.168.13.213  \
         encr_alg aes \
         auth_alg sha512  \
         encrkey  d41fb74470271826a8e7a80d343cc5aa... \
         authkey  e896f8df7f78d6cab36c94ccf293f031...
      #
      # for inbound packets
      add esp spi 0x122a43e4 \
         src 192.168.13.213 dst 192.168.116.16 \
         encr_alg aes \
         auth_alg sha512  \
         encrkey dd325c5c137fb4739a55c9b3a1747baa... \
         authkey ad9ced7ad5f255c9a8605fba5eb4d2fd...
    2. 使用只读权限保护该文件。
      # chmod 400 /etc/inet/secret/ipseckeys

      如果使用 pfedit -s 命令创建了 ipseckeys 文件,则权限设置正确。有关更多信息,请参见 pfedit(1M) 手册页。

    3. 验证文件的语法。
      # ipseckey -c /etc/inet/secret/ipseckeys

    注 - 两个系统上的密钥必须完全相同。
  3. 激活 IPsec 密钥。
    • 如果未启用 manual-key 服务,请将其启用。
      % svcs manual-key
      STATE          STIME    FMRI
      disabled       Apr_10   svc:/network/ipsec/manual-key:default
      # svcadm enable ipsec/manual-key
    • 如果已启用 manual-key 服务,请刷新此服务。
      # svcadm refresh ipsec/manual-key

接下来的步骤

如果建立 IPsec 策略未完成,请返回到 IPsec 过程以启用或刷新 IPsec 策略。有关保护 VPN 的 IPsec 策略的示例,请参见使用 IPsec 保护 VPN。有关 IPsec 策略的其他示例,请参见如何使用 IPsec 保护两台服务器之间的网络通信