系统管理指南:IP 服务

使用 IPsec 保护 VPN(任务列表)

以下任务列表列出了配置 IPsec 以保护 Internet 上的通信的相关过程的参考链接。可使用这些过程在由 Internet 分隔的两个系统之间设置安全的虚拟专用网络 (virtual private network, VPN)。该技术的一种常见用途是确保在家里办公的员工与其公司办公室之间的通信安全。

任务 

说明 

参考 

保护通过 IPv4 进行的处于隧道模式的隧道通信。 

保护两个 Solaris 10 系统之间、两个 Oracle Solaris : 系统之间或 Solaris 10 系统与 Oracle Solaris Express 系统之间处于隧道模式的通信。Solaris 10 系统必须在 Solaris 10 7/07 发行版或更高版本上运行。 

此外,还保护 Solaris 10 系统或 Oracle Solaris : Express 系统与在其他平台上运行的系统之间处于隧道模式的通信。Solaris 10 系统必须在 Solaris 10 7/07 发行版或更高版本上运行。 

如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN

保护通过 Ipv6 进行的处于隧道模式的隧道通信。 

保护两个使用 IPv6 协议的 Oracle Solaris : 系统之间处于隧道模式的通信。 

如何使用通过 Ipv6 实现的处于隧道模式的 IPsec 隧道保护 VPN

保护通过 IPv4 进行的处于传输模式的隧道通信。 

保护两个 Solaris 10 系统之间、两个 Solaris 系统之间或 Solaris 10 系统与 Oracle Solaris 系统之间处于传输模式的通信。Solaris 10 系统必须在 Solaris 10 7/07 发行版或更高版本上运行。 

此外,还保护运行 Solaris OS 的早期版本的系统与 Solaris 10 或 Oracle Solaris : 系统之间处于传输模式的通信。Solaris 10 系统必须在 Solaris 10 7/07 发行版或更高版本上运行。 

如何使用通过 IPv4 实现的处于传输模式的 IPsec 隧道保护 VPN

通过使用旧的、过时的语法来保护通信。在与运行 Solaris OS 的早期版本的系统进行通信时,此方法很有用。此方法简化了两个系统上的配置文件之间的对比。 

示例 20–11

示例 20–16

保护通过 Ipv6 进行的处于传输模式的隧道通信。 

保护两个使用 IPv6 协议的 Oracle Solaris : 系统之间处于传输模式的通信。 

如何使用通过 Ipv6 实现的处于传输模式的 IPsec 隧道保护 VPN

防止 IP 电子欺骗。 

创建 SMF 服务,以防止系统在没有对包进行解密的情况下通过 VPN 转发包。 

如何防止 IP 电子欺骗

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

本节中的过程假设您已经进行了以下设置。有关此网络的描述,请参见图 20–2

图 20–2 由 Internet 分隔的办公室之间的 VPN 样例

显示欧洲办事处和加利福尼亚办事处之间的 VPN 的详细信息的图。

如前面的说明所示,IPv4 网络过程使用以下配置参数。

参数 

欧洲 

加利福尼亚 

系统名称 


enigma

partym

系统内联网接口 


hme1

hme1

系统内联网地址,也是步骤 7 中的 -point 地址


10.16.16.6

10.1.3.3

系统 Internet 接口 


hme0

hme0

系统 Internet 地址,也是步骤 7 中的 tsrc 地址


192.168.116.16

192.168.13.213

Internet 路由器名称 


router-E

router-C

Internet 路由器地址 


192.168.116.4

192.168.13.5

隧道名称 


ip.tun0

ip.tun0

下面的 IPv6 地址在过程中使用。隧道名称相同。

参数 

欧洲 

加利福尼亚 

系统内联网地址 


6000:6666::aaaa:1116

6000:3333::eeee:1113

系统 Internet 地址 


2001::aaaa:6666:6666

2001::eeee:3333:3333

Internet 路由器地址 


2001::aaaa:0:4

2001::eeee:0:1

Procedure如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN

在隧道模式下,内部 IP 包决定保护其内容的 IPsec 策略。

此过程扩展了如何使用 IPsec 保证两个系统之间的通信安全过程。用于保护 VPN 的 IPsec 任务的网络拓扑说明介绍了具体设置。


注 –

在两个系统中执行此过程中的步骤。


除了连接两个系统之外,还要连接两个连接到这两个系统的内联网。此过程中的系统作为网关使用。

