最新版本:3.1.3-1

|
概览 |
|
|
目录 |
系统 |
|
类别 |
网关 |
|
用户卷 |
yes |
|
最小 内存 |
96M |
|
操作系统 |
Linux |
|
约束 |
否 |
VPN 是在 IPv4 和 IPv6 网络中运行的虚拟专用网络组件,旨在为网格间通信以及远程访问应用和组件提供安全可靠的通道。 不使用 VPN 通道也可以运行 VPN,在此情况下,VPN 充当明文 IN/OUT 组合网关。 VPN 还可用于无缝互连 IPv4 和 IPv6 CA AppLogic® 网格。 VPN 基于 OpenVPN、OpenSSH 和 Racoon 开源软件包。
VPN 具有三种基本运行模式:server、client 和 both。
VPN 对身份验证和加密支持 IPSec、共享密钥文件、SSL 证书和 ssh 密钥文件。 可以在远程工作站上使用常规 OpenVPN/OpenSSH 客户端连接到 VPN,随即对 CA AppLogic® 上运行的应用的内部组件提供安全访问。 VPN 组件支持生成共享密钥文件、SSL 证书和 ssh 密钥。
要使用 VPN 基于安全 VPN 通道远程访问 CA AppLogic® 应用,可以在客户端计算机上使用 OpenVPN 客户端软件或 OpenSSH(或其他某些兼容软件)。
|
资源 |
最小值 |
最大值 |
默认值 |
|
CPU |
0.1 |
16 |
0.2 |
|
内存 |
96 MB |
32 GB |
96 MB |
|
带宽 |
1 Mbps |
2 Gbps |
250 Mbps |
|
名称 |
dir |
protocol |
说明 |
|
clt |
in |
任何 |
在 VPN 作为客户端运行时,用于要通过外部接口定向的所有传入流量的通用输入。 如果 VPN 配置为在外部接口上建立通道,则发送给 clt 的数据包将定向到建立的通道;如果通道未建立,则将数据包丢弃。 |
|
srv |
out |
任何 |
在 VPN 作为服务器运行时,用于要通过外部接口接收的所有传出流量的通用输出。 在通过 srv 发送之前,将使用 tcp_ports、udp_ports、ssh_ports 和 aux_protocols 属性对所有流量进行筛选。 |
|
fs |
out |
NFS |
访问用于共享文件存储的网络文件系统,在 NFS 上提供读/写文件访问权限。 该卷在组件的文件系统空间中作为 /mnt/fs 挂接,并用于加密密钥和证书的存储。 连接的服务器必须有名为 /mnt/data 的读/写共享。 如果 VPN 以明文模式运行,则不需要数据卷或 NFS 挂接卷。 如果不使用此终端,可以让它保持未连接状态。 |
|
日志 |
out |
CIFS |
访问用于存储访问和错误日志的基于 CIFS 的网络文件系统。 已连接的服务器必须允许匿名登录并拥有名称为 share 的读/写共享。 如果不使用此终端,可以让它保持未连接状态。 |
|
mon |
out |
CCE |
用于发送性能和资源使用统计信息。 如果未使用,则可以保持断开连接状态。 |
常规属性
|
属性名 |
类型 |
说明 |
|
ip_addr |
ip_owned |
定义网关外部接口的 IPv4 地址。 如果 VPN 以仅限 IPv4 模式运行,则该属性是强制性属性。 |
|
网络掩码 |
IP 地址 |
定义外部接口的 IPv4 网络掩码。 如果 VPN 以仅限 IPv4 模式运行,则该属性是强制性属性。 |
|
网关 |
IP 地址 |
定义外部接口的默认 IPv4 网络网关(路由器)。 如果留空,则只能访问与 ip_addr/netmask 在同一子网上的主机。 默认值:空 |
|
ipv6_addr |
字符串 |
定义网关外部接口的 IPv6 地址。 用共八组、每组四个十六进制数字的标准地址表示法指定 IPv6 地址。 一组或任意组 0 值可以替换为两个冒号 (::)。 格式为“地址/网络掩码”,例如 fc00:1234:5678::12/64。 如果 VPN 以仅限 IPv6 模式运行,则该属性是强制性属性。 |
|
ipv6_gateway |
字符串 |
定义外部接口的默认 IPv6 网络网关(路由器)。 如果留空,则只能访问与 ipv6_addr 在同一子网上的主机。 默认值:空 |
|
dns1 |
IP 地址 |
定义 VPN 将 DNS 请求转发到的主要 DNS 服务器。 如果留空,VPN 将使用根 DNS 服务器。 默认值:空 |
|
dns2 |
IP 地址 |
定义当主要服务器不可用时,VPN 将 DNS 请求转发到的备份 DNS 服务器。 如果留空,VPN 将不使用备份 DNS 服务器。 默认值:空 |
重要信息! 必须至少定义一对地址(IPv4 或 IPv6)。
VPN 属性
|
属性名 |
类型 |
说明 |
|
mode |
字符串 |
操作方式。 可能值为: |
|
通道 |
字符串 |
要建立的通道的类型。 可能值为: |
|
auth_path |
字符串 |
通道的身份验证信息。 对于操作的共享密钥模式,这是数据卷的共享密钥文件的相对路径(例如“client/secret.key”文件的“secret.key”)。 对于证书模式,这是证书/密钥文件对的相对路径,包括没有扩展名的文件名。 例如:如果证书文件 client1-2009.crt 和 client1-2009.key 位于数据卷的 /client 子目录,则此处必须指定 client1-2009。 如果通道是 cleartext,则忽略该属性。 如果通道是 ssh 密钥,此属性指定 ssh 公用密钥文件(对于 VPN 服务器)或专用密钥文件(对于 VPN 客户端)的路径,包括文件名(例如:为 /client/1/ssh.key 公用密钥文件指定 /1/ssh.key)。 |
|
log_level |
字符串 |
VPN 日志记录级别。 可能值为: |
服务器属性
|
allowed_hosts |
字符串 |
允许连接的主机和/或子网的列表。 使用空格或逗号分隔多个条目。 支持的格式示例:192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0 fc00:1234::12/64。 |
|
tcp_ports |
字符串 |
srv 终端上允许的端口号或端口范围。 接受逗号或空格分隔值字符串。 必须以 lower_port:higher_port 格式指定端口范围,以冒号或短划线作为分隔符(例如:80,81,82:85 86-90)。 特殊值 0 表示接受所有 tcp 端口。 |
|
udp_ports |
字符串 |
与 tcp_ports 相同,但用于 UDP 协议。 |
|
aux_protocols |
字符串 |
允许的其他 IP 协议号的逗号或空格分隔值字符串(例如:6 表示 TCP,47 表示 GRE)。 可以使用名称指定其他协议(例如指定 gre 而不指定 47)。 有关分配的信息,请访问 http://www.iana.org/assignments/protocol-numbers。 |
客户端属性
|
remote_host |
字符串 |
定义所有流量要转发到的远程主机。 可以是主机的 DNS 名称,也可以是以“点”表示法表示的 IPv4 或 IPv6 地址。 此属性是强制性属性。 |
|
dns_poll |
整数 |
VPN 在验证从 remote_host 的 DNS 名称到 IP 地址的映射时使用的轮询时间间隔(秒)(仅在将 remote_host 指定为 DNS 名称时使用)。 设置为 0 将会禁用轮询且不尝试检测更改。 |
|
ssh_ports |
字符串 |
SSH 密钥模式的客户端属性,用于指定要转发到 VPN 服务器的 tcp 端口。 不支持端口范围,可以使用空格或逗号分隔端口。 |
|
名称 |
说明 |
|
data |
包含配置文件和证书文件的读/写数据卷(占位符)。 如果已连接 fs 终端,则不需要该卷。 如果已连接 fs 并已提供数据卷,VPN 将无法启动并记录错误消息。 VPN 服务器操作必需的所有文件都存储在数据存储的 /server/ 子目录中。 VPN 客户端操作必需的所有文件都存储在 /client/ 子目录中。 |
VPN 组件通过 mon 终端报告以下自定义计数器。
|
计数器名称 |
说明 |
|
server_bytes_in |
VPN 接收的总字节数。 |
|
server_bytes_out |
VPN 发送的总字节数。 |
|
client_bytes_in |
从客户端通道接收的总字节数。 |
|
client_bytes_out |
发送至客户端通道的总字节数。 |
|
clients |
连接到 VPN 的客户端的数量。 |
两个测试应用驻留在同一 CA AppLogic® 网格上。 为两个 VPN 组件(客户端和服务器)以及服务器和客户端组件分配了 100 Mb 带宽。 提取了多个对象,每次 10 个对象,每个对象大小为 1 MB,持续时间为 60 秒。
|
模式 |
带宽(Mb/秒) |
对象大小 |
请求数/秒 |
传输速率(MB/秒) |
|
证书 |
100 |
1 MB |
12.5667 |
12.56 |
|
共享密钥 |
100 |
1 MB |
12.5166 |
12.51 |
|
SSH 密钥 |
100 |
1 MB |
12.7667 |
12.76 |
|
明文 |
100 |
1 MB |
13.0329 |
13.03 |
在组件启动失败的情况下,系统日志可能记录以下错误消息:
|
错误消息 |
说明 |
|
无法挂接数据卷 |
VPN 无法挂接数据卷。 验证卷是否已格式化并可用。 |
|
无法生成 server_key |
VPN 无法生成共享密钥文件。 数据卷可能太小,或者是以只读方式挂接的。 |
|
无法启动 OpenVPN 服务器 |
VPN 无法启动 OpenVPN 服务器。 请与 CA Technologies 支持联系。 |
|
无法生成证书。 |
VPN 无法创建证书颁发机构并为证书服务器运行模式生成必要的证书。 数据卷可能太小,或者是以只读方式挂接的。 |
|
无法生成 DH 文件。 |
VPN 无法生成 Diffie-Hellman 密钥文件。 数据卷可能太小,或者是以只读方式挂接的。 |
|
密钥文件 client_auth 不存在 |
在 auth 属性中指定的文件 client_auth 不存在。 验证文件的路径和名称。 |
|
远程服务器地址为空 |
用于通道 X 的远程 VPN 服务器地址为空。 |
|
无法为 clientX 通道启动 OpenVPN |
VPN 无法为客户端通道 X 启动 OpenVPN 软件。 可能有些属性或密钥文件无效。 |
|
证书文件 client_auth.crt 不存在 |
VPN 找不到证书文件。 在 auth 属性中为证书客户端运行模式指定的路径或文件名无效。 |
|
密钥文件 client_auth.key 不存在 |
VPN 找不到密钥文件。 在 auth 属性中为证书客户端运行模式指定的路径或文件名无效。 |
|
缺少证书颁发机构证书 ca_cert |
VPN 找不到证书颁发机构证书。 它应位于数据卷上的 /CA/ca.crt 文件中。 |
明文
该模式支持“单服务器-多客户端”方案,允许从多个位置访问 VPN 服务器。 在该模式中不建立 VPN 通道,也不需要数据存储(数据卷和 NAS 组件都不连接到 fs 终端)。 该模式适用于 IPv4 和 IPv6。
在服务器 VPN 组件上,通过 tcp_ports、udp_ports、aux_protocols 属性对外部接口上接收的流量进行筛选并将其转发到 srv 接口。
在客户端 VPN 组件上,在 clt 接口上接收的所有流量都转发到在 remote_host 属性中指定的远程 VPN 服务器。
必须在服务器端配置的属性:ip_addr、netmask、gateway、mode、tunnel、allowed_hosts、tcp_ports、udp_ports、aux_protocols。
必须在客户端配置的属性:ip_addr、netmask、gateway、mode、tunnel、remote_host。
如果正在使用 IPv6 模式,则必须用客户端的地址来配置服务器端属性 remote_host。
证书
该模式支持“单服务器-多客户端”方案,允许从多个位置访问 VPN 服务器。 需要数据存储(连接到 fs 终端的数据卷或 NAS 组件)。 该模式在 IPv4 和 IPv6 中均适用。
启动后,如果必要的证书和密钥文件不存在,服务器组件会生成这些文件。 可以使用位于 /appliance/ 目录的 security.sh 脚本重新生成这些文件。 在配置任何 VPN 客户端之前,必须为其生成证书。 用户可能会登录到正在运行的 VPN 服务器组件并生成客户端密钥对,如下所述:
grid> comp login VPN-1:main.VPN CentOS 发行版 5(最终) [VPN-1:main.VPN ~]# /appliance/security.sh generate_client 生成的客户端 SSL 证书和密钥文件。 ============================================== 这些文件以及 CA 证书文件应复制到 VPN 服务器的 数据卷或 fs 挂接卷的 /client/ 子目录。 在 auth_path 属性中应指定到客户端文件(client.829de5afcac564b3)的路径。 文件的位置: 客户端证书:/mnt/fs/server/client.829de5afcac564b3.crt 客户端密钥文件:/mnt/fs/server/client.829de5afcac564b3.key CA 证书文件位于 /mnt/fs/server/ca.crt
必须将客户端证书和密钥文件复制到客户端 VPN 组件上数据存储的 /client/ 子目录下,并将 auth_path 设置为适当值,在此示例中为 client.829de5afcac564b3。 还必须将 VPN 服务器 (/mnt/fs/server/ca.crt) 中的 CA 证书复制到客户端组件上的 /client/ 子目录,并将其命名为“ca.crt”。 每个客户端 VPN 组件都应有自己的证书。
在服务器 VPN 组件上,对外部接口上接收的流量解密,通过 tcp_ports、udp_ports、aux_protocols 对其进行筛选并将其转发到 srv 接口。
在客户端 VPN 组件上,对 clt 接口上接收的所有流量加密并将其转发到在 remote_host 属性中指定的远程 VPN 服务器。
必须在服务器端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、allowed_hosts、tcp_ports、udp_ports、aux_protocols。
必须在客户端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、remote_host、auth_path。
该模式只支持“单服务器-单客户端”方案,一次只允许从单个客户端访问 VPN 服务器。 需要数据存储(连接到 fs 终端的数据卷或 NAS 组件)。 该模式在 IPv4 和 IPv6 中均适用。
启动后,如果共享密钥文件 /server/secret.key 不存在,则服务器组件会生成该文件。 可以使用位于 /appliance/ 目录的 security.sh 脚本重新生成该文件。 在配置任何 VPN 客户端之前,必须将该共享密钥文件复制到其数据存储中的 /client/ 子目录。 要生成新的共享密钥文件,用户可以登录到正在运行的 VPN 服务器组件并发出以下命令:
[VPN-1:main.VPN server]# /appliance/security.sh generate_secret 生成的 OpenVPN 共享密钥文件。 ====================================== 该文件应复制到 VPN 服务器的数据卷或 fs 挂接卷的 /server/ 子目录, 以及 VPN 客户端的数据卷或 fs 挂接卷的 /client/ 子目录。 在 VPN 客户端的 auth_path 属性中应指定到它的路径。 文件位置:/mnt/fs/server/secret.key
如果已存在密钥文件,则新生成的密钥文件会覆盖旧文件。 必须将该共享密钥文件 /mnt/fs/server/secret.key 复制到客户端 VPN 组件上数据存储的 /client/ 子目录中,并将 auth_path 属性设置为正确值,在此示例中为 secret.key。 可以配置多个客户端 VPN 组件,但任候时候只能连接一个组件。
在服务器 VPN 组件上,对外部接口上接收的流量解密,通过 tcp_ports、udp_ports、aux_protocols 对其进行筛选并将其转发到 srv 接口。
在客户端 VPN 组件上,对 clt 接口上接收的所有流量加密并将其转发到在 remote_host 属性中指定的远程 VPN 服务器。
必须在服务器端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、allowed_hosts、tcp_ports、udp_ports、aux_protocols。
必须在客户端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、remote_host、auth_path。
该模式支持“单服务器-多客户端”方案,允许从多个位置访问 VPN 服务器。 需要数据存储(连接到 fs 终端的数据卷或 NAS 组件)。 只有 tcp 流量可以通过 ssh 通道传送,因此在服务器端只能使用 tcp_ports 属性。 不支持端口范围-必须在 ssh_ports 客户端属性中显式指定应转发的每个端口。 该模式在 IPv4 和 IPv6 中均适用。
vpn 服务器启动后会生成默认的 ssh 密钥对;默认密钥位于:服务器密钥(公钥):server/ssh-server.pub;客户端密钥(私钥):server/ssh-client.key。可以使用 security.sh 脚本手工生成更多密钥:
[VPN-1:main.VPN ~]# /appliance/security.sh generate_ssh 生成的 SSH 密钥对。 ====================== 公钥应复制到 VPN 服务器的数据卷或 fs 挂接卷的 /server/ 子目录。 私钥应复制到 VPN 客户端的数据卷或 fs 挂接卷的 /client/ 子目录。 在 VPN 客户端和服务器上 auth_path 属性中应指定到密钥文件的路径。 文件的位置: 公钥:/mnt/fs/server/ssh.11179ebbfa3f6852.pub 私钥:/mnt/fs/server/ssh.11179ebbfa3f6852.key
应该将公钥复制到 VPN 服务器的 /server/ 子目录中,将私钥复制到客户端的 /client/ 子目录中。 在客户端和服务器上均应设置 auth_path 属性。 如果服务器上的 auth_path 为空,则使用默认的 SSH 密钥。
在服务器 VPN 组件上,对外部接口上接收的流量解密,通过 ssh_ports 对其进行筛选并将其转发到 srv 接口。 只支持 tcp 端口转发。 auth_path 属性定义要使用的 SSH 公钥。 当组件同时在客户端和服务器模式下工作时,公钥和私钥应该名称相同,并位于 /server/ 和 /client/ 子目录中。 在服务器和客户端上应以相同方式配置 ssh_ports 属性。
在客户端 VPN 组件上,对 clt 接口上接收的所有流量加密并将其转发到在 remote_host 属性中指定的远程 VPN 服务器。
必须在服务器端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、allowed_hosts、auth_path、tcp_ports。
必须在客户端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、remote_host、auth_path、ssh_ports。
重要信息! SSH 服务器-服务器模式。 可以在 both 模式下同时配置两个 VPN 组件,并将它们互相连接。 要使用该模式,必须以特殊方式配置组件:
假设有 2 个组件,名称分别为 VPN1 和 VPN2:1. 创建 2 组公钥/私钥文件(1.key/1.pub,2.key/2.pub,使用“/appliance/security.sh generate_ssh”脚本)2. 在两个组件上将 auth_path 属性配置为“ssh.key”3. 将 2.pub 复制到 VPN1:/mnt/data/server/ssh.key(或复制到 NAS 驱动器的 /server/ 子目录的 ssh.key 文件)(公钥将移到 /server/ 子目录)4. 将 2.key 复制到 VPN2:/mnt/data/client/ssh.key(私钥将移到 /client/ 子目录)5. 将 1.pub 复制到 VPN2:/mnt/data/server/ssh.key(公钥将移到 /server/ 子目录)6. 将 1.key 复制到 VPN1:/mnt/data/client/ssh.key(私钥将移到 /client/ 子目录)。
该模式支持“单服务器-多客户端”方案,允许从多个位置访问 VPN 服务器。 需要数据存储(连接到 fs 终端的数据卷或 NAS 组件)。 该模式仅适用于 IPv4。
启动后,如果必要的证书和密钥文件不存在,服务器组件会生成这些文件。 可以使用位于 /appliance/ 目录的 security.sh 脚本重新生成这些文件。 在配置任何 VPN 客户端之前,必须为其生成证书。 用户可以登录正在运行的 VPN 服务器组件并生成客户端密钥对,如下所述:
grid> comp login VPN-1:main.VPN CentOS 发行版 5(最终) [VPN-1:main.VPN ~]# /appliance/security.sh generate_client 生成的客户端 SSL 证书和密钥文件。 ============================================== 这些文件以及 CA 证书文件应复制到 VPN 服务器的 数据卷或 fs 挂接卷的 /client/ 子目录。 在 auth_path 属性中应指定到客户端文件(client.829de5afcac564b3)的路径。 文件的位置: 客户端证书:/mnt/fs/server/client.829de5afcac564b3.crt 客户端密钥文件:/mnt/fs/server/client.829de5afcac564b3.key CA 证书文件位于 /mnt/fs/server/ca.crt
必须将客户端证书和密钥文件复制到客户端 VPN 组件上数据存储的 /client/ 子目录下,并将 auth_path 设置为适当值,在此示例中为 client.829de5afcac564b3。 还必须将 VPN 服务器 (/mnt/fs/server/ca.crt) 中的 CA 证书复制到客户端组件上的 /client/ 子目录,并将其命名为“ca.crt”。 每个客户端 VPN 组件都应有自己的证书。
重要信息! 在 both 模式下使用 VPN 时,操作将有所不同。 在此情况下,所有证书、客户端和服务器必须由同一 VPN 实例生成,并且与其 ca.crt 证书一起分发到其他实例中。
在服务器 VPN 组件上,对外部接口上接收的流量解密,通过 tcp_ports、udp_ports、aux_protocols 对其进行筛选并将其转发到 srv 接口。
在客户端 VPN 组件上,对 clt 接口上接收的所有流量加密并将其转发到在 remote_host 属性中指定的远程 VPN 服务器。
必须在服务器端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、allowed_hosts、tcp_ports、udp_ports、aux_protocols。
必须在客户端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、remote_host、auth_path。
该模式支持“单服务器-多客户端”方案,允许从多个位置访问 VPN 服务器。 需要数据存储(连接到 fs 终端的数据卷或 NAS 组件)。 该模式仅适用于 IPv4。
启动后,服务器组件提取在 auth_path 属性中指定的文件的第一行,并将其用作共享密钥。 双方都必须存在该文件。 在配置任何 VPN 客户端之前,必须将该共享密钥文件复制到其数据存储中的 /client/ 子目录。
在服务器 VPN 组件上,对外部接口上接收的流量解密,通过 tcp_ports、udp_ports、aux_protocols 对其进行筛选并将其转发到 srv 接口。
在客户端 VPN 组件上,对 clt 接口上接收的所有流量加密并将其转发到在 remote_host 属性中指定的远程 VPN 服务器。
必须在服务器端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、allowed_hosts、tcp_ports、udp_ports、aux_protocols。
必须在客户端配置的属性:ip_addr、netmask、gateway(或对应的 IPv6 属性)、mode、tunnel、remote_host、auth_path。
下图显示了一个说明如何配置对外部服务的远程访问的示例:

