系统管理指南:IP 服务

使用 IPsec 保护通信

本节提供保证两个系统之间的通信安全以及保证 Web 服务器的安全的过程。要保护 VPN,请参见使用 IPsec 保护 VPN(任务列表) 。其他过程提供加密材料和安全关联并检验 IPsec 是否按照配置工作。

以下信息适用于所有的 IPsec 配置任务:

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

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

开始之前

必须位于全局区域中才能为系统或共享 IP 区域配置 IPsec 策略。对于专用 IP 区域,请在非全局区域中配置 IPsec 策略。

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

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


    注 –

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


  2. 在每个系统上,检查主机项。

    在当前发行版中,将主机项添加到 /etc/inet/hosts 文件。

    在运行 Solaris 10 7/07 之前的发行版的系统上,将 IPv4 和 IPv6 项添加到 /etc/inet/ipnodes 文件中。一个系统的项在文件中必须是连续的。有关系统配置文件的更多信息,请参见TCP/IP 配置文件第 11 章

    如果您仅连接具有 IPv4 地址的系统,则需要修改 /etc/inet/hosts 文件。在此示例中,连接的系统运行的是早期的 Solaris 发行版并且使用的是 IPv6 地址。

    1. 在名为 enigma 的系统上,将以下内容键入到 hostsipnodes 文件中:


      # Secure communication with partym
      192.168.13.213 partym
      2001::eeee:3333:3333 partym
    2. 在名为 partym 的系统上,将以下内容键入到 hostsipnodes 文件中:


      # Secure communication with enigma
      192.168.116.16 enigma
      2001::aaaa:6666:6666 enigma

    将名称服务用于符号名称是不安全的。

  3. 在每个系统上,创建 IPsec 策略文件。

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

  4. 将 IPsec 策略项添加到 ipsecinit.conf 文件。

    1. enigma 系统上添加以下策略:


      {laddr enigma raddr partym} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. partym 系统上添加相同的策略:


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

      有关 IPsec 策略项的语法,请参见 ipsecconf(1M) 手册页。

  5. 在每个系统上,添加两个系统之间的一对 IPsec SA。

    您可以配置 Internet 密钥交换 (Internet Key Exchange, IKE) 来自动创建 SA,也可以手动添加 SA。


    注 –

    您应该使用 IKE,除非您有充分的理由手动生成和维护密钥。IKE 密钥管理比手动密钥管理更为安全。


  6. 启用 IPsec 策略。

    • 如果您运行的是 Solaris 10 4/09 发行版之前的发行版,请重新引导系统。


      # init 6
      

      然后,转至如何检验包是否受 IPsec 保护

    • 从 Solaris 10 4/09 发行版开始,请刷新 IPsec 服务并启用密钥管理服务。

      完成步骤 7步骤 10

  7. 检验 IPsec 策略文件的语法。


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    

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

  8. 刷新 IPsec 策略。


    # svcadm refresh svc:/network/ipsec/policy:default
    

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


    # svcadm enable svc:/network/ipsec/policy:default
    
  9. 激活 IPsec 的密钥。

    • 如果在步骤 5 中配置了 IKE,请执行以下操作之一:

      • 如果未启用 ike 服务,请将其启用。


        # svcadm enable svc:/network/ipsec/ike:default
        
      • 如果已启用 ike 服务,请重新启动此服务。


        # svcadm restart svc:/network/ipsec/ike:default
        
    • 如果在步骤 5 中手动配置了密钥,请执行以下操作之一:

      • 如果未启用 manual-key 服务,请将其启用。


        # svcadm enable svc:/network/ipsec/manual-key:default
        
      • 如果已启用 manual-key 服务,请刷新此服务。


        # svcadm refresh svc:/network/ipsec/manual-key:default
        
  10. 验证是否对包进行了保护。

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


示例 20–1 使用 ssh 连接时添加 IPsc 策略

在此示例中,管理员作为超级用户通过使用 ssh 命令访问第二个系统,在两个系统上配置 IPsc 策略和密钥。有关更多信息,请参见 ssh(1) 手册页。

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



示例 20–2 在不重新引导的情况下使用 IPsec 保证通信安全

以下示例适用于运行 Solaris 10 4/09 发行版之前的发行版的情况。即,在您的发行版中,不将 IPsec 作为服务来管理。此示例介绍了如何在测试环境中实现 IPsec。在生产环境中,重新引导比运行 ipsecconf 命令更为安全。有关安全注意事项,请参见此示例的结尾。

