在传输模式下,外部头决定保护内部 IP 包的 IPsec 策略。
此过程扩展了如何使用 IPsec 保证两个系统之间的通信安全过程。除了连接两个系统之外,还要连接两个连接到这两个系统的内联网。此过程中的系统作为网关使用。
此过程使用用于保护 VPN 的 IPsec 任务的网络拓扑说明中介绍的设置。有关运行特定命令的更详尽的原因说明,请参见如何使用通过 IPv4 实现的处于隧道模式的 IPsec 隧道保护 VPN中的相应步骤。
在两个系统中执行此过程中的步骤。
在系统控制台上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。
在配置 IPsec 之前控制包流。
# 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 严格目标多宿主。
# ndd -set /dev/ip ip_strict_dst_multihoming 1 |
系统引导时,会将 ip_strict_dst_multihoming 的值恢复为缺省值。要使更改的值具有持久性,请参见如何防止 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 |
在两个系统间添加一对 SA。
选择以下选项之一:
将 IKE 配置为管理 SA 的密钥。请使用配置 IKE(任务列表)中的过程之一来为 VPN 配置 IKE。
如果您有充分的理由来手动管理密钥,请参见如何手动创建 IPsec 安全关联。
添加 IPsec 策略。
编辑 /etc/inet/ipsecinit.conf 文件来为 VPN 添加 IPsec 策略。要增强策略,请参见示例 20–15。
在 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} |
在 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} |
(可选的)检验 IPsec 策略文件的语法。
# ipsecconf -c -f /etc/inet/ipsecinit.conf |
要配置隧道并使用 IPsec 对其加以保护,请根据 Solaris 发行版执行相应步骤:
使用创建的 IPsec 策略保护隧道。
# svcadm refresh svc:/network/ipsec/policy:default |
要将 hostname.ip.tun0 文件的内容读入内核,请重新启动网络服务。
# svcadm restart svc:/network/initial:default |
确保路由协议不在内联网内通告缺省的路由。
手动添加通过 hme0 实现的缺省路由。
要完成该过程,请转至步骤 22 运行路由协议。
配置隧道 ip.tun0。
以下步骤用于在运行 Solaris 10 4/09 发行版之前的发行版的系统中配置隧道。
使用 ifconfig 命令创建点对点接口:
# ifconfig ip.tun0 plumb # ifconfig ip.tun0 system1-point system2-point \ tsrc system1-taddr tdst system2-taddr |
使用创建的 IPsec 策略保护隧道。
# ipsecconf |
初启隧道的路由器。
# ifconfig ip.tun0 router up |
为 hme1 接口打开 IP 转发功能。
# ifconfig hme1 router |
确保路由协议不在内联网内通告缺省的路由。
# ifconfig hme0 private |
手动添加通过 hme0 实现的缺省路由。
缺省路由必须是可以直接访问 Internet 的路由器。
# route add default router-on-hme0-subnet |
通过向 /etc/hostname.ip.tun0 文件中添加项来确保 VPN 在系统重新引导后启动。
system1-point system2-point tsrc system1-taddr \ tdst system2-taddr encr_algs aes encr_auth_algs sha1 router up |
将接口文件配置为将正确的参数传送到路由选择守护进程。
在 enigma 系统上,修改 /etc/hostname.interface 文件。
# cat /etc/hostname.hme0 ## enigma 10.16.16.6 private |
# cat /etc/hostname.hme1 ## enigma 192.168.116.16 router |
在 partym 系统上,修改 /etc/hostname.interface 文件。
# 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 |
在此示例中,管理员注释掉了在步骤 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} |
在此示例中,管理员将 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 |