开始之前

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

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

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


    注 –

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


  2. 在配置 IPsec 之前控制包流。

    1. 确保 IP 转发和 IP 动态路由功能均处于禁用状态。


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      IPv4 forwarding     disabled           disabled
         IPv4 routing     default (enabled)   enabled
      …

      如果已启用 IP 转发和 IP 动态路由功能,您可以通过键入以下内容来禁用它们:


      # routeadm -d ipv4-routing -d ipv4-forwarding
      # routeadm -u
      

      关闭 IP 转发功能可阻止包通过此系统从一个网络转发到另一个网络。有关 routeadm 命令的说明,请参见 routeadm(1M) 手册页。

    2. 打开 IP 严格目标多宿主。


      # ndd -set /dev/ip ip_strict_dst_multihoming 1
      

      打开 IP 严格目标多宿主可确保发往系统的目标地址之一的包到达正确的目标地址。

      启用严格目标多宿主时,到达特定接口的包必须传送到此接口的本地 IP 地址之一。所有其他包,甚至是传送到系统其他本地地址的包,均被丢弃。


      注意 – 注意 –

      系统启动时多宿主值会恢复为缺省值。要使更改的值具有持久性,请参见如何防止 IP 电子欺骗


    3. 禁用多数网络服务,也可能会禁用所有网络服务。


      注 –

      如果系统中安装了“受限制的”SMF 配置文件,则可以跳过此步骤。将禁用网络服务(Solaris 安全 Shell 除外)。


      禁用网络服务可防止 IP 包危害系统。例如,可以采用 SNMP 守护进程、telnet 连接或 rlogin 连接。

      选择以下选项之一:

      • 如果运行的是 Solaris 10 11/06 发行版或更高版本,请运行“受限制的”SMF 配置文件。


        # netservices limited
        
      • 否则,单独禁用网络服务。


        # svcadm disable network/ftp:default
        # svcadm disable network/finger:default
        # svcadm disable network/login:rlogin
        # svcadm disable network/nfs/server:default
        # svcadm disable network/rpc/rstat:default
        # svcadm disable network/smtp:sendmail
        # svcadm disable network/telnet:default
        
    4. 检验是否已禁用大多数网络服务。

      检验回送挂载和 ssh 服务是否正在运行。


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      …
      online         Aug_09   svc:/network/ssh:default
  3. 在两个系统间添加一对 SA。

    选择以下选项之一:

  4. 添加 IPsec 策略。

    编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。要增强策略,请参见示例 20–12。有关其他示例,请参见使用 IPsec 保护 VPN 的示例(使用处于隧道模式的隧道)

    在此策略中,本地 LAN 上的系统与网关的内部 IP 地址之间不需要 IPsec 保护,因此将添加 bypass 语句。

    1. enigma 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.16.16.6 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate tunnel} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. partym 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.1.3.3 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate tunnel} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
  5. (可选的)检验 IPsec 策略文件的语法。


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. 要配置隧道并使用 IPsec 对其加以保护,请根据 Solaris 发行版执行相应步骤:

  7. etc/hostname.ip.tun0 文件中配置隧道 ip.tun0

    此文件的语法如下所示:


    system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
    1. enigma 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. partym 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  8. 使用创建的 IPsec 策略保护隧道。


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. 要将隧道配置文件的内容读入内核,请重新启动网络服务。


    # svcadm restart svc:/network/initial:default
    
  10. hme1 接口打开 IP 转发功能。

    1. enigma 系统上,将路由器项添加到 /etc/hostname.hme1 文件。


      192.168.116.16 router
    2. partym 系统上,将路由器项添加到 /etc/hostname.hme1 文件。


      192.168.13.213 router

    IP 转发指可以转发来自其他位置的包。IP 转发也指由此接口发出的包可能源于其他位置。要成功转发包,必须打开接收接口和传送接口的 IP 转发功能。

    因为 hme1 接口在内联网内部,所以必须打开 hme1 的 IP 转发功能。因为 ip.tun0 通过 Internet 连接两个系统,所以必须打开 ip.tun0 的 IP 转发功能。

    hme0 接口已关闭其 IP 转发功能以阻止外部入侵者向受保护的内联网中注入包。外部是指 Internet。

  11. 确保路由协议不在内联网内通告缺省的路由。

    1. enigma 系统上,将 private 标志添加到 /etc/hostname.hme0 文件。


      10.16.16.6 private
    2. partym 系统上,将 private 标志添加到 /etc/hostname.hme0 文件。


      10.1.3.3 private

    即使 hme0 关闭 IP 转发功能,路由协议实现仍会通告接口。例如,in.routed 协议仍会通告 hme0 可将包转发到内联网中的对等接口。可以通过设置接口的专用标志,阻止这些通告。

  12. 手动添加通过 hme0 接口实现的缺省路由。

    缺省路由必须是可以直接访问 Internet 的路由器。

    1. enigma 系统上,添加以下路由:


      # route add default 192.168.116.4
      
    2. partym 系统上,添加以下路由:


      # route add default 192.168.13.5
      

      即使 hme0 接口不是内联网的一部分,hme0 也需要通过 Internet 访问其同级系统。要找到其同级系统,hme0 需要有关 Internet 路由的信息。对于 Internet 的其他部分来说,VPN 系统像是一台主机,而不是路由器。因此,您可以使用缺省的路由器或运行路由器搜索协议来查找同级系统。有关更多信息,请参见 route(1M)in.routed(1M) 手册页。

  13. 要完成该过程,请转至步骤 22 运行路由协议。

  14. 配置隧道 ip.tun0


    注 –

    以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。


    使用 ifconfig 命令创建点对点接口:


    # ifconfig ip.tun0 plumb
    
    # ifconfig ip.tun0 system1-point system2-point \
    tsrc system1-taddr tdst system2-taddr
    
    1. enigma 系统上键入以下命令:


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \
      tsrc 192.168.116.16 tdst 192.168.13.213
      
    2. partym 系统上键入以下命令:


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.1.3.3 10.16.16.6  \
      tsrc 192.168.13.213 tdst 192.168.116.16
      
  15. 使用创建的 IPsec 策略保护隧道。


    # ipsecconf
    
  16. 初启隧道的路由器。


    # ifconfig ip.tun0 router up
    
  17. hme1 接口打开 IP 转发功能。


    # ifconfig hme1 router
    

    IP 转发指可以转发来自其他位置的包。IP 转发也指由此接口发出的包可能源于其他位置。要成功转发包,必须打开接收接口和传送接口的 IP 转发功能。

    因为 hme1 接口在内联网内部,所以必须打开 hme1 的 IP 转发功能。因为 ip.tun0 通过 Internet 连接两个系统,所以必须打开 ip.tun0 的 IP 转发功能。

    hme0 接口已关闭其 IP 转发功能以阻止外部入侵者向受保护的内联网中注入包。外部是指 Internet。

  18. 确保路由协议不在内联网内通告缺省的路由。


    # ifconfig hme0 private
    

    即使 hme0 关闭 IP 转发功能,路由协议实现仍会通告接口。例如,in.routed 协议仍会通告 hme0 可将包转发到内联网中的对等接口。可以通过设置接口的专用标志,阻止这些通告。

  19. 手动添加通过 hme0 实现的缺省路由。

    缺省路由必须是可以直接访问 Internet 的路由器。

    1. enigma 系统上,添加以下路由:


      # route add default 192.168.116.4
      
    2. partym 系统上,添加以下路由:


      # route add default 192.168.13.5
      

      即使 hme0 接口不是内联网的一部分,hme0 也需要通过 Internet 访问其同级系统。要找到其同级系统,hme0 需要有关 Internet 路由的信息。对于 Internet 的其他部分来说,VPN 系统像是一台主机,而不是路由器。因此,您可以使用缺省的路由器或运行路由器搜索协议来查找同级系统。有关更多信息,请参见 route(1M)in.routed(1M) 手册页。

  20. 通过向 /etc/hostname.ip.tun0 文件中添加项来确保 VPN 在系统重新引导后启动。


    system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
    1. enigma 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. partym 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  21. 将接口文件配置为将正确的参数传送到路由选择守护进程。

    1. enigma 系统上,修改 /etc/hostname.interface 文件。


      # cat /etc/hostname.hme0
      ## enigma
      10.16.16.6 private

      # cat /etc/hostname.hme1
      ## enigma
      192.168.116.16 router
    2. partym 系统上,修改 /etc/hostname.interface 文件。


      # cat /etc/hostname.hme0
      ## partym
      10.1.3.3 private

      # cat /etc/hostname.hme1
      ## partym
      192.168.13.213 router
  22. 运行路由协议。


    # routeadm -e ipv4-routing
    # routeadm -u
    

    您可能需要在运行路由协议之前先配置路由协议。有关更多信息,请参见Oracle Solaris : 中的路由协议。有关过程,请参见如何配置 IPv4 路由器


