JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中保护网络安全     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  在虚拟化环境中使用链路保护

2.  调优网络(任务)

3.  Web 服务器和安全套接字层协议

4.  Oracle Solaris 中的 IP 过滤器(概述)

5.  IP 过滤器(任务)

6.  IP 安全体系结构(概述)

7.  配置 IPsec(任务)

使用 IPsec 保护通信

如何使用 IPsec 保证两个系统之间的通信安全

如何使用 IPsec 保护 Web 服务器使之免受非 Web 通信影响

如何显示 IPsec 策略

使用 IPsec 保护 VPN

在隧道模式下使用 IPsec 保护 VPN 的示例

用于保护 VPN 的 IPsec 任务的网络拓扑说明

如何在隧道模式下使用 IPsec 保护 VPN

管理 IPsec 和 IKE

如何手动创建 IPsec 密钥

如何配置网络安全角色

如何管理 IPsec 和 IKE 服务

如何检验包是否受 IPsec 保护

8.  IP 安全体系结构(参考信息)

9.  Internet 密钥交换(概述)

10.  配置 IKE(任务)

11.  Internet 密钥交换(参考信息)

词汇表

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

管理 IPsec 和 IKE

以下任务列表列出了在管理 IPsec 时可能要执行的任务。

任务
说明
参考
手动创建或替换安全关联。
为安全关联提供原始数据:
  • IPsec 算法名称和加密材料

  • 安全参数索引 (security parameter index, SPI)

  • IP 源地址和目标地址及其他参数

创建网络安全角色。
创建可以设置安全网络,但权限级别低于 root 角色的角色。
将 IPsec 和加密材料作为一组 SMF 服务来管理。
介绍何时以及如何使用相应命令来启用、禁用、刷新和重新启动服务。此外,还介绍了用于更改服务的属性值的命令。
检查 IPsec 是否正在保护包。
检查 snoop 输出以了解指示如何保护 IP 数据报的特定头。

如何手动创建 IPsec 密钥

以下过程为如何使用 IPsec 保证两个系统之间的通信安全中的步骤 4 提供了加密材料。您要为两个系统(partymenigma)生成密钥。您在一个系统上生成密钥,然后在两个系统中使用在第一个系统中生成的密钥。

开始之前

您必须位于全局区域中,才能手动管理非全局区域的加密材料。

您必须承担 root 角色。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  1. 为 SA 生成加密材料。
    1. 确定所需的密钥。

      您需要将三个十六进制随机数用于外发通信,三个十六进制随机数用于传入通信。因此,一个系统需要生成以下数字:

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

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

      • 两个用于 ESP 的 3DES 算法的十六进制随机数。每个数字的长度都必须为 168 个字符。一个数字用于 dst enigma,另一个数字用于 dst partym

    2. 生成所需的密钥。
  2. 在每个系统的 root 角色中,将密钥添加到 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 3des \
         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 3des \
         auth_alg sha512  \
         encrkey dd325c5c137fb4739a55c9b3a1747baa... \
         authkey ad9ced7ad5f255c9a8605fba5eb4d2fd...
    2. 使用只读权限保护该文件。
      # chmod 400 /etc/inet/secret/ipseckeys
    3. 验证文件的语法。
      # ipseckey -c -f /etc/inet/secret/ipseckeys

    注 - 两个系统上的加密材料必须完全相同。


  3. 激活 IPsec 密钥。
    • 如果未启用 manual-key 服务,请将其启用。
      # svcadm enable svc:/network/ipsec/manual-key:default
    • 如果已启用 manual-key 服务,请刷新此服务。
      # svcadm refresh ipsec/manual-key

接下来的步骤

如果建立 IPsec 策略未完成,请返回到 IPsec 过程以启用或刷新 IPsec 策略。

如何配置网络安全角色

如果您要使用 Oracle Solaris 的基于角色的访问控制 (role-based access control, RBAC) 功能来管理系统,请使用此过程提供网络管理角色或网络安全角色。

开始之前

您必须承担 root 角色才能创建和指定角色。一般用户可以列出并查看可用权限配置文件的内容。

  1. 列出与网络相关的可用权限配置文件。
    % getent prof_attr | grep Network | more
    Console User:RO::Manage System as the Console User...
    Network Management:RO::Manage the host and network configuration...
    Network Autoconf Admin:RO::Manage Network Auto-Magic configuration via nwamd...
    Network Autoconf User:RO::Network Auto-Magic User...
    Network ILB:RO::Manage ILB configuration via ilbadm...
    Network LLDP:RO::Manage LLDP agents via lldpadm...
    Network VRRP:RO::Manage VRRP instances...
    Network Observability:RO::Allow access to observability devices...
    Network Security:RO::Manage network and host security...:profiles=Network Wifi
    Security,Network Link Security,Network IPsec Management...
    Network Wifi Management:RO::Manage wifi network configuration...
    Network Wifi Security:RO::Manage wifi network security...
    Network Link Security:RO::Manage network link security...
    Network IPsec Management:RO::Manage IPsec and IKE...
    System Administrator:RO::Can perform most non-security administrative tasks:
    profiles=...Network Management...
    Information Security:RO::Maintains MAC and DAC security policies:
    profiles=...Network Security...

    Network Management(网络管理)配置文件是 System Administrator(系统管理员)配置文件的补充配置文件。如果您将 System Administrator(系统管理员)权限配置文件纳入角色,则此角色可以执行 Network Management(网络管理)配置文件中的命令。

  2. 列出 Network Management(网络管理)权限配置文件中的命令。
    % getent exec_attr | grep "Network Management"
    ...
    Network Management:solaris:cmd:::/sbin/dlstat:euid=dladm;egid=sys
    ...
    Network Management:solaris:cmd:::/usr/sbin/snoop:privs=net_observability
    Network Management:solaris:cmd:::/usr/sbin/spray:euid=0 ...
  3. 确定网络安全角色在站点中的作用范围。

    使用步骤 1 中的权限配置文件定义指导您做出决定。

    • 要创建处理所有网络安全的角色,请使用 Network Security(网络安全)权限配置文件。

    • 要创建只处理 IPsec 和 IKE 的角色,请使用 Network IPsec Management(网络 IPsec 管理)权限配置文件。

  4. 创建拥有 Network Management(网络管理)权限配置文件的网络安全角色。

    对于拥有除 Network Management(网络管理)配置文件外还拥有 Network Security(网络安全)或 Network IPsec Management(网络 IPsec 管理)权限配置文件的角色,除了可执行其他命令外,还可按相应的特权执行 ipadmipseckeysnoop 命令。

    要创建该角色、将该角色指定给用户以及使用命名服务注册更改,请参见《Oracle Solaris 11.1 管理:安全服务》中的"初次配置 RBAC(任务列表)"

示例 7-4 在角色之间划分网络安全职责

在此示例中,管理员要在两个角色之间划分网络安全职责。其中一个角色负责管理 Wifi 和链路安全,另一个角色负责管理 IPsec 和 IKE。为每个角色指定三个人,一人一班。

管理员创建的角色如下:

如何管理 IPsec 和 IKE 服务

以下步骤提供了最有可能针对 IPsec、IKE 和手动密钥管理使用 SMF 服务的情况。缺省情况下,policyipsecalgs 服务处于启用状态,而 ikemanual-key 服务处于禁用状态。

开始之前

