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

退出打印视图

更新时间: 2014 年 9 月
 
 

如何使用 IPsec 保护两台服务器之间的网络通信

    假设此过程具有以下设置:

  • 系统已分配了静态 IP 地址,并且正在运行网络配置文件 DefaultFixed。如果 netadm list 命令返回 Automatic,请参见 netcfg(1M) 手册页了解更多信息。

  • 两个系统的名称为 enigmapartym

  • 每个系统都有 IP 地址。该地址可以是 IPv4 地址、IPv6 地址或这两类地址。此过程使用 IPv4 地址。

  • 每个系统均为全局区域或专用 IP 区域。有关更多信息,请参见IPsec 和 Oracle Solaris 区域

  • 每个系统都使用 AES 算法加密通信,使用 SHA-2 验证通信。


    注 -  某些站点可能要求使用 SHA-2 算法。
  • 每个系统都使用共享安全关联。

    如果使用共享 SA,则仅需要一对 SA 来保护两个系统。


注 - 要在 Trusted Extensions 系统上使用带标签的 IPsec,请参见Trusted Extensions 配置和管理 中的如何在多级别 Trusted Extensions 网络中应用 IPsec 保护中此过程的扩展。

开始之前

    拥有特定权限的用户可以运行以下命令,不必成为 root

  • 要运行配置命令,您必须成为分配有 "Network IPsec Management"(网络 IPsec 管理)权限配置文件的管理员。

  • 在此管理角色中,您可以使用 pfedit 命令编辑与 IPsec 相关的系统文件,并创建密钥。

  • 要编辑 hosts 文件,您必须承担 root 角色或拥有编辑此文件的显式权限。请参见Example 7–7

有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

如果执行远程管理,请参见Example 7–1在 Oracle Solaris 11.2 中管理安全 Shell 访问 中的如何使用安全 Shell 远程管理 ZFS,了解进行安全的远程登录的说明。

  1. 在每个系统上,将主机项添加到 /etc/inet/hosts 文件中。

    此步骤可使本地命名服务将系统名称解析为 IP 地址,而不必依赖网络命名服务。

    1. 在名为 partym 的系统上,将以下内容键入到 hosts 文件中:
      ## Secure communication with enigma
      192.168.116.16 enigma
    2. 在名为 enigma 的系统上,将以下内容键入到 hosts 文件中:
      ## Secure communication with partym
      192.168.13.213 partym
  2. 在每个系统上,创建 IPsec 策略文件。

    该文件名为 /etc/inet/ipsecinit.conf。有关示例,请参见 /etc/inet/ipsecinit.sample 文件。

    # pfedit /etc/inet/ipsecinit.conf
  3. 将 IPsec 策略项添加到 ipsecinit.conf 文件。

    有关 IPsec 策略项的语法以及若干示例,请参见 ipsecconf(1M) 手册页。

    1. enigma 系统上添加以下策略:
      {laddr enigma raddr partym} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}

      由于未使用 dir 关键字,所以策略会同时应用于外发包和传入包。

    2. partym 系统上添加相同的策略:
      {laddr partym raddr enigma} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}
  4. 在每个系统上,将 IKE 配置为管理 IPsec SA。

    配置 IKEv2 中的配置过程之一执行操作。有关 IKE 配置文件的语法,请参见 ikev2.config(4) 手册页。如果与仅支持 IKEv1 协议的系统通信,请参阅配置 IKEv1ike.config(4) 手册页。


    注 - 如果您必须手动生成并维护密钥,请参见如何手动创建 IPsec 密钥
  5. 检验 IPsec 策略文件的语法。
    % pfbash
    # /usr/sbin/ipsecconf -c /etc/inet/ipsecinit.conf

    修复任何错误、检验文件的语法,然后继续。

  6. 刷新 IPsec 策略。
    # svcadm refresh ipsec/policy:default

    IPsec 策略缺省情况下处于启用状态,因此要对其进行刷新。如果已禁用了 IPsec 策略,请将其启用。

    # svcadm enable ipsec/policy:default
  7. 激活 IPsec 密钥。
    • 如果未启用 ike 服务,请将其启用。

      注 - 如果与只能运行 IKEv1 协议的系统通信,请指定 ike:default 实例。
      # svcadm enable ipsec/ike:ikev2
    • 如果已启用 ike 服务,请重新启动此服务。
      # svcadm restart ike:ikev2

    如果在Step 4 中手动配置了密钥,请完成过程如何手动创建 IPsec 密钥以激活密钥。

  8. 验证是否对包进行了保护。

    有关过程,请参见如何检验包是否受 IPsec 保护

示例 7-1  通过使用 ssh 连接远程配置 IPsec 策略

在此示例中,root 角色的管理员通过使用 ssh 命令访问第二个系统,在两个系统上配置 IPsec 策略和密钥。管理员在两个系统上具有相同的定义。有关更多信息,请参见 ssh(1) 手册页。

  1. 管理员通过执行如何使用 IPsec 保护两台服务器之间的网络通信Step 1Step 5 来配置第一个系统。

  2. 在不同的终端窗口中,管理员使用定义相同的用户名和 ID 通过 ssh 命令远程登录。

    local-system % ssh -l jdoe other-system
    other-system # su - root 
    Enter password: xxxxxxxx
    other-system #
  3. ssh 会话的终端窗口中,管理员通过完成Step 1Step 7 来配置第二个系统的 IPsec 策略和密钥。

  4. 管理员结束 ssh 会话。

    other-system # exit
    local-system 
    # exit
  5. 管理员通过完成Step 6Step 7 在第一个系统上启用 IPsec 策略。

下次这两个系统进行通信(包括使用 ssh 连接)时,此通信将会受 IPsec 保护。

示例 7-2  配置 IPsec 策略以在 FIPS 140 模式下运行

在本示例中,管理员在启用了 FIPS 140 的系统上配置了 IPsec 策略,以便遵循要求使用密钥长度至少为 192 位的对称算法的站点安全策略。

管理员指定了两个可能的 IPsec 策略。第一个策略指定 CCM 模式下的 AES 用于加密和验证,第二个策略指定密钥长度为 192 位和 256 位 的 AES 用于加密,SHA384 用于验证。

 {laddr machine1 raddr machine2} ipsec {encr_algs aes-ccm(192...) sa shared} or ipsec
 {laddr machine1 raddr machine2} ipsec {encr_algs aes(192...) encr_auth_algs sha2(384) sa shared}