示例 20–10 测试时创建临时隧道

在此示例中,管理员在 Solaris 10 4/09 系统中测试隧道的创建情况。稍后,管理员将使用如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN过程使隧道成为永久隧道。在测试过程中,管理员在系统 system1system2 上执行以下一系列步骤:



示例 20–11 使用命令行为早期版本的 Solaris 系统创建隧道

在 Solaris 10 7/07 发行版中,简化了 ifconfig 命令的语法。在此示例中,管理员将针对运行 Solaris 10 7/07 发行版之前的 Solaris 版本的系统测试隧道创建情况。通过使用 ifconfig 命令的原始语法,管理员可以在两个通信系统中使用完全相同的命令。稍后,管理员将使用如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN使隧道成为永久隧道。

在测试过程中,管理员在系统 system1system2 上执行以下步骤:



示例 20–12 在 LAN 中所有系统中要求 IPsec 策略

在此示例中,管理员注释掉了在步骤 4 中配置的 bypass 策略,从而加强了保护。通过此策略配置,LAN 中的每个系统都必须激活 IPsec 以便与路由器通信。


# LAN traffic must implement IPsec.
# {laddr 10.1.3.3 dir both} bypass {}

# WAN traffic uses ESP with AES and SHA-1.
{tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1}


示例 20–13 使用 IPsec 保护 Telnet 通信以及使用 IPsec 保护 SMTP 通信(二者不同)

在此示例中,第一条规则使用 Blowfish 和 SHA-1 保护端口 23 上的 telnet 通信。第二条规则使用 AES 和 MD5 保护端口 25 上的 SMTP 通信。


{laddr 10.1.3.3 ulp tcp dport 23 dir both} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa unique}
{laddr 10.1.3.3 ulp tcp dport 25 dir both} 
 ipsec {encr_algs aes encr_auth_algs md5 sa unique}


