SSL VPN搭建与使用(OpenVpn)
一、创建腾讯云SSL VPN网关
协议类型选择SSL,选择要打通云上所属VPC网络,如下图:
二、创建SSL服务端
目前腾讯云支持的SSL VPN协议只有UDP,暂不支持TCP;按照如下步骤填写本端网段(要打通的VPC网段)和对端网段(客户端内网网段),填写端口、认证算法、加密算法等信息:
三、创建SSL客户端
选择上一步创建的服务端,填写好备注名后点确定即可:
四、添加VPC路由
云上访问云下时,会查找VPC路由表指向,因此需要在对应的VPC路由表里面加一条到云下客户端网段的规则,下一跳指向SSL VPN网关。
在私有网络控制台,路由表里面选择对应VPC,对应路由表:
进入到路由表后,选择新增路由策略:
到此云上SSL VPN所有操作已经完成。
五、SSL配置文件下载
openvpn是Linux下的开源先锋,提供了良好的性能及友好的用户GUI,官方也推荐使用openvpn作为ssl vpn客户端使用,接下来将展示在Windows、Debian、Centos等系统中如何配置openvpn客户端,客户端配置文件在创建SSL客户端后会生成出来,在SSL客户端页面下载即可:
六、Windows配置OpenVpn Client
1.下载及安装
首先到openvpn官方下载页面下载openvpn connect(注意connect才是openvpn客户端,别下成服务端了):
选择Windows这一栏,并点击Download即可,如果被墙打不开此下载页面,可在此链接下载。
2.配置及导入
安装好选择Import Profile,导入配置文件:
将配置文件解压后,把.ovpn结尾的配置文件拖拽进去:
3.验证连通性
导入后点击connect
,并验证连通性:
通过route print
命令可以看到openvpn正常运行后,会自动下发路由到对端网关,同时ping对端VPC网段连通性正常,有出入流量,说明已正常打通。如果ping不通云上vpc机器,确保机器没有禁ping、安全组、acl有正常放通客户端内网网段。
此时使用wireshark抓包看,可以发现和对端内网交互时,实际是和对端vpn网关交互,因此也会依赖两端的公网质量:
七、Debian/Centos配置OpenVpn Client
1.Debian安装软件源、存储库秘钥及openvpn client
确保Debian支持https传输:
apt install apt-transport-https
安装openvpn官方存储库秘钥:
curl -fsSL https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub | gpg --dearmor > /etc/apt/trusted.gpg.d/openvpn-repo-pkg-keyring.gpg
安装对应系统版本代号的软件源:
curl -fsSL https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-$DISTRO.list >/etc/apt/sources.list.d/openvpn3.list
apt-get update
官方支持的发行版代号:
发行版 |
版本 |
代号($DISTRO) |
架构 |
---|---|---|---|
Debian |
9 |
stretch |
amd64 |
Debian |
10 |
buster |
amd64,arm64* |
Debian |
11 |
bullseye |
amd64,arm64* |
Ubuntu |
18.04 |
bionic |
amd64, arm64* |
Ubuntu |
20.04 |
focal |
amd64,arm64* |
Ubuntu |
21.04 |
hirsute |
amd64, arm64* |
这里以Debian9 stretch
作为演示,其他发行版同理,因此软件源安装应该是:
curl -fsSL https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-stretch.list >/etc/apt/sources.list.d/openvpn3.list
apt-get update
境内机器由于GFW原因,可能无法使用以上软件源,或者受到速度限制,可以参考这篇文章搭建代理服务器使用。
apt install openvpn3
2.Centos安装openvpn客户端
Centos、Redhat系列支持的发行版代号:
发行版 |
版本 |
架构 |
---|---|---|
Fedora |
33, 34, Rawhide (*2) |
aarch64, s390x, x86_64 |
Red Hat Enterprise Linux / CentOS |
7 |
x86_64 |
Red Hat Enterprise Linux / CentOS |
8 |
aarch64, x86_64 |
安装yum copr模块:
yum install yum-plugin-copr
启用Copr存储库:
yum copr enable dsommers/openvpn3
安装Openvpn client:
yum install openvpn3-client
3.导入配置文件并运行
将从腾讯云SSL客户端控制台导出的配置上传到Debian,解压后通过如下命令运行:
openvpn3 config-import --config ${MY_CONFIGURATION_FILE} #导入配置文件,以便后续会话重用
openvpn3 session-start --config ${MY_CONFIGURATION_FILE} #开启会话
sslvpnclient.ovpn替换成正确的ovpn配置文件,腾讯云官网的配置文件名应该是SSLVpnClientConfiguration.ovpn
,可以看到connected说明已连接。
到此openvpn已正常运行,另开一个tty测试连通性:
4.openvpn会话管理
openvpn允许同时运行多个配置文件及会话,通过以下命令可以管理会话:
openvpn3 sesstions-list #查看当前运行的会话列表
重启会话:
openvpn3 session-manage --config ${CONFIGURATION_PROFILE_NAME} --restart
断开会话:
openvpn3 session-manage --session-path /net/openvpn/v3/sessions/..... --disconnect
断开会话后会统计流量使用明细。
查看会话状态:
openvpn3 session-stats --config ${CONFIGURATION_PROFILE_NAME}
openvpn3 session-stats --session-path /net/openvpn/v3/sessions/...
查看会话日志:
openvpn3 log --config ${CONFIGURATION_PROFILE_NAME}
附带PDF版本: