跳过导航链接 | |
退出打印视图 | |
系统管理指南:IP 服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
1. Oracle Solaris TCP/IP 协议套件(概述)
5. 配置 TCP/IP 网络服务和 IPv4 寻址(任务)
如何使用 IPsec 保护 Web 服务器使之免受非 Web 通信影响
使用 IPsec 保护 VPN 的示例(使用处于隧道模式的隧道)
如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN
如何使用通过 Ipv6 实现的处于隧道模式的 IPsec 隧道保护 VPN
如何使用通过 IPv4 实现的处于传输模式的 IPsec 隧道保护 VPN
25. Oracle Solaris 中的 IP 过滤器(概述)
以下任务列表列出了配置 IPsec 以保护 Internet 上的通信的相关过程的参考链接。可使用这些过程在由 Internet 分隔的两个系统之间设置安全的虚拟专用网络 (virtual private network, VPN)。该技术的一种常见用途是确保在家里办公的员工与其公司办公室之间的通信安全。
|
本节中的过程假设您已经进行了以下设置。有关此网络的描述,请参见图 20-2。
每个系统都使用 IPv4 地址空间。
有关使用 IPv6 地址的类似示例,请参见如何使用通过 Ipv6 实现的处于隧道模式的 IPsec 隧道保护 VPN。
每个系统都有两个接口。hme0 接口连接到 Internet。在此示例中,Internet IP 地址以 192.168 开始。hme1 接口连接到公司的 LAN(即公司的内联网)。在此示例中,内联网 IP 地址以数字 10 开始。
每个系统都需要采用 SHA–1 算法的 ESP 验证。SHA–1 算法需要 160 位的密钥。
每个系统都需要采用 AES 算法的 ESP 加密。AES 算法使用 128 位或 256 位的密钥。
每个系统都可以连接到能直接访问 Internet 的路由器。
每个系统都使用共享安全关联。
图 20-2 由 Internet 分隔的办公室之间的 VPN 样例
如前面的说明所示,IPv4 网络过程使用以下配置参数。
|
下面的 IPv6 地址在过程中使用。隧道名称相同。
|
在隧道模式下,内部 IP 包决定保护其内容的 IPsec 策略。
此过程扩展了如何使用 IPsec 保证两个系统之间的通信安全过程。用于保护 VPN 的 IPsec 任务的网络拓扑说明介绍了具体设置。
注 - 在两个系统中执行此过程中的步骤。
除了连接两个系统之外,还要连接两个连接到这两个系统的内联网。此过程中的系统作为网关使用。
开始之前
必须位于全局区域中才能为系统或共享 IP 区域配置 IPsec 策略。对于专用 IP 区域,请在非全局区域中配置 IPsec 策略。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
注 - 远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
# 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) 手册页。
# ndd -set /dev/ip ip_strict_dst_multihoming 1
打开 IP 严格目标多宿主可确保发往系统的目标地址之一的包到达正确的目标地址。
启用严格目标多宿主时,到达特定接口的包必须传送到此接口的本地 IP 地址之一。所有其他包,甚至是传送到系统其他本地地址的包,均被丢弃。
注 - 如果系统中安装了“受限制的”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
检验回送挂载和 ssh 服务是否正在运行。
# svcs | grep network online Aug_02 svc:/network/loopback:default … online Aug_09 svc:/network/ssh:default
选择以下选项之一:
将 IKE 配置为管理 SA 的密钥。请使用配置 IKE(任务列表)中的过程之一来为 VPN 配置 IKE。
如果您有充分的理由来手动管理密钥,请参见如何手动创建 IPsec 安全关联。
编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。要增强策略,请参见示例 20-12。有关其他示例,请参见使用 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-1. {tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1 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-1. {tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
此文件的语法如下所示:
system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
192.168.116.16 router
192.168.13.213 router
IP 转发指可以转发来自其他位置的包。IP 转发也指由此接口发出的包可能源于其他位置。要成功转发包,必须打开接收接口和传送接口的 IP 转发功能。
因为 hme1 接口在内联网内部,所以必须打开 hme1 的 IP 转发功能。因为 ip.tun0 通过 Internet 连接两个系统,所以必须打开 ip.tun0 的 IP 转发功能。
hme0 接口已关闭其 IP 转发功能以阻止外部入侵者向受保护的内联网中注入包。外部是指 Internet。
10.16.16.6 private
10.1.3.3 private
即使 hme0 关闭 IP 转发功能,路由协议实现仍会通告接口。例如,in.routed 协议仍会通告 hme0 可将包转发到内联网中的对等接口。可以通过设置接口的专用标志,阻止这些通告。
缺省路由必须是可以直接访问 Internet 的路由器。
# route add default 192.168.116.4
# route add default 192.168.13.5
即使 hme0 接口不是内联网的一部分,hme0 也需要通过 Internet 访问其同级系统。要找到其同级系统,hme0 需要有关 Internet 路由的信息。对于 Internet 的其他部分来说,VPN 系统像是一台主机,而不是路由器。因此,您可以使用缺省的路由器或运行路由器搜索协议来查找同级系统。有关更多信息,请参见 route(1M) 和 in.routed(1M) 手册页。
注 - 以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。
使用 ifconfig 命令创建点对点接口:
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 system1-point system2-point \ tsrc system1-taddr tdst system2-taddr
# 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
# 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
# ipsecconf
# ifconfig ip.tun0 router up
# ifconfig hme1 router
IP 转发指可以转发来自其他位置的包。IP 转发也指由此接口发出的包可能源于其他位置。要成功转发包,必须打开接收接口和传送接口的 IP 转发功能。
因为 hme1 接口在内联网内部,所以必须打开 hme1 的 IP 转发功能。因为 ip.tun0 通过 Internet 连接两个系统,所以必须打开 ip.tun0 的 IP 转发功能。
hme0 接口已关闭其 IP 转发功能以阻止外部入侵者向受保护的内联网中注入包。外部是指 Internet。
# ifconfig hme0 private
即使 hme0 关闭 IP 转发功能,路由协议实现仍会通告接口。例如,in.routed 协议仍会通告 hme0 可将包转发到内联网中的对等接口。可以通过设置接口的专用标志,阻止这些通告。
缺省路由必须是可以直接访问 Internet 的路由器。
# route add default 192.168.116.4
# route add default 192.168.13.5
即使 hme0 接口不是内联网的一部分,hme0 也需要通过 Internet 访问其同级系统。要找到其同级系统,hme0 需要有关 Internet 路由的信息。对于 Internet 的其他部分来说,VPN 系统像是一台主机,而不是路由器。因此,您可以使用缺省的路由器或运行路由器搜索协议来查找同级系统。有关更多信息,请参见 route(1M) 和 in.routed(1M) 手册页。
system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
# cat /etc/hostname.hme0 ## enigma 10.16.16.6 private
# cat /etc/hostname.hme1 ## enigma 192.168.116.16 router
# cat /etc/hostname.hme0 ## partym 10.1.3.3 private
# cat /etc/hostname.hme1 ## partym 192.168.13.213 router
# routeadm -e ipv4-routing # routeadm -u
您可能需要在运行路由协议之前先配置路由协议。有关更多信息,请参见Oracle Solaris 中的路由协议。有关过程,请参见如何配置 IPv4 路由器。
示例 20-10 测试时创建临时隧道
在此示例中,管理员在 Solaris 10 4/09 系统中测试隧道的创建情况。稍后,管理员将使用如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN过程使隧道成为永久隧道。在测试过程中,管理员在系统 system1 和 system2 上执行以下一系列步骤:
在两个系统上,管理员完成如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN的前五步。
管理员使用 ifconfig 命令检测并配置临时隧道。
system1 # ifconfig ip.tun0 plumb system1 # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213 # ssh system2 Password: admin-password-on-system2 system2 # ifconfig ip.tun0 plumb system2 # ifconfig ip.tun0 10.1.3.3 10.16.16.6 \ tsrc 192.168.13.213 tdst 192.168.116.16
管理员对隧道启用 IPsec 策略。该策略是在如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN的步骤 4 中创建的。
system1 # svcadm refresh svc:/network/ipsec/policy:default system2 # svcadm refresh svc:/network/ipsec/policy:default
管理员使 Internet 接口成为路由器,并防止路由协议通过内联网接口传送。
system1 # ifconfig hme1 router ; ifconfig hme0 private system2 # ifconfig hme1 router ; ifconfig hme0 private
管理员在两个系统上通过完成如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN的步骤 12 和步骤 22,手动添加路由并运行路由协议。
示例 20-11 使用命令行为早期版本的 Solaris 系统创建隧道
在 Solaris 10 7/07 发行版中,简化了 ifconfig 命令的语法。在此示例中,管理员将针对运行 Solaris 10 7/07 发行版之前的 Solaris 版本的系统测试隧道创建情况。通过使用 ifconfig 命令的原始语法,管理员可以在两个通信系统中使用完全相同的命令。稍后,管理员将使用如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN使隧道成为永久隧道。
在测试过程中,管理员在系统 system1 和 system2 上执行以下步骤:
在两个系统上,管理员完成如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN的前五步。
管理员检测并配置隧道。
system1 # ifconfig ip.tun0 plumb system1 # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \ tsrc 192.168.116.16 tdst 192.168.13.213 \ encr_algs aes encr_auth_algs sha1 system1 # ifconfig ip.tun0 router up
# ssh system2 Password: admin-password-on-system2 system2 # ifconfig ip.tun0 plumb system2 # ifconfig ip.tun0 10.1.3.3 10.16.16.6 \ tsrc 192.168.13.213 tdst 192.168.116.16 \ encr_algs aes encr_auth_algs sha1 system2 # ifconfig ip.tun0 router up
管理员对隧道启用 IPsec 策略。该策略是在如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN的步骤 4 中创建的。
system1 # svcadm refresh svc:/network/ipsec/policy:default system2 # svcadm refresh svc:/network/ipsec/policy:default
管理员使 Internet 接口成为路由器,并防止路由协议通过内联网接口传送。
system1 # ifconfig hme1 router ; ifconfig hme0 private system2 # ifconfig hme1 router ; ifconfig hme0 private
管理员在两个系统上通过完成如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN的步骤 12 和步骤 22 来添加路由。
示例 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}
要在 IPv6 网络中设置 VPN,您需要执行与针对 IPv4 网络执行的步骤相同的步骤。但是,命令的语法稍有不同。有关运行特定命令的更详尽的原因说明,请参见如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN中的相应步骤。
注 - 在两个系统中执行此过程中的步骤。
此过程使用以下配置参数。
|
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
注 - 远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
有关这些命令的作用,请参见步骤 2中的如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN。
# 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
# ndd -set /dev/ip ip6_strict_dst_multihoming 1
注 - 如果系统中安装了“受限制的”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
检验回送挂载和 ssh 服务是否正在运行。
# svcs | grep network online Aug_02 svc:/network/loopback:default ... online Aug_09 svc:/network/ssh:default
选择以下选项之一:
将 IKE 配置为管理 SA 的密钥。请使用配置 IKE(任务列表)中的过程之一来为 VPN 配置 IKE。
如果您有充分的理由来手动管理密钥,请参见如何手动创建 IPsec 安全关联。
编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。
# 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}
# 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}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
2001::aaaa:6666:6666 inet6 router
2001::eeee:3333:3333 inet6 router
6000:6666::aaaa:1116 inet6 private
6000:3333::eeee:1113 inet6 private
注 - 以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。
# 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
# 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
# ipsecconf
# ifconfig ip6.tun0 router up
# ifconfig hme1 router
# ifconfig hme0 private
缺省路由必须是可以直接访问 Internet 的路由器。
该项复制在步骤 14 中传递到 ifconfig 命令的参数。
6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 \ tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# cat /etc/hostname6.hme0 ## enigma 6000:6666::aaaa:1116 inet6 private
# cat /etc/hostname6.hme1 ## enigma 2001::aaaa:6666:6666 inet6 router
# cat /etc/hostname6.hme0 ## partym 6000:3333::eeee:1113 inet6 private
# cat /etc/hostname6.hme1 ## partym 2001::eeee:3333:3333 inet6 router
# routeadm -e ipv6-routing # routeadm -u
您可能需要在运行路由协议之前先配置路由协议。有关更多信息,请参见Oracle Solaris 中的路由协议。有关过程,请参见配置 IPv6 路由器。
在传输模式下,外部头决定保护内部 IP 包的 IPsec 策略。
此过程扩展了如何使用 IPsec 保证两个系统之间的通信安全过程。除了连接两个系统之外,还要连接两个连接到这两个系统的内联网。此过程中的系统作为网关使用。
此过程使用用于保护 VPN 的 IPsec 任务的网络拓扑说明中介绍的设置。有关运行特定命令的更详尽的原因说明,请参见如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN中的相应步骤。
注 - 在两个系统中执行此过程中的步骤。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
注 - 远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
# 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
# ndd -set /dev/ip ip_strict_dst_multihoming 1
注 - 如果系统中安装了“受限制的”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
检验回送挂载和 ssh 服务是否正在运行。
# svcs | grep network online Aug_02 svc:/network/loopback:default … online Aug_09 svc:/network/ssh:default
选择以下选项之一:
将 IKE 配置为管理 SA 的密钥。请使用配置 IKE(任务列表)中的过程之一来为 VPN 配置 IKE。
如果您有充分的理由来手动管理密钥,请参见如何手动创建 IPsec 安全关联。
编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。要增强策略,请参见示例 20-15。
# 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}
# 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}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
192.168.116.16 router
192.168.13.213 router
10.16.16.6 private
10.1.3.3 private
注 - 以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。
使用 ifconfig 命令创建点对点接口:
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 system1-point system2-point \ tsrc system1-taddr tdst system2-taddr
# 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
# 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
# ipsecconf
# ifconfig ip.tun0 router up
# ifconfig hme1 router
# ifconfig hme0 private
缺省路由必须是可以直接访问 Internet 的路由器。
# route add default router-on-hme0-subnet
system1-point system2-point tsrc system1-taddr \ tdst system2-taddr encr_algs aes encr_auth_algs sha1 router up
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 \ tdst 192.168.13.213 router up
10.1.3.3 10.16.16.6 tsrc 192.168.13.213 \ tdst 192.168.116.16 router up
# cat /etc/hostname.hme0 ## enigma 10.16.16.6 private
# cat /etc/hostname.hme1 ## enigma 192.168.116.16 router
# cat /etc/hostname.hme0 ## partym 10.1.3.3 private
# cat /etc/hostname.hme1 ## partym 192.168.13.213 router
# 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过程进行操作,但在语法上进行了以下更改。
对于步骤 4,ipsecinit.conf 文件的语法如下所示:
# LAN traffic to and from this address can bypass IPsec. {laddr 10.1.3.3 dir both} bypass {} # WAN traffic uses ESP with AES and SHA-1. {} ipsec {encr_algs aes encr_auth_algs sha1}
# 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 \ encr_algs aes encr_auth_algs sha1 # ifconfig ip.tun0 router up
# 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 \ encr_algs aes encr_auth_algs sha1
传送到 ifconfig 命令的 IPsec 策略必须与 ipsecinit.conf 文件中的 IPsec 策略相同。在重新引导时,每个系统都会读取 ipsecinit.conf 文件来获取其策略。
对于步骤 20,hostname.ip.tun0 文件的语法如下所示:
10.16.16.6 10.1.3.3 tsrc 192.168.116.16 \ tdst 192.168.13.213 encr_algs aes encr_auth_algs sha1 router up
要在 IPv6 网络中设置 VPN,您需要执行与针对 IPv4 网络执行的步骤相同的步骤。但是,命令的语法稍有不同。有关运行特定命令的更详尽的原因说明,请参见如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN中的相应步骤。
注 - 在两个系统中执行此过程中的步骤。
此过程使用以下配置参数。
|
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
注 - 远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
# 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
# ndd -set /dev/ip ip6_strict_dst_multihoming 1
检验回送挂载和 ssh 服务是否正在运行。
# svcs | grep network online Aug_02 svc:/network/loopback:default … online Aug_09 svc:/network/ssh:default
选择以下选项之一:
将 IKE 配置为管理 SA 的密钥。请使用配置 IKE(任务列表)中的过程之一来为 VPN 配置 IKE。
如果您有充分的理由来手动管理密钥,请参见如何手动创建 IPsec 安全关联。
编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。
# 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}
# 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}
# ipsecconf -c -f /etc/inet/ipsecinit.conf
6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# svcadm refresh svc:/network/ipsec/policy:default
# svcadm restart svc:/network/initial:default
2001::aaaa:6666:6666 inet6 router
2001::eeee:3333:3333 inet6 router
6000:6666::aaaa:1116 inet6 private
6000:3333::eeee:1113 inet6 private
注 - 以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。
# 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
# 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
# ipsecconf
# ifconfig ip6.tun0 router up
# ifconfig hme1 router
# ifconfig hme0 private
缺省路由必须是可以直接访问 Internet 的路由器。
该项复制在步骤 14 中传递到 ifconfig 命令的参数。
6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
6000:3333::eeee:1113 6000:6666::aaaa:1116 \ tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
# cat /etc/hostname6.hme0 ## enigma 6000:6666::aaaa:1116 inet6 private
# cat /etc/hostname6.hme1 ## enigma 2001::aaaa:6666:6666 inet6 router
# cat /etc/hostname6.hme0 ## partym 6000:3333::eeee:1113 inet6 private
# cat /etc/hostname6.hme1 ## partym2001::eeee:3333:3333 inet6 router
# routeadm -e ipv6-routing # routeadm -u
示例 20-17 使用过时的语法配置通过 IPv6 实现的处于传输模式的 IPsec
在此示例中,管理员将 Solaris 10 7/07 系统与运行 Solaris 10 发行版的系统连接在一起。因此,管理员在配置文件中使用 Solaris 10 语法,并在 ifconfig 命令中包含 IPsec 算法。
管理员按照如何使用通过 Ipv6 实现的处于传输模式的 IPsec 隧道保护 VPN过程进行操作,但在语法上进行了以下更改。
对于步骤 4,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. {} ipsec {encr_algs aes encr_auth_algs sha1}
# 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 \ encr_algs aes encr_auth_algs sha1 # ifconfig ip6.tun0 inet6 router up
传送到 ifconfig 命令的 IPsec 策略必须与 ipsecinit.conf 文件中的 IPsec 策略相同。在重新引导时,每个系统都会读取 ipsecinit.conf 文件来获取其策略。
对于步骤 20,hostname6.ip6.tun0 文件的语法如下所示:
6000:6666::aaaa:1116 6000:3333::eeee:1113 \ tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 \ encr_algs aes encr_auth_algs sha1 router up
要防止系统在未尝试对包进行解密的情况下将包转发至另一个接口,系统需要检查 IP 电子欺骗。一种预防方法是使用 ndd 命令设置 IP 严格目标多宿主参数。在 SMF 清单中设置了此参数时,系统重新引导时就会设置此参数。
注 - 在两个系统中执行此过程中的步骤。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
使用以下样例脚本 /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>
# svccfg import /var/svc/manifest/site/spoof_check.xml
使用在清单中定义的名称 /site/ip_spoofcheck。
# svcadm enable /site/ip_spoofcheck
# svcs /site/ip_spoofcheck