在运行 Web 服务器的系统上可以使用 IPsec 保护除 Web 客户机请求以外的所有通信。受保护的网络通信通常发生在 Web 服务器和其他后端服务器之间。
除了允许 Web 客户机绕过 IPsec 外,此过程中的 IPsec 策略还允许服务器发出 DNS 客户机请求。所有其他通信均受 IPsec 保护。
开始之前
此过程假设您已完成了如何使用 IPsec 保护两台服务器之间的网络通信 中在两台服务器上配置 IPsec 的步骤,因此以下条件会生效:
每个系统均为有固定地址的全局区域或专用 IP 区域。有关更多信息,请参见IPsec 和 Oracle Solaris 区域。
与 Web 服务器的通信已受 IPsec 保护。
生成了加密材料。
已检验是否对包进行了保护。
拥有特定权限的用户可以运行这些命令,不必成为 root。
要运行配置命令,您必须成为分配有 "Network IPsec Management"(网络 IPsec 管理)权限配置文件的管理员。
要编辑与 IPsec 相关的系统文件和创建密钥,请使用 pfedit 命令。
要编辑 hosts 文件,您必须承担 root 角色或拥有编辑此文件的显式权限。
有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
如果执行远程管理,请参见Example 7–1 和在 Oracle Solaris 11.2 中管理安全 Shell 访问 中的如何使用安全 Shell 远程管理 ZFS,了解进行安全的远程登录的说明。
对于 Web 服务器,这些服务包括 TCP 端口 80 (HTTP) 和 443 (安全 HTTP)。如果 Web 服务器提供 DNS(域名系统)名称查找,则服务器还可能需要针对 TCP(传输控制协议)和 UDP(用户数据报协议)包括端口 53。
将以下行添加到 ipsecinit.conf 文件:
# pfedit /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-2. # Use a unique SA for outbound traffic from the port {} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}
此配置仅允许安全通信访问系统,绕过检查的例外情况在Step 1 中进行了介绍。
# ipsecconf -c /etc/inet/ipsecinit.conf
# svcadm refresh ipsec/policy
重新启动 ike 服务。
# svcadm restart ike:ikev2
如果手动配置了密钥,请按照如何手动创建 IPsec 密钥中的说明操作。
您的设置已完成。
将以下行添加到远程系统的 /etc/inet/ipsecinit.conf 文件:
## Communicate with web server about nonweb stuff ## {raddr webserver} ipsec {encr_algs aes encr_auth_algs sha512 sa shared}
验证语法,然后刷新 IPsec 策略将其激活。
remote-system # ipsecconf -c /etc/inet/ipsecinit.conf remote-system # svcadm refresh ipsec/policy
仅当系统的 IPsec 策略匹配时,远程系统才能与 Web 服务器安全地进行非 Web 通信。
# ipsecconf -L -n