您必须承担 root 角色。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  1. 要管理 IPsec 策略,请执行以下操作之一:
    • 将新策略添加到 ipsecinit.conf 文件后,刷新 policy 服务。
      # svcadm refresh svc:/network/ipsec/policy
    • 更改服务属性的值后,查看属性值,然后刷新并重新启动 policy 服务。
      # svccfg -s policy setprop config/config_file=/etc/inet/MyIpsecinit.conf
      # svccfg -s policy listprop config/config_file
      config/config_file  astring  /etc/inet/MyIpsecinit.conf
      # svcadm refresh svc:/network/ipsec/policy
      # svcadm restart svc:/network/ipsec/policy
  2. 要自动管理密钥,请执行以下操作之一:
    • 将项添加到 /etc/inet/ike/config 文件后,启用 ike 服务。
      # svcadm enable svc:/network/ipsec/ike
    • 更改 /etc/inet/ike/config 文件中的项后,重新启动 ike 服务。
      # svcadm restart svc:/network/ipsec/ike:default
    • 更改服务属性的值后,查看属性值,然后刷新并重新启动服务。
      # svccfg -s ike setprop config/admin_privilege = astring: "modkeys"
      # svccfg -s ike listprop config/admin_privilege
      config/admin_privilege  astring  modkeys
      # svcadm refresh svc:/network/ipsec/ike
      # svcadm restart svc:/network/ipsec/ike
    • 要停止 ike 服务,请将其禁用。
      # svcadm disable svc:/network/ipsec/ike
  3. 要手动管理密钥,请执行以下操作之一:
    • 将项添加到 /etc/inet/secret/ipseckeys 文件后,启用 manual-key 服务。
      # svcadm enable svc:/network/ipsec/manual-key:default
    • 更改 ipseckeys 文件后,刷新服务。
      # svcadm refresh manual-key
    • 更改服务属性的值后,查看属性值,然后刷新并重新启动服务。
      # svccfg -s manual-key setprop config/config_file=/etc/inet/secret/MyIpseckeyfile
      # svccfg -s manual-key listprop config/config_file
      config/config_file  astring  /etc/inet/secret/MyIpseckeyfile
      # svcadm refresh svc:/network/ipsec/manual-key
      # svcadm restart svc:/network/ipsec/manual-key
    • 要阻止手动密钥管理,请禁用 manual-key 服务。
      # svcadm disable svc:/network/ipsec/manual-key
  4. 如果修改 IPsec 协议和算法表,请刷新 ipsecalgs 服务。
    # svcadm refresh svc:/network/ipsec/ipsecalgs

故障排除

使用 svcs service 命令找到服务的状态。如果服务处于 maintenance 模式,请遵循 svcs -x service 命令输出的调试建议。

如何检验包是否受 IPsec 保护

要检验包是否受到保护,请使用 snoop 命令来测试连接。以下前缀可以在 snoop 输出中显示:

开始之前

必须可以同时访问两个系统才能测试连接。

您必须承担 root 角色才能创建 snoop 输出。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  1. 在一个系统(如 partym)上,承担 root 角色。
    % su -
    Password: Type root password
    # 
  2. partym 系统上,准备从远程系统搜寻包。

    partym 上的一个终端窗口中,从 enigma 系统搜寻包。

    # snoop -d net0 -v enigma
    Using device /dev/bge (promiscuous mode)
  3. 从远程系统发送包。

    在另一个终端窗口中,远程登录到 enigma 系统。提供您的口令。然后,承担 root 角色并将包从 enigma 系统发送到 partym 系统。包应该由 snoop -v enigma 命令捕获。

    % ssh enigma
    Password: Type your password
    % su -
    Password: Type root password
    # ping partym
  4. 检查 snoop 输出。

    partym 系统上,您应该看到在初始 IP 头信息之后显示 AHESP 信息的输出。类似以下内容的 AHESP 信息表明包正在受到保护:

    IP:   Time to live = 64 seconds/hops
    IP:   Protocol = 51 (AH)
    IP:   Header checksum = 4e0e
    IP:   Source address = 192.168.116.16, enigma
    IP:   Destination address = 192.168.13.213, partym
    IP:   No options
    IP:
    AH:  ----- Authentication Header -----
    AH:
    AH:  Next header = 50 (ESP)
    AH:  AH length = 4 (24 bytes)
    AH:  <Reserved field = 0x0>
    AH:  SPI = 0xb3a8d714
    AH:  Replay = 52
    AH:  ICV = c653901433ef5a7d77c76eaa
    AH:
    ESP:  ----- Encapsulating Security Payload -----
    ESP:
    ESP:  SPI = 0xd4f40a61
    ESP:  Replay = 52
    ESP:     ....ENCRYPTED DATA....
    
    ETHER:  ----- Ether Header -----
    ...