示例 20–14 使用处于隧道模式的 IPsec 隧道保护子网通信以及使用处于隧道模式的 IPsec 隧道保护其他网络通信(二者不同)

以下隧道配置保护子网 10.1.3.0/24 在隧道上的所有通信:


{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

以下隧道配置保护子网 10.1.3.0/24 在隧道上与不同子网的通信。以 10.2.x.x 开头的子网要经由隧道。


{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.1.0/24} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}

{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.2.0/24} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}

{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.3.0/24} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

Procedure如何使用通过 Ipv6 实现的处于隧道模式的 IPsec 隧道保护 VPN

要在 IPv6 网络中设置 VPN,您需要执行与针对 IPv4 网络执行的步骤相同的步骤。但是,命令的语法稍有不同。有关运行特定命令的更详尽的原因说明,请参见如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN中的相应步骤。


注 –

在两个系统中执行此过程中的步骤。


此过程使用以下配置参数。

参数 

欧洲 

加利福尼亚 

系统名称 


enigma

partym

系统内联网接口 


hme1

hme1

系统 Internet 接口 


hme0

hme0

系统内联网地址 


6000:6666::aaaa:1116

6000:3333::eeee:1113

系统 Internet 地址 


2001::aaaa:6666:6666

2001::eeee:3333:3333

Internet 路由器名称 


router-E

router-C

Internet 路由器地址 


2001::aaaa:0:4

2001::eeee:0:1

隧道名称 


ip6.tun0

ip6.tun0

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

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


    注 –

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


  2. 在配置 IPsec 之前控制包流。

    有关这些命令的作用,请参见步骤 2中的如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN

    1. 确保 IP 转发和 IP 动态路由功能均处于禁用状态。


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      …
      IPv6 forwarding     disabled          disabled
         IPv6 routing     disabled          disabled

      如果已启用 IP 转发和 IP 动态路由功能,您可以通过键入以下内容来禁用它们:


      # routeadm -d ipv6-forwarding -d ipv6-routing
      # routeadm -u
      
    2. 打开 IP 严格目标多宿主。


      # ndd -set /dev/ip ip6_strict_dst_multihoming 1
      

      注意 – 注意 –

      系统引导时,会将 ip6_strict_dst_multihoming 的值恢复为缺省值。要使更改的值具有持久性,请参见如何防止 IP 电子欺骗


    3. 禁用多数网络服务,也可能会禁用所有网络服务。


      注 –

      如果系统中安装了“受限制的”SMF 配置文件,则可以跳过此步骤。将禁用网络服务(Solaris 安全 Shell 除外)。


      禁用网络服务可防止 IP 包危害系统。例如,可以采用 SNMP 守护进程、telnet 连接或 rlogin 连接。

      选择以下选项之一:

      • 如果运行的是 Solaris 10 11/06 发行版或更高版本,请运行“受限制的”SMF 配置文件。


        # netservices limited
        
      • 否则,单独禁用网络服务。


        # svcadm disable network/ftp:default
        # svcadm disable network/finger:default
        # svcadm disable network/login:rlogin
        # svcadm disable network/nfs/server:default
        # svcadm disable network/rpc/rstat:default
        # svcadm disable network/smtp:sendmail
        # svcadm disable network/telnet:default 
    4. 检验是否已禁用大多数网络服务。

      检验回送挂载和 ssh 服务是否正在运行。


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      ...
      online         Aug_09   svc:/network/ssh:default
  3. 在两个系统间添加一对 SA。

    选择以下选项之一:

  4. 为 VPN 添加 IPsec 策略。

    编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。

    1. enigma 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic to and from this host can bypass IPsec.
      {laddr 6000:6666::aaaa:1116 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate tunnel} 
        ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. partym 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic to and from this host can bypass IPsec.
      {laddr 6000:3333::eeee:1113 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate tunnel} 
        ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
  5. (可选的)检验 IPsec 策略文件的语法。


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. 要配置隧道并使用 IPsec 对其加以保护,请根据 Solaris 发行版执行相应步骤:

  7. /etc/hostname.ip6.tun0 文件中配置隧道 ip6.tun0

    1. enigma 系统上,向 hostname.ip6.tun0 文件添加以下项:


      6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
    2. partym 系统上,向 hostname.ip6.tun0 文件添加以下项:


      6000:3333::eeee:1113  6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
  8. 使用创建的 IPsec 策略保护隧道。


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. 要将隧道配置文件的内容读入内核,请重新启动网络服务。


    # svcadm restart svc:/network/initial:default
    
  10. hme1 接口打开 IP 转发功能。

    1. enigma 系统上,将路由器项添加到 /etc/hostname6.hme1 文件。


      2001::aaaa:6666:6666 inet6 router
    2. partym 系统上,将路由器项添加到 /etc/hostname6.hme1 文件。


      2001::eeee:3333:3333 inet6 router
  11. 确保路由协议不在内联网内通告缺省的路由。

    1. enigma 系统上,将 private 标志添加到 /etc/hostname6.hme0 文件。


      6000:6666::aaaa:1116 inet6 private
    2. partym 系统上,将 private 标志添加到 /etc/hostname6.hme0 文件。


      6000:3333::eeee:1113 inet6 private
  12. 手动添加通过 hme0 实现的缺省路由。

    1. enigma 系统上,添加以下路由:


      # route add -inet6 default 2001::aaaa:0:4
      
    2. partym 系统上,添加以下路由:


      # route add -inet6 default 2001::eeee:0:1
      
  13. 要完成该过程,请转至步骤 22 运行路由协议。

  14. 配置安全隧道 ip6.tun0


    注 –

    以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。


    1. enigma 系统上键入以下命令:


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6 6000:6666::aaaa:1116 6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666   tdst 2001::eeee:3333:3333
      
    2. partym 系统上键入以下命令:


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6 6000:3333::eeee:1113 6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666
      
  15. 使用创建的 IPsec 策略保护隧道。


    # ipsecconf
    
  16. 初启隧道的路由器。


    # ifconfig ip6.tun0 router up
    
  17. 在每个系统上,为 hme1 接口打开 IP 转发功能。


    # ifconfig hme1 router
    
  18. 确保路由协议不在内联网内通告缺省的路由。


    # ifconfig hme0 private
    
  19. 手动添加通过 hme0 实现的缺省路由。

    缺省路由必须是可以直接访问 Internet 的路由器。

    1. enigma 系统上,添加以下路由:


      # route add -inet6 default 2001::aaaa:0:4
      
    2. partym 系统上,添加以下路由:


      # route add -inet6 default 2001::eeee:0:1
      
  20. 通过向 /etc/hostname6.ip6.tun0 文件中添加项来确保 VPN 在系统重新引导后启动。

    该项复制在步骤 14 中传递到 ifconfig 命令的参数。

    1. enigma 系统上,向 hostname6.ip6.tun0 文件添加以下项:


      6000:6666::aaaa:1116 6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666  tdst 2001::eeee:3333:3333 router up
    2. partym 系统上,向 hostname6.ip6.tun0 文件添加以下项:


      6000:3333::eeee:1113 6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666  router up
  21. 在每个系统上,将接口文件配置为将正确的参数传送到路由选择守护进程。

    1. enigma 系统上,修改 /etc/hostname6. interface 文件。


      # cat /etc/hostname6.hme0
      ## enigma
      6000:6666::aaaa:1116 inet6 private

      #  cat /etc/hostname6.hme1
      ## enigma
      2001::aaaa:6666:6666 inet6 router
    2. partym 系统上,修改 /etc/hostname6. interface 文件。


      # cat /etc/hostname6.hme0
      ## partym
      6000:3333::eeee:1113 inet6 private

      # cat /etc/hostname6.hme1
      ## partym
      2001::eeee:3333:3333 inet6 router
  22. 运行路由协议。


    # routeadm -e ipv6-routing
    # routeadm -u
    

    您可能需要在运行路由协议之前先配置路由协议。有关更多信息,请参见Oracle Solaris : 中的路由协议。有关过程,请参见配置 IPv6 路由器

Procedure如何使用通过 IPv4 实现的处于传输模式的 IPsec 隧道保护 VPN

在传输模式下,外部头决定保护内部 IP 包的 IPsec 策略。

此过程扩展了如何使用 IPsec 保证两个系统之间的通信安全过程。除了连接两个系统之外,还要连接两个连接到这两个系统的内联网。此过程中的系统作为网关使用。

此过程使用用于保护 VPN 的 IPsec 任务的网络拓扑说明中介绍的设置。有关运行特定命令的更详尽的原因说明,请参见如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN中的相应步骤。


注 –

在两个系统中执行此过程中的步骤。


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

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


    注 –

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


  2. 在配置 IPsec 之前控制包流。

    1. 确保 IP 转发和 IP 动态路由功能均处于禁用状态。


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      IPv4 forwarding     disabled           disabled
         IPv4 routing     default (enabled)   enabled
      …

      如果已启用 IP 转发和 IP 动态路由功能,您可以通过键入以下内容来禁用它们:


      # routeadm -d ipv4-routing -d ipv4-forwarding
      # routeadm -u
      
    2. 打开 IP 严格目标多宿主。


      # ndd -set /dev/ip ip_strict_dst_multihoming 1
      

      注意 – 注意 –

      系统引导时,会将 ip_strict_dst_multihoming 的值恢复为缺省值。要使更改的值具有持久性,请参见如何防止 IP 电子欺骗


    3. 禁用多数网络服务,也可能会禁用所有网络服务。


      注 –

      如果系统中安装了“受限制的”SMF 配置文件,则可以跳过此步骤。将禁用网络服务(Solaris 安全 Shell 除外)。


      禁用网络服务可防止 IP 包危害系统。例如,可以采用 SNMP 守护进程、telnet 连接或 rlogin 连接。

      选择以下选项之一:

      • 如果运行的是 Solaris 10 11/06 发行版或更高版本,请运行“受限制的”SMF 配置文件。


        # netservices limited
        
      • 否则,单独禁用网络服务。


        # svcadm disable network/ftp:default
        # svcadm disable network/finger:default
        # svcadm disable network/login:rlogin
        # svcadm disable network/nfs/server:default
        # svcadm disable network/rpc/rstat:default
        # svcadm disable network/smtp:sendmail
        # svcadm disable network/telnet:default 
    4. 检验是否已禁用大多数网络服务。

      检验回送挂载和 ssh 服务是否正在运行。


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      …
      online         Aug_09   svc:/network/ssh:default
  3. 在两个系统间添加一对 SA。

    选择以下选项之一:

  4. 添加 IPsec 策略。

    编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。要增强策略,请参见示例 20–15

    1. enigma 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.16.16.6 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. partym 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.1.3.3 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
  5. (可选的)检验 IPsec 策略文件的语法。


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. 要配置隧道并使用 IPsec 对其加以保护,请根据 Solaris 发行版执行相应步骤:

  7. /etc/hostname.ip.tun0 文件中配置隧道 ip.tun0

    1. enigma 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. partym 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  8. 使用创建的 IPsec 策略保护隧道。


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. 要将 hostname.ip.tun0 文件的内容读入内核,请重新启动网络服务。


    # svcadm restart svc:/network/initial:default
    
  10. hme1 接口打开 IP 转发功能。

    1. enigma 系统上,将路由器项添加到 /etc/hostname.hme1 文件。


      192.168.116.16 router
    2. partym 系统上,将路由器项添加到 /etc/hostname.hme1 文件。


      192.168.13.213 router
  11. 确保路由协议不在内联网内通告缺省的路由。

    1. enigma 系统上,将 private 标志添加到 /etc/hostname.hme0 文件。


      10.16.16.6 private
    2. partym 系统上,将 private 标志添加到 /etc/hostname.hme0 文件。


      10.1.3.3 private
  12. 手动添加通过 hme0 实现的缺省路由。

    1. enigma 系统上,添加以下路由:


      # route add default 192.168.116.4
      
    2. partym 系统上,添加以下路由:


      # route add default 192.168.13.5
      
  13. 要完成该过程,请转至步骤 22 运行路由协议。

  14. 配置隧道 ip.tun0


    注 –

    以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。


    使用 ifconfig 命令创建点对点接口:


    # ifconfig ip.tun0 plumb
    
    # ifconfig ip.tun0 system1-point system2-point \
    tsrc system1-taddr tdst system2-taddr
    
    1. enigma 系统上键入以下命令:


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \
      tsrc 192.168.116.16 tdst 192.168.13.213
      
    2. partym 系统上键入以下命令:


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.1.3.3 10.16.16.6  \
      tsrc 192.168.13.213 tdst 192.168.116.16
      
  15. 使用创建的 IPsec 策略保护隧道。


    # ipsecconf
    
  16. 初启隧道的路由器。


    # ifconfig ip.tun0 router up
    
  17. hme1 接口打开 IP 转发功能。


    # ifconfig hme1 router
    
  18. 确保路由协议不在内联网内通告缺省的路由。


    # ifconfig hme0 private
    
  19. 手动添加通过 hme0 实现的缺省路由。

    缺省路由必须是可以直接访问 Internet 的路由器。


    # route add default router-on-hme0-subnet
    
    1. enigma 系统上,添加以下路由:


      # route add default 192.168.116.4
      
    2. partym 系统上,添加以下路由:


      # route add default 192.168.13.5
      
  20. 通过向 /etc/hostname.ip.tun0 文件中添加项来确保 VPN 在系统重新引导后启动。


    system1-point system2-point tsrc system1-taddr \
    tdst system2-taddr encr_algs aes encr_auth_algs sha1 router up
    1. enigma 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 \
      tdst 192.168.13.213 router up
    2. partym 系统上,向 hostname.ip.tun0 文件添加以下项:


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 \
      tdst 192.168.116.16 router up
  21. 将接口文件配置为将正确的参数传送到路由选择守护进程。

    1. enigma 系统上,修改 /etc/hostname.interface 文件。


      # cat /etc/hostname.hme0
      ## enigma
      10.16.16.6 private

      # cat /etc/hostname.hme1
      ## enigma
      192.168.116.16 router
    2. partym 系统上,修改 /etc/hostname.interface 文件。


      # cat /etc/hostname.hme0
      ## partym
      10.1.3.3 private

      # cat /etc/hostname.hme1
      ## partym
      192.168.13.213 router
  22. 运行路由协议。


    # routeadm -e ipv4-routing
    # routeadm -u
    

示例 20–15 在所有处于传输模式的系统上要求 IPsec 策略

在此示例中,管理员注释掉了在步骤 4 中配置的 bypass 策略,从而加强了保护。通过此策略配置,LAN 中的每个系统都必须激活 IPsec 以便与路由器通信。


# LAN traffic must implement IPsec.
# {laddr 10.1.3.3 dir both} bypass {}

# WAN traffic uses ESP with AES and SHA-1.
{tunnel ip.tun0 negotiate transport} ipsec {encr_algs aes encr_auth_algs sha1}


示例 20–16 使用过时的语法配置处于传输模式的 IPsec 隧道

在此示例中,管理员将 Solaris 10 7/07 系统与运行 Solaris 10 发行版的系统连接在一起。因此,管理员在配置文件中使用 Solaris 10 语法,并在 ifconfig 命令中包含 IPsec 算法。

管理员按照如何使用通过 IPv4 实现的处于传输模式的 IPsec 隧道保护 VPN过程进行操作,但在语法上进行了以下更改。


Procedure如何使用通过 Ipv6 实现的处于传输模式的 IPsec 隧道保护 VPN

要在 IPv6 网络中设置 VPN,您需要执行与针对 IPv4 网络执行的步骤相同的步骤。但是,命令的语法稍有不同。有关运行特定命令的更详尽的原因说明,请参见如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN中的相应步骤。


注 –

在两个系统中执行此过程中的步骤。


此过程使用以下配置参数。

参数 

欧洲 

加利福尼亚 

系统名称 


enigma

partym

系统内联网接口 


hme1

hme1

系统 Internet 接口 


hme0

hme0

系统内联网地址 


6000:6666::aaaa:1116

6000:3333::eeee:1113

系统 Internet 地址 


2001::aaaa:6666:6666

2001::eeee:3333:3333

Internet 路由器名称 


router-E

router-C

Internet 路由器地址 


2001::aaaa:0:4

2001::eeee:0:1

隧道名称 


ip6.tun0

ip6.tun0

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

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


    注 –

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


  2. 在配置 IPsec 之前控制包流。

    1. 确保 IP 转发和 IP 动态路由功能均处于禁用状态。


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      …
      IPv6 forwarding     disabled          disabled
         IPv6 routing     disabled          disabled

      如果已启用 IP 转发和 IP 动态路由功能,您可以通过键入以下内容来禁用它们:


      # routeadm -d ipv6-forwarding -d ipv6-routing
      # routeadm -u
      
    2. 打开 IP 严格目标多宿主。


      # ndd -set /dev/ip ip6_strict_dst_multihoming 1
      

      注意 – 注意 –

      系统引导时,会将 ip6_strict_dst_multihoming 的值恢复为缺省值。要使更改的值具有持久性,请参见如何防止 IP 电子欺骗


    3. 检验是否已禁用大多数网络服务。

      检验回送挂载和 ssh 服务是否正在运行。


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      …
      online         Aug_09   svc:/network/ssh:default
  3. 在两个系统间添加一对 SA。

    选择以下选项之一:

  4. 添加 IPsec 策略。

    编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。

    1. enigma 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic can bypass IPsec.
      {laddr 6000:6666::aaaa:1116 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1}
    2. partym 系统上,将以下项键入到 ipsecinit.conf 文件中:


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic can bypass IPsec.
      {laddr 6000:3333::eeee:1113 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1}
  5. (可选的)检验 IPsec 策略文件的语法。


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. 要配置隧道并使用 IPsec 对其加以保护,请根据 Solaris 发行版执行相应步骤:

  7. /etc/hostname.ip6.tun0 文件中配置隧道 ip6.tun0

    1. enigma 系统上,向 hostname.ip6.tun0 文件添加以下项:


      6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
    2. partym 系统上,向 hostname.ip6.tun0 文件添加以下项:


      6000:3333::eeee:1113  6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
  8. 使用创建的 IPsec 策略保护隧道。


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. 要将 hostname.ip6.tun0 文件的内容读入内核,请重新启动网络服务。


    # svcadm restart svc:/network/initial:default
    
  10. hme1 接口打开 IP 转发功能。

    1. enigma 系统上,将路由器项添加到 /etc/hostname6.hme1 文件。


      2001::aaaa:6666:6666 inet6 router
    2. partym 系统上,将路由器项添加到 /etc/hostname6.hme1 文件。


      2001::eeee:3333:3333 inet6 router
  11. 确保路由协议不在内联网内通告缺省的路由。

    1. enigma 系统上,将 private 标志添加到 /etc/hostname6.hme0 文件。


      6000:6666::aaaa:1116 inet6 private
    2. partym 系统上,将 private 标志添加到 /etc/hostname6.hme0 文件。


      6000:3333::eeee:1113 inet6 private
  12. 手动添加通过 hme0 实现的缺省路由。

    1. enigma 系统上,添加以下路由:


      # route add -inet6 default 2001::aaaa:0:4
      
    2. partym 系统上,添加以下路由:


      # route add -inet6 default 2001::eeee:0:1
      
  13. 要完成该过程,请转至步骤 22 运行路由协议。

  14. 配置安全隧道 ip6.tun0


    注 –

    以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。


    1. enigma 系统上键入以下命令:


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6 6000:6666::aaaa:1116 6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666   tdst 2001::eeee:3333:3333
      
    2. partym 系统上键入以下命令:


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6  6000:3333::eeee:1113  6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666
      
  15. 使用创建的 IPsec 策略保护隧道。


    # ipsecconf
    
  16. 初启隧道的路由器。


    # ifconfig ip6.tun0 router up
    
  17. hme1 接口打开 IP 转发功能。


    # ifconfig hme1 router
    
  18. 确保路由协议不在内联网内通告缺省的路由。


    # ifconfig hme0 private
    
  19. 在每个系统上手动添加通过 hme0 实现的缺省路由。

    缺省路由必须是可以直接访问 Internet 的路由器。

    1. enigma 系统上,添加以下路由:


      # route add -inet6 default 2001::aaaa:0:4
      
    2. partym 系统上,添加以下路由:


      # route add -inet6 default 2001::eeee:0:1
      
  20. 在每个系统上,通过向 /etc/hostname6.ip6.tun0 文件中添加项来确保 VPN 在系统重新引导后启动。

    该项复制在步骤 14 中传递到 ifconfig 命令的参数。

    1. enigma 系统上,向 hostname6.ip6.tun0 文件添加以下项:


      6000:6666::aaaa:1116  6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666   tdst 2001::eeee:3333:3333  router up
    2. partym 系统上,向 hostname6.ip6.tun0 文件添加以下项:


      6000:3333::eeee:1113  6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666  router up
  21. 将接口文件配置为将正确的参数传送到路由选择守护进程。

    1. enigma 系统上,修改 /etc/hostname6. interface 文件。


      # cat /etc/hostname6.hme0
      ## enigma
      6000:6666::aaaa:1116 inet6 private

      #  cat /etc/hostname6.hme1
      ## enigma
      2001::aaaa:6666:6666 inet6 router
    2. partym 系统上,修改 /etc/hostname6. interface 文件。


      # cat /etc/hostname6.hme0
      ## partym
      6000:3333::eeee:1113 inet6 private

      # cat /etc/hostname6.hme1
      ## 
      partym2001::eeee:3333:3333 inet6 router
  22. 运行路由协议。


    # routeadm -e ipv6-routing
    # routeadm -u
    

示例 20–17 使用过时的语法配置通过 IPv6 实现的处于传输模式的 IPsec

在此示例中,管理员将 Solaris 10 7/07 系统与运行 Solaris 10 发行版的系统连接在一起。因此,管理员在配置文件中使用 Solaris 10 语法,并在 ifconfig 命令中包含 IPsec 算法。

管理员按照如何使用通过 Ipv6 实现的处于传输模式的 IPsec 隧道保护 VPN过程进行操作,但在语法上进行了以下更改。


Procedure如何防止 IP 电子欺骗

要防止系统在未尝试对包进行解密的情况下将包转发至另一个接口,系统需要检查 IP 电子欺骗。一种预防方法是使用 ndd 命令设置 IP 严格目标多宿主参数。在 SMF 清单中设置了此参数时,系统重新引导时就会设置此参数。


注 –

在两个系统中执行此过程中的步骤。


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

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

  2. 创建用于检查 IP 电子欺骗的站点专用 SMF 清单。

    使用以下样例脚本 /var/svc/manifest/site/spoof_check.xml

    <?xml version="1.0"?>
    <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
    
    <service_bundle type='manifest' name='Custom:ip_spoof_checking'>
    
    <!--    This is a custom smf(5) manifest for this system. Place this
            file in /var/svc/manifest/site, the directory for local
            system customizations. The exec method uses an unstable
            interface to provide a degree of protection against IP
            spoofing attacks when this system is acting as a router.
    
            IP spoof protection can also be achieved by using ipfilter(5).
            If ipfilter is configured, this service can be disabled.
    
            Note: Unstable interfaces might be removed in later
            releases.  See attributes(5).
    -->
    
    <service
            name='site/ip_spoofcheck'
            type='service'
            version='1'>
    
            <create_default_instance enabled='false' />
            <single_instance />
    
            <!--    Don't enable spoof protection until the
                    network is up.
            -->
            <dependency
                    name='basic_network'
                    grouping='require_all'
                    restart_on='none'
                    type='service'>
            <service_fmri value='svc:/milestone/network' />
            </dependency>
    
            <exec_method
                    type='method'
                    name='start'
                    exec='/usr/sbin/ndd -set /dev/ip ip_strict_dst_multihoming 1'
    <!--    
         For an IPv6 network, use the IPv6 version of this command, as in:
                    exec='/usr/sbin/ndd -set /dev/ip ip6_strict_dst_multihoming 1
    -->
                    timeout_seconds='60'
            />
    
            <exec_method
                    type='method'
                    name='stop'
                    exec=':true'
                    timeout_seconds='3'
            />
    
            <property_group name='startd' type='framework'>
                    <propval
                            name='duration'
                            type='astring'
                            value='transient'
                    />
            </property_group>
    
            <stability value='Unstable' />
    
    </service>
    </service_bundle>
  3. 将此清单导入到 SMF 系统信息库。


    # svccfg import /var/svc/manifest/site/spoof_check.xml
    
  4. 启用 ip_spoofcheck 服务。

    使用在清单中定义的名称 /site/ip_spoofcheck


    # svcadm enable /site/ip_spoofcheck
    
  5. 检验 ip_spoofcheck 服务是否联机。


    # svcs /site/ip_spoofcheck