在该示例中,在网格 A 上运行的 Web 组件通过安全的 VPN 通道访问在网格 B 上运行的远程 MySQL 数据库。
网格 A 上的 vpn1 配置为连接到为网格 B 上的 vpn2 分配的 IP 地址。 vpn1 的 srv 终端和 vpn2 的 clt 终端一直处于未连接状态。 vpn1 和 vpn2 的外部接口配置了适当的可路由 IP 地址。
示例属性配置:
vpn1:
|
属性名 |
值 |
注释 |
|
ip_addr |
25.74.63.87 |
用于 vpn1 的外部 IP |
|
网络掩码 |
255.255.255.0 |
网络掩码 |
|
网关 |
25.74.63.1 |
网关 |
|
mode |
客户端 |
操作的客户端模式 |
|
tunnel |
ipsec 证书 |
使用 IPSec 对流量加密 |
|
auth_path |
client-7575 |
证书/密钥文件对的名称 |
|
remote_host |
12.12.12.12 |
分配给 vpn2 的外部接口的外部 IP |
vpn2:
|
属性名 |
值 |
注释 |
|
ip_addr |
12.12.12.12 |
用于 vpn2 的外部 IP |
|
网络掩码 |
255.255.255.0 |
网络掩码 |
|
网关 |
12.12.12.1 |
网关 |
|
mode |
服务器 |
操作的服务器模式 |
|
tunnel |
ipsec 证书 |
使用 IPSec 对流量加密 |
|
allowed_hosts |
25.74.63.87 |
只允许来自 vpn1 的连接 |
|
tcp_ports |
3306 |
用于 MySQL 服务器的默认端口 |
下图显示了一个说明如何配置对内部 CA AppLogic® 组件的远程访问的示例:

在该示例中,某个用户需要在其 PC 上使用 OpenVPN 客户端通过安全的 VPN 连接访问几个不同组件。 OpenVPN 用于连接到分配给 vpn 的 IP 地址。 Vpn 与用户的 PC 建立 VPN 通道并将所有传入流量转发到 sw 端口交换机,该交换机配置为将流量分发给应用中的四个不同组件。
访问使用在该示例中所述 VPN 组件的 CA AppLogic® 应用之前,必须先在用户的 PC 上安装 OpenVPN。 以下步骤介绍该应用的配置方式以及用户要通过安全的 VPN 通道访问该应用必须执行的操作:
vpn:
|
属性名 |
值 |
注释 |
|
ip_addr |
28.36.85.21 |
为 VPN 组件分配的 IP 地址 |
|
mode |
服务器 |
操作的服务器模式 |
|
tunnel |
共享密钥 |
使用共享密钥文件 |
|
allowed_hosts |
26.42.56.72 |
客户端 PC 的 IP 地址 |
|
tcp_ports |
0 |
允许所有端口 |
|
udp_ports |
0 |
允许所有端口 |
3. 分配需要通过 sw 组件转发的所需协议和端口。 在此情况下,将 4 个端口(122、422、522、822)转发给连接到 sw 的组件的 ssh 端口:
|
属性名 |
值 |
注释 |
|
out1_protocol |
tcp |
TCP 协议 |
|
out1_in_port |
122 |
传入端口 122 |
|
out1_out_port |
22 |
传出端口 22 |
|
out4_protocol |
tcp |
TCP 协议 |
|
out4_in_port |
422 |
传入端口 422 |
|
out4_out_port |
22 |
传出端口 22 |
|
out5_protocol |
tcp |
TCP 协议 |
|
out5_in_port |
522 |
传入端口 522 |
|
out5_out_port |
22 |
传出端口 22 |
|
out8_protocol |
tcp |
TCP 协议 |
|
out8_in_port |
822 |
传入端口 822 |
|
out8_out_port |
22 |
传出端口 22 |
4. 启动应用。 在启动应用后,从 vpn 组件中提取共享密钥文件:
grid> comp ssh APPLICATION:main.VPN vpn> cat /mnt/data/server/secret.key # # 2048 bit OpenVPN static key # -----BEGIN OpenVPN Static key V1----- 431e845f2ca67f2a31649b20e3ba3291 ... fe991cdbfe82525a9367b9afbfd0f922 -----END OpenVPN Static key V1-----
5. 将上面的 secret.key 的内容粘贴到用户 PC 上的新文件中并保存该文件。 这是用于身份验证的共享密钥文件。
6. 准备客户端 OpenVPN 配置文件。 将以下行复制到用户 PC 上的新文件中(与步骤 5 中文件不同的文件):
dev tun proto udp resolv-retry infinite persist-key persist-tun cipher AES-128-CBC comp-lzo keepalive 10 120 remote 11.22.33.44 1194 secret "C:\\Program Files\\OpenVPN\\sample-config\\secret.key" nobind ifconfig 169.254.215.101 169.254.215.102
Ifconfig 行中的 IP 地址可以为任意地址,前提是它们:a) 来自 169.254.0.0/16 网络块 b) 在同一 /30 子网中 c) 不是 /30 子网中的第一个或最后一个地址。 B 和 C 是对 Windows 平台上运行的 OpenVPN 客户端的限制。
7. 将远程 IP 地址替换为分配给 vpn 组件的 IP 地址。 将密钥行中到共享密钥文件的路径替换为在步骤 5 中创建的密钥文件的路径。 如果在已安装 OpenVPN 的用户 PC 上使用 Microsoft Windows 操作系统,请用引号括起所有行,并将每个斜杠都替换为双斜杠。
8. 启动 OpenVPN 客户端:
c:\program files\OpenVPN\bin\openvpn.exe --config "c:\client.ovpn"
注意:将“c:\client.ovpn”替换为在步骤 6 中创建的配置文件的路径。
9. 在几秒后,您将看到来自 OpenVPN 的以下消息:
Wed Jul 01 09:41:12 2009 Peer Connection Initiated with XX.XX.XX.XX:1194 Wed Jul 01 09:41:12 2009 Initialization Sequence Completed
现在,您可以使用该配置文件中定义的 IP 地址(在此示例中为 169.254.215.102)来访问 CA AppLogic® 应用的组件。 端口 169.254.215.102:122 被 sw 转发至 srv1 组件的端口 22,同样,端口 169.254.215.102:422 被转发至 srv4 组件,依此类推。 例如:执行
ssh -p 122 root@169.254.215.102
可访问第一个组件。
下图显示了一个说明如何为 MySQL 复制提供安全 VPN 通道的示例:

在此示例中,两个应用在不同网格(网格 A 和网格 B)上运行,这两个应用都使用通过安全 VPN 通道复制的同一 MySQL 数据库。
vpn1 和 vpn2 在外部接口上配置了可路由的 IP 地址。 vpn1 经配置后建立了指向 vpn2 的通道,vpn2 上也采取了相应配置。
网格 A 的 db1 向 vpn1 发送用于复制用途的流量,在 vpn1 中对流量加密并将其传送至 vpn2,vpn2 对流量解密并将其发送至网格 B 上 db2 的 rin 终端。 同样,从网格 B 上的 db2 到网格 A 的 db1 的复制行为与此相同。
vpn1:
|
属性名 |
值 |
注释 |
|
ip_addr |
82.56.42.25 |
分配给外部接口的地址。 |
|
mode |
两者 |
操作的服务器模式。 |
|
tunnel |
ssh 密钥 |
使用 SSH 密钥文件。 |
|
auth_path |
"/keys/vpn21.ssh.key" |
SSH 密钥文件的路径。 |
|
remote_host |
92.72.57.95 |
分配给 vpn2 的外部接口的地址。 |
|
tcp_ports |
3306,22 |
用于 MySQL 服务器和 SSH 的默认端口。 |
|
ssh_ports |
3306,22 |
用于 MySQL 服务器和 SSH 的默认端口。 |
vpn2:
|
属性名 |
值 |
注释 |
|
ip_addr |
92.72.57.95 |
分配给外部接口的地址。 |
|
mode |
两者 |
操作的服务器模式。 |
|
tunnel |
ssh 密钥 |
使用 SSH 密钥文件。 |
|
auth_path |
"/keys/vpn21.ssh.key" |
SSH 密钥文件的路径。 |
|
remote_host |
82.56.42.25 |
分配给 vpn1 的外部接口的地址。 |
|
tcp_ports |
3306,22 |
用于 MySQL 服务器和 SSH 的默认端口。 |
|
ssh_ports |
3306,22 |
用于 MySQL 服务器和 SSH 的默认端口。 |
vpn1:
|
属性名 |
值 |
注释 |
|
ip_addr |
82.56.42.25 |
分配给外部接口的地址。 |
|
mode |
两者 |
充当服务器和客户端,允许双向复制。 |
|
tunnel |
ipsec 共享密钥 |
使用 IPSec 加密流量。 |
|
auth_path |
"/keys/ipsec.key" |
ipsec 共享密钥文件的路径。 |
|
remote_host |
92.72.57.95 |
分配给 vpn2 的外部接口的地址。 |
|
tcp_ports |
3306,22 |
用于 MySQL 服务器和 SSH 的默认端口。 |
vpn2:
|
属性名 |
值 |
注释 |
|
ip_addr |
92.72.57.95 |
分配给外部接口的地址。 |
|
mode |
两者 |
充当服务器和客户端,允许双向复制。 |
|
tunnel |
ipsec 共享密钥 |
使用 IPSec 加密流量。 |
|
auth_path |
"/keys/server/ipsec.key" |
ipsec 共享密钥文件的路径。 |
|
remote_host |
82.56.42.25 |
分配给 vpn1 的外部接口的地址。 |
|
tcp_ports |
3306,22 |
用于 MySQL 服务器和 SSH 的默认端口。 |
必须在客户端计算机上使用 OpenVPN 才能访问 VPN 组件公开的安全 VPN 通道。
组件中使用的第三方开源软件
VPN 除了使用其基类 LUX6 所用的第三方开源软件包之外,还使用下列第三方/开源软件包。
|
软件 |
版本 |
已修改 |
许可 |
注释 |
|
IPsec-Tools |
0.6.5-13.el5_3.1 |
No |
BSD |
主页 |
|
iptables |
1.3.5-5.3.el5_4.1 |
No |
GPLv2 |
不适用 |
|
iptables-ipv6 |
1.3.5-5.3.el5_4.1 |
No |
GPLv2 |
不适用 |
|
LZO |
2.03 |
No |
GPLv2 |
主页 |
|
OpenVPN |
2.1.4 |
No |
GPLv2 |
主页 |
|
samba-client |
3.0.33-3.15.el5_4 |
No |
GPLv2 |
不适用 |
|
samba-common |
3.0.33-3.15.el5_4 |
No |
GPLv2 |
不适用 |
|
iproute2 |
2.6.29-1 |
No |
GPLv2 |
主页 |
|
autossh |
1.4b |
No |
BSD |
主页 |
|
版权所有 © 2013 CA。
保留所有权利。
|
|