选择以下选项之一,而不是在步骤 6 进行重新引导:

安全注意事项-请在执行 ipsecconf 命令时阅读警告。已锁定的套接字(即已使用的套接字)提供了通向系统的不安全的后门。有关更广泛的讨论,请参见ipsecinit.confipsecconf 的安全注意事项


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

安全的 Web 服务器允许 Web 客户机与 Web 服务对话。在安全的 Web 服务器上,不属于 Web 通信的通信必须通过安全检查。以下过程会跳过 Web 通信。此外,此 Web 服务器可以发出不安全的 DNS 客户机请求。所有其他通信都需要使用 AES 和 SHA-1 算法的 ESP。

开始之前

必须位于全局区域中才能配置 IPsec 策略。对于专用 IP 区域,请在非全局区域中配置 IPsec 策略。您已完成了如何使用 IPsec 保证两个系统之间的通信安全,因此实际环境符合以下状况:

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

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


    注 –

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


  2. 确定哪些服务需要跳过安全策略检查。

    对于 Web 服务器,这些服务包括 TCP 端口 80 (HTTP) 和 443 (安全 HTTP)。如果 Web 服务器提供 DNS(域名系统)名称查找,则服务器还可能需要针对 TCP(传输控制协议)和 UDP(用户数据报协议)包括端口 53。

  3. 为 Web 服务器创建 IPsec 策略,并将其启用。

    对于所有 Solaris 发行版,步骤 12 均是可选的。

  4. 将 Web 服务器策略添加到 IPsec 策略文件。

    将以下行添加到 /etc/inet/ipsecinit.conf 文件:


    # Web traffic that web server should bypass.
    {lport  80 ulp tcp dir both} bypass {}
    {lport 443 ulp tcp dir both} bypass {}
    
    # Outbound DNS lookups should also be bypassed.
    {rport 53 dir both} bypass {}
    
    # Require all other traffic to use ESP with AES and SHA-1.
    # Use a unique SA for outbound traffic from the port
    {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

    此配置仅允许安全通信访问系统,跳过检查的例外情况在步骤 4 中进行了介绍。

  5. 检验 IPsec 策略文件的语法。


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. 刷新 IPsec 策略。


    # svcadm refresh svc:/network/ipsec/policy:default
    
  7. 刷新 IPsec 的密钥。

    您的设置已完成。(可选)您可以执行步骤 12

  8. /etc/inet 目录中为 Web 服务器策略创建一个文件。


    注 –

    以下步骤用于配置运行 Solaris 10 4/09 发行版之前的发行版的 Web 服务器。


    为此文件指定一个表明其用途的名称,例如 IPsecWebInitFile。在此文件中键入以下行:


    # Web traffic that web server should bypass.
    {lport  80 ulp tcp dir both} bypass {}
    {lport 443 ulp tcp dir both} bypass {}
    
    # Outbound DNS lookups should also be bypassed.
    {rport 53 dir both} bypass {}
    
    # Require all other traffic to use ESP with AES and SHA-1.
    # Use a unique SA for outbound traffic from the port
    {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

    此配置仅允许安全通信访问系统,跳过检查的例外情况在步骤 4 中进行了介绍。

  9. 将您在步骤 8 中创建的文件的内容复制到 /etc/inet/ipsecinit.conf 文件中。

  10. 使用只读权限保护 IPsecWebInitFile 文件。


    # chmod 400 IPsecWebInitFile
    
  11. 在不重新引导的情况下保证 Web 服务器的安全。

    选择以下选项之一:

    • 如果您使用 IKE 管理密钥,请停止并重新启动 in.iked 守护进程。


      # pkill in.iked
      # /usr/lib/inet/in.iked
      
    • 如果您手动管理密钥,请使用 ipseckeyipsecconf 命令。

      请使用 IPsecWebInitFile 作为 ipsecconf 命令的参数。如果您使用 ipsecinit.conf 文件作为参数,则当文件中的策略已经在系统上实现时,ipsecconf 命令会生成错误。


      # ipseckey -c -f /etc/inet/secret/ipseckeys 
      # ipsecconf -a /etc/inet/IPsecWebInitFile 
      

    注意 – 注意 –

    在执行 ipsecconf 命令时应阅读警告。已锁定的套接字(即已使用的套接字)提供了通向系统的不安全的后门。有关更广泛的讨论,请参见ipsecinit.confipsecconf 的安全注意事项。该警告也适用于重新启动 in.iked 守护进程。


    您也可以重新引导。重新引导可确保 IPsec 策略在所有 TCP 连接上都有效。重新引导时,TCP 连接使用 IPsec 策略文件中的策略。

  12. (可选的)使远程系统与 Web 服务器进行非 Web 通信。

    在远程系统的 ipsecinit.conf 文件中键入以下策略:


    # Communicate with web server about nonweb stuff
    #
    {laddr webserver} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

    仅当系统的 IPsec 策略匹配时,远程系统才能与 Web 服务器安全地进行非 Web 通信。

Procedure如何显示 IPsec 策略

当您发出不带任何参数的 ipsecconf 命令时,便可以查看在系统中配置的策略。

开始之前

必须在全局区域中运行 ipsecconf 命令。对于专用 IP 区域,请在非全局区域中运行 ipsecconf 命令。

  1. 承担拥有网络 IPsec 管理配置文件的角色或成为超级用户。

    如果您运行的是 Solaris 10 4/09 发行版之前的发行版,则网络 IPsec 管理配置文件不可用。请使用网络安全配置文件。

    有关如何创建拥有网络安全配置文件的角色并将该角色指定给用户的信息,请参见如何配置网络安全角色

  2. 显示 IPsec 策略。

    1. 按照全局 IPsec 策略项的添加顺序显示这些项。


      $ ipsecconf
      

      此命令将每项显示为后面跟有一个数字的索引

    2. 按照匹配项出现的顺序显示 IPsec 策略项。


      $ ipsecconf -l
      
    3. 按照匹配项出现的顺序显示 IPsec 策略项,包括每个隧道的项。


      $ ipsecconf -L
      

Procedure如何在 Solaris 系统上生成随机数

如果您要手动指定密钥,则加密材料必须是随机的。对于 Solaris 系统,其加密材料的格式是十六进制的。其他操作系统可能需要 ASCII 加密材料。如果要为 Solaris 系统生成加密材料,而且此系统与需要 ASCII 的操作系统通信,请参见示例 23–1

如果站点具有随机数生成器,请使用该生成器。否则,可以使用 od 命令,并将 /dev/random Solaris 设备作为输入。有关更多信息,请参见 od(1) 手册页。

在 Solaris 10 4/09 发行版中,您也可以使用 pktool 命令。该命令的语法比 od 命令的语法更为简单。有关详细信息,请参见《System Administration Guide: Security Services》中的“How to Generate a Symmetric Key by Using the pktool Command”

  1. 生成十六进制格式的随机数。


    % od -x|-X -A n file | head -n
    
    -x

    显示十六进制格式的八进制转储。十六进制格式对加密材料有用。十六进制以 4 个字符的块显示。

    -X

    显示十六进制格式的八进制转储。十六进制以 8 个字符的块显示。

    -A n

    从显示中删除输入偏移基址。

    file

    作为随机数的源。

    head -n

    将显示限制在输出的前 n 行中。

  2. 合并输出以创建适当长度的密钥。

    删除一行上的数字之间的空格,来创建 32 字符的密钥。一个 32 字符的密钥为 128 位。对于安全参数索引 (security parameter index, SPI),您应该使用 8 字符的密钥。密钥应该使用 0x 前缀。


示例 20–3 生成 IPsec 的加密材料

以下示例显示两行八个十六进制字符为一组的密钥。


% od -X -A n /dev/random | head -2
         d54d1536 4a3e0352 0faf93bd 24fd6cad
         8ecc2670 f3447465 20db0b0c c83f5a4b

通过合并第一行上的四个数字,可以创建一个 32 字符的密钥。以 0x 开头的 8 字符数提供了合适的 SPI 值,如 0xf3447465

以下示例显示两行四个十六进制字符为一组的密钥。


% od -x -A n /dev/random | head -2
         34ce 56b2 8b1b 3677 9231 42e9 80b0 c673
         2f74 2817 8026 df68 12f4 905a db3d ef27

通过合并第一行上的八个数字,可以创建一个 32 字符的密钥。


Procedure如何手动创建 IPsec 安全关联

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

开始之前

必须位于全局区域中才能手动管理共享 IP 区域的加密材料。

  1. 为 SA 生成加密材料。

    您需要将三个十六进制随机数用于外发通信,三个十六进制随机数用于传入通信。

    因此,一个系统需要生成以下数字:

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

    • 两个用于验证的 SHA1 算法的十六进制随机数。对于 160 位密钥,每个数字的长度必须为 40 个字符。一个数字用于 dst enigma,另一个数字用于 dst partym

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

    如果您的站点上有随机数生成器,请使用此生成器。您也可以使用 od 命令。有关过程,请参见如何在 Solaris 系统上生成随机数

  2. 在其中一个系统的系统控制台上,承担主管理员角色或成为超级用户。

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


    注 –

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


  3. 创建 SA。

  4. 启用 ipseckey 命令模式。


    # ipseckey
    
    >

    > 提示符指明您处于 ipseckey 命令模式下。

  5. 如果您要替换现有的 SA,请刷新当前的 SA。


    > flush
    > 

    为防止入侵者有时间破坏您的 SA,您需要替换加密材料。


    注 –

    您必须在通信系统上协调密钥替换。当您在一个系统上替换 SA 时,也必须在远程系统上替换此 SA。


  6. 要创建 SA,请键入以下命令。


    > add protocol spi random-hex-string \
    src addr dst addr2 \
    protocol-prefix_alg protocol-algorithm  \
    protocol-prefixkey random-hex-string-of-algorithm-specified-length
    

    也可使用此语法来替换已刷新的 SA。

    protocol

    指定 espah

    random-hex-string

    以十六进制格式指定最多包含八个字符的随机数。字符以 0x 开头。如果输入多于安全参数索引 (security parameter index, SPI) 所能接受的数字,系统会忽略多余的数字。如果输入少于 SPI 可接受的数字,系统对您的输入进行填充。

    addr

    指定一个系统的 IP 地址。

    addr2

    指定 addr 的同级系统的 IP 地址。

    protocol-prefix

    指定 encrauth 中的一个。encr 前缀与 esp 协议一起使用。auth 前缀与 ah 协议一起使用,用于验证 esp 协议。

    protocol-algorithm

    为 ESP 或 AH 指定算法。每种算法都需要具有特定长度的密钥。

    验证算法包括 MD5 和 SHA1。从 Solaris 10 4/09 发行版开始,支持 SHA256 和 SHA512。加密算法包括 DES、3DES、AES 和 Blowfish。

    random-hex-string-of-algorithm-specified-length

    指定具有算法所要求长度的随机十六进制数。例如,MD5 算法要求其 128 位密钥使用 32 个字符的字符串。3DES 算法要求其 192 位密钥使用 48 个字符的字符串。

    1. 例如,在 enigma 系统上,保护外发的包。

      使用在步骤 1 中生成的随机数。

      对于 Solaris 10 1/06:


      > add esp spi 0x8bcd1407 \
      src 192.168.116.16 dst 192.168.13.213 \
      encr_alg aes \
      auth_alg sha1 \
      encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
      authkey 6fab07fec4f2895445500ed992ab48835b9286ff
      >

      注 –

      同级系统必须使用相同的加密材料和相同的 SPI。


    2. enigma 系统上,仍使用 ipseckey 命令模式保护传入的包。

      键入以下命令来保护包:


      > add esp spi 0x122a43e4 \
      src 192.168.13.213 dst 192.168.116.16 \
      encr_alg aes \
      auth_alg sha1 \
      encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
      authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
      >

      注 –

      对于每个 SA,密钥和 SPI 可以不同。您应该为每个 SA 指定不同的密钥和不同的 SPI。


  7. 要退出 ipseckey 命令模式,请按 Ctrl-D 组合键或键入 quit

  8. 将加密材料添加到 /etc/inet/secret/ipseckeys 文件。

    在 Solaris 10 4/09 发行版之前的发行版中,此步骤可确保在重新引导时这些加密材料可用于 IPsec。

    /etc/inet/secret/ipseckeys 文件中的行与 ipseckey 命令行语言完全相同。

    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.
      #
      # for outbound packets on enigma
      add esp spi 0x8bcd1407 \
         src 192.168.116.16 dst 192.168.13.213  \
         encr_alg aes \
         auth_alg sha1  \
         encrkey  c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
         authkey  6fab07fec4f2895445500ed992ab48835b9286ff
      #
      # for inbound packets
      add esp spi 0x122a43e4 \
         src 192.168.13.213 dst 192.168.116.16 \
         encr_alg aes \
         auth_alg sha1  \
         encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
         authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
    2. 使用只读权限保护该文件。


      # chmod 400 /etc/inet/secret/ipseckeys
      
  9. partym 系统上重复该过程。

    使用 enigma 上使用的相同加密材料。

    两个系统上的加密材料必须完全相同。如以下示例所示,只有 ipseckeys 文件中的注释不同。注释不同是因为 dst enigmaenigma 系统上为传入,在 partym 系统上为外发。


    # partym ipseckeys file
    #
    # for inbound packets
    add esp spi 0x8bcd1407 \
       src 192.168.116.16 dst 192.168.13.213  \
       encr_alg aes \
       auth_alg sha1  \
       encrkey  c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
       authkey  6fab07fec4f2895445500ed992ab48835b9286ff
    #
    # for outbound packets
    add esp spi 0x122a43e4 \
       src 192.168.13.213 dst 192.168.116.16 \
       encr_alg aes \
       auth_alg sha1  \
       encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
       authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
  10. 启用 manual-key 服务。


    # svcadm enable svc:/network/ipsec/manual-key
    

    要在当前发行版中替换密钥,请参见示例 20–4


示例 20–4 替换 IPsec SA

在此示例中,管理员要配置运行当前 Solaris 10 发行版的系统。管理员生成新密钥,更改 ipseckeys 文件中的加密信息,然后重新启动服务。


Procedure如何检验包是否受 IPsec 保护

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

开始之前

您必须是超级用户或承担等效角色,才能创建 snoop 输出。必须可以同时访问两个系统才能测试连接。

  1. 在一个系统(如 partym)上,成为超级用户。


    % su -
    Password: Type root password
    # 
  2. partym 系统上,准备从远程系统搜寻包。

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


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

    在另一个终端窗口中,远程登录到 enigma 系统。提供您的口令。然后,成为超级用户并将包从 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 -----
    ...

Procedure如何配置网络安全角色

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

  1. 在本地 prof_attr 数据库中查找网络权限配置文件。

    在当前发行版中,输出会显示类似于以下内容的信息:


    % cd /etc/security
    % grep Network prof_attr
    Network IPsec Management:::Manage IPsec and IKE...
    Network Link Security:::Manage network link security...
    Network Management:::Manage the host and network configuration...
    Network Security:::Manage network and host security...
    Network Wifi Management:::Manage wifi network configuration...
    Network Wifi Security:::Manage wifi network security...

    如果您运行的是 Solaris 10 4/09 发行版之前的发行版,输出会显示类似于以下内容的信息:


    % cd /etc/security
    % grep Network prof_attr
    Network Management:::Manage the host and network configuration  
    Network Security:::Manage network and host security  
    System Administrator::: Network Management 

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

  2. 确定网络管理权限配置文件中具有的命令。


    % grep "Network Management" /etc/security/exec_attr
    Network Management:solaris:cmd:::/usr/sbin/ifconfig:privs=sys_net_config
    …
    Network Management:suser:cmd:::/usr/sbin/snoop:uid=0

    使用权限 (privs=sys_net_config) 可以运行 solaris 策略命令。以超级用户 (uid=0) 身份可以运行 suser 策略命令。

  3. 确定网络安全角色在站点中的作用范围。

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

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

    • 在当前发行版中,要创建只处理 IPsec 和 IKE 的角色,请使用网络 IPsec 管理权限配置文件。

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

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

    要创建该角色、将该角色指定给用户以及使用名称服务注册更改,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”


示例 20–5 在角色之间划分网络安全职责

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

管理员创建的角色如下:


Procedure如何管理 IKE 和 IPsec 服务

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

  1. 要管理 IPsec 策略,请执行以下操作之一:

    • 将新策略添加到 ipsecinit.conf 文件后,刷新 policy 服务。


      # svcadm refresh svc:/network/ipsec/policy
      
    • 更改服务属性的值后,查看属性值,然后刷新并重新启动 policy 服务。


      # svccfg -s policy setprop config/config_file=/etc/inet/MyIpsecinit.conf
      # svcprop -p config/config_file policy
      /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 refresh svc:/network/ipsec/ike
      
    • 更改服务属性的值后,查看属性值,然后刷新并重新启动服务。


      # svccfg -s ike setprop config/admin_privilege=modkeys
      # svcprop -p config/admin_privilege ike
      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
      
    • 更改 ipseckeys 文件后,刷新服务。


      # svcadm refresh manual-key
      
    • 更改服务属性的值后,查看属性值,然后刷新并重新启动服务。


      # svccfg -s manual-key setprop config/config_file=/etc/inet/secret/MyIpseckeyfile
      # svcprop -p config/config_file manual-key
      /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 命令输出的调试建议。