跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中保护网络安全 Oracle Solaris 11.1 Information Library (简体中文) |
Oracle Solaris 可以配置受 IPsec 保护的 VPN。可在隧道模式或传输模式下创建隧道。有关介绍,请参见IPsec 中的传输模式和隧道模式。本节中的示例和过程使用 IPv4 地址,但这些示例和过程同样适用于 IPv6 VPN。有关简短介绍,请参见使用 IPsec 保护通信。
有关处于隧道模式的隧道的 IPsec 策略的示例,请参见在隧道模式下使用 IPsec 保护 VPN 的示例。
图 7-1 受 IPsec 保护的隧道
以下示例假设这些 LAN 的所有子网都配置了隧道:
## Tunnel configuration ## # Tunnel name is tun0 # Intranet point for the source is 10.1.2.1 # Intranet point for the destination is 10.2.3.1 # Tunnel source is 192.168.1.10 # Tunnel destination is 192.168.2.10
# Tunnel name address object is tun0/to-central # Tunnel name address object is tun0/to-overseas
示例 7-2 创建一个所有子网都可以使用的隧道
在此示例中,来自图 7-1 中的中心 LAN 的本地 LAN 的所有通信都可以通过隧道从路由器 1 传送到路由器 2,然后再传送到国外 LAN 的所有本地 LAN。通信使用 AES 进行加密。
## IPsec policy ## {tunnel tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}
示例 7-3 创建一个仅连接两个子网的隧道
在此示例中,仅为中心 LAN 的子网 10.1.2.0/24 和国外 LAN 的子网 10.2.3.0/24 之间的通信建立了隧道并对通信进行了加密。在中心 LAN 没有其他 IPsec 策略的情况下,如果中心 LAN 尝试通过此隧道路由其他 LAN 的任何通信,则通信会在路由器 1 处被丢弃。
## IPsec policy ## {tunnel tun0 negotiate tunnel laddr 10.1.2.0/24 raddr 10.2.3.0/24} ipsec {encr_algs aes encr_auth_algs sha512 shared}
本节中的过程假设您已经进行了以下设置。有关此网络的描述,请参见图 7-2。
每个系统都使用 IPv4 地址空间。
每个系统都有两个接口。net0 接口连接到 Internet。在此示例中,Internet IP 地址以 192.168 开始。net1 接口连接到公司的 LAN(即公司的内联网)。在此示例中,内联网 IP 地址以数字 10 开始。
每个系统都需要采用 SHA-2 算法的 ESP 验证。在此示例中,SHA-2 算法需要 512 位的密钥。
每个系统都需要采用 AES 算法的 ESP 加密。AES 算法使用 128 位或 256 位的密钥。
每个系统都可以连接到能直接访问 Internet 的路由器。
每个系统都使用共享安全关联。
图 7-2 通过 Internet 连接的办公室之间的 VPN 样例
如上图所示,这些过程使用以下配置参数。
|
有关隧道名称的信息,请参见《配置和管理 Oracle Solaris 11.1 网络》中的"使用 dladm 命令进行隧道配置和管理"。有关地址对象的信息,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何配置 IP 接口"和 ipadm(1M) 手册页。
在隧道模式下,内部 IP 包决定保护其内容的 IPsec 策略。
此过程扩展了如何使用 IPsec 保证两个系统之间的通信安全过程。用于保护 VPN 的 IPsec 任务的网络拓扑说明介绍了具体设置。
有关运行特定命令的更详尽的原因说明,请参见如何使用 IPsec 保证两个系统之间的通信安全中的相应步骤。
注 - 在两个系统中执行此过程中的步骤。
除了连接两个系统之外,还要连接两个连接到这两个系统的内联网。此过程中的系统作为网关使用。
注 - 要在 Trusted Extensions 系统上在隧道模式下使用带标签的 IPsec,请参见《Trusted Extensions 配置和管理》中的"如何通过不可信网络配置隧道"中此过程的扩展。
开始之前
必须位于全局区域中才能为系统或共享 IP 区域配置 IPsec 策略。对于专用 IP 区域,请在非全局区域中配置 IPsec 策略。
要运行配置命令,您必须成为分配有 "Network Management"(网络管理)和 "Network IPsec Management"(网络 IPsec 管理)权限配置文件的管理员。要编辑系统文件,您必须承担 root 角色。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"。
如果您以远程方式登录,请使用 ssh 命令实现安全的远程登录。有关示例,请参见示例 7-1。
# routeadm -d ipv4-routing # ipadm set-prop -p forwarding=off ipv4 # routeadm -u
关闭 IP 转发功能可阻止包通过此系统从一个网络转发到另一个网络。有关 routeadm 命令的说明,请参见 routeadm(1M) 手册页。
# ipadm set-prop -p hostmodel=strong ipv4
打开 IP 严格多宿主要求发往系统的目标地址之一的包到达正确的目标地址。
当 hostmodel 参数设置为 strong 时,到达特定接口的包的地址必须为该接口的本地 IP 地址之一。所有其他包,甚至是传送到系统其他本地地址的包,均被丢弃。
检验回送挂载和 ssh 服务是否正在运行。
# svcs | grep network online Aug_02 svc:/network/loopback:default … online Aug_09 svc:/network/ssh:default
编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。有关其他示例,请参见在隧道模式下使用 IPsec 保护 VPN 的示例。
在此策略中,本地 LAN 上的系统与网关的内部 IP 地址之间不需要 IPsec 保护,因此将添加 bypass 语句。
# 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-2. {tunnel tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}
# 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-2. {tunnel tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}
按照配置 IKE(任务列表)中的配置过程之一来配置 IKE。有关 IKE 配置文件的语法,请参见 ike.config(4) 手册页。
# ipsecconf -f -c /etc/inet/ipsecinit.conf
修复任何错误、检验文件的语法,然后继续。
# svcadm refresh svc:/network/ipsec/policy:default
IPsec 策略缺省情况下处于启用状态,因此要对其进行刷新。如果您已禁用了 IPsec 策略,请将其启用。
# svcadm enable svc:/network/ipsec/policy:default
以下命令用于配置内部接口和外部接口、创建 tun0 隧道并为该隧道指定 IP 地址。
如果接口 net1 不存在,第一个命令将会创建该接口。
# ipadm create-addr -T static -a local=10.1.3.3 net1/inside # dladm create-iptun -T ipv4 -a local=10.1.3.3,remote=10.16.16.6 tun0 # ipadm create-addr -T static \ -a local=192.168.13.213,remote=192.168.116.16 tun0/v4tunaddr
# ipadm create-addr -T static -a local=10.16.16.6 net1/inside # dladm create-iptun -T ipv4 -a local=10.16.16.6,remote=10.1.3.3 tun0 # ipadm create-addr -T static \ -a local=192.168.116.16,remote=192.168.13.213 tun0/v4tunaddr
注 - ipadm 命令的 -T 选项用于指定要创建的地址类型。dladm 命令的 -T 选项用于指定该隧道。
有关这些命令的信息,请参见 dladm(1M) 和 ipadm(1M) 手册页以及《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何配置 IP 接口"。有关定制名称的信息,请参见《Oracle Solaris 管理:网络接口和网络虚拟化》中的"网络设备和数据链路名称"。
# ipadm set-ifprop -m ipv4 -p forwarding=on net1 # ipadm set-ifprop -m ipv4 -p forwarding=off net0
IP 转发指可以转发来自其他位置的包。IP 转发也指由此接口发出的包可能源于其他位置。要成功转发包,必须打开接收接口和传送接口的 IP 转发功能。
因为 net1 接口在内联网内部,所以必须打开 net1 的 IP 转发功能。由于 tun0 通过 Internet 连接两个系统,因此 IP 转发必须对 tun0 保持打开状态。net0 接口已关闭其 IP 转发功能以阻止外部入侵者向受保护的内联网中注入包。外部是指 Internet。
# ipadm set-addrprop -p private=on net0
即使 net0 关闭 IP 转发功能,路由协议实现仍会通告接口。例如,in.routed 协议仍会通告 net0 可将包转发到内联网中的对等接口。可以通过设置接口的专用标志,阻止这些通告。
# svcadm restart svc:/network/initial:default
缺省路由必须是可以直接访问 Internet 的路由器。
# route -p add net default 192.168.13.5
# route -p add net default 192.168.116.4
即使 net0 接口不是内联网的一部分,net0 也需要通过 Internet 访问其同级系统。要找到其同级系统,net0 需要有关 Internet 路由的信息。对于 Internet 的其他部分来说,VPN 系统像是一台主机,而不是路由器。因此,您可以使用缺省的路由器或运行路由器搜索协议来查找同级系统。有关更多信息,请参见 route(1M) 和 in.routed(1M) 手册页。