Microsoft Azure Point to Site VPN替代方案
Microsoft Azure提供了Point to Site VPN,但有时候这并不能满足我们的需求,例如:Point to Site VPN是SSTP VPN,只能支持Window客户端拨入,而且客户端总数不能超过200个。这里我们介绍一个Point to Site VPN的替代方案——OpenVPN,不限制客户端拨入数量,并且支持Window,MAC OSX,Linux,Android和IOS!当然还是免费的。(此方案仅支持Microsoft Azure中国版,在Microsoft Azure国际版上无效。)
首先我们创建一个OpenLogic CentOS 6.7的虚拟机并安装EPEL的yum源。
sudo yum install epel-release sudo yum update
安装OpenVPN和easy-rsa
sudo yum install openvpn sudo yum install easy-rsa
easy-rsa用于生成OpenVPN所需的数字证书,可以看作是对openssl的封装。
生成OpenVPN数字证书
#复制easy-rsa sudo cp -R /usr/share/easy-rsa/ ~/easy-rsa #修改目录权限 -R ~/easy-rsa/ #进入easy-rsa目录 cd ~/easy-rsa/2.0/ #修改vars变量定义 vim vars #根据需要对变量值进行修改,包括证书有效期,证书属性等。 #导入vars变量 source ./vars #初始化 ./clean-all #创建CA证书 ./build-ca #创建服务器证书 ./build-key-server server #生成Diffie Hellman key exchange文件 ./build-dh #生成客户端证书 ./build-key client#可以使用具体的用户名替代“client”,例如:“./build-key vpn-user-1”,为每个拨入的用户分别创建一个证书。 #复制安装服务器端证书 cd ~/easy-rsa/2.0/keys/ sudo cp dh2048.pem ca.crt server.crt server.key /etc/openvpn
经过上述步骤,和OpenVPN相关的数据证书都已经创建完成了。接下来我们开始配置OpenVPN的服务器。
OpenVPN自带了一个sample配置文件,里面详细的讲解了每个配置项的作用和用途,sample配置文件路径:“/usr/share/doc/openvpn-2.3.11/sample/sample-config-files/server.conf”。
OpenVPN的配置文件路径:/etc/openvpn/server.conf
这里附上一个示例配置文件供参考:
#OpenVPN服务端口port 1193#协议 proto tcp dev tun#以下是对应的服务器端数字证书的路径 ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key dh /etc/openvpn/dh2048.pem#OpenVPN使用的地址段,服务器自身的地址xxx.xxx.xxx.1 server 10.11.12.0 255.255.255.0 ifconfig-pool-persist ipp.txt#去掉以下注释,则客户端所有的流量都会经过服务器进行转发。若无特殊情况,一般不要让服务器转发客户端的所有流量。 ;push "redirect-gateway def1 bypass-dhcp" #向客户端推送路由,即:在服务器一侧可以被客户端访问到的网段。 push "route 172.16.1.0 255.255.255.0" push "route 172.16.2.0 255.255.255.0"client-to-client keepalive comp-lzo user nobody group nobody persist-key persist-tun#确保日志文件路径存在并具备适当的权限 status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log log-append /var/log/openvpn/openvpn.log verb
配置NAT和IP转发
-o eth0 -j MASQUERADE#注意来源地址要和/etc/openvpn/server.conf中的网段保持一致。 sudo vim /etc/sysctl.conf#将“net.ipv4.ip_forward = 0” 改为:“net.ipv4.ip_forward = 1” #使设置生效sudo sysctl -p
设置OpenVPN开机自动启动
sudo chkconfig openvpn on
在Microsoft Azure的Web管理控制台中给OpenVPN服务器添加一个endpoint,端口号和协议与"/etc/openvpn/server.conf"中的配置保持一致。
重启一次虚拟机(“sudo reboot”),服务器端配置就完成了。
由于OpenVPN使用数字证书进行身份验证,因此我们需要将上述步骤中生成的ca证书(ca.crt),客户端证书(client.crt, client.key)和配置文件一起分发给用户。每个用户分别使用不同的客户端证书。
在此我们以Windows操作系统为例来介绍OpenVPN在客户端的配置(其他操作系统客户端的配置方法也是大同小异的)。
创建一个文件夹,名称为:“config”。
将ca证书和客户端证书复制到config文件夹中(共3个文件)。
config文件夹中新建一个配置文件,名称为:client.ovpn,按以下示例添加配置文件内容:
client dev tun#协议,和服务器端配置保持一致 proto tcp#服务器地址和端口 remote xxx resolv-retry infinite nobind persist-key persist-tun comp-lzo verb 3#证书文件位置 ca ca.crt cert client.crt key client.key
安装OpenVPN客户端,并将config文件夹复制到安装目录中,例如:“C:\Program Files\OpenVPN”
以管理员身份运行OpenVPN GUI,右键点击桌面右下角通知区域的OpenVPN图标,点击“connect”即可建立VPN连接。
如果遇到无法连接的情况,请参考服务器端和客户端的日志进行故障排查。
与L2TP,PPTP,IKEv2等VPN相比较,OpenVPN配置过程相对简单,通讯安全可靠,设备兼容性好。服务器端只需要对外开放一个tcp或者udp端口就可以接受客户端拨入。此外,如果在已经建立Site to Site VPN的虚拟网络中创建OpenVPN服务器,则客户端拨入VPN后,是能访问到企业内部网络的。这相当于Multiple Site VPN,但是却不需要在建立Site to Site VPN时时候必须使用动态路由(route-based)网关。
Microsoft Azure Point to Site VPN替代方案的更多相关文章
- 连接到Windows Azure Point to Site VPN
Windows Azure支持两种模式的VPN接入: Site to Site,接入端需要有固定的公网IP地址,用于连接局域网和Windows Azure的虚拟网络. Point to Site,客户 ...
- Azure Site to Site VPN 配置手册
目录 1 Azure Site to Site VPN配置前的准备 1 1.1 设备兼容 1 1.2 网络要求和注意事项 1 2 配置Azure site t ...
- 使用Openswan接入Windows Azure Site to Site VPN
Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSI ...
- 构建混合云:配置Azure site to site VPN连接(1)
用户在构建自己云计算解决方案的时候,往往会选择私有云或者公有云来做部署,但在一些场景下,用户更加希望通过混合云的方案来满足自己的业务需求.Azure为混合云的部署提供多种不同的连接方案,最常见的是 ...
- Microsoft Azure Web Sites应用与实践【2】—— 通过本地IIS 远程管理Microsoft Azure Web Site
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- 使用VNET-to-VNET连接Microsoft Azure国际版和中国版
Microsoft Azure的VNET-to-VNET功能可以实现跨虚拟网络的VPN连接,通过VNET-to-VNET互联的两个虚拟网络可以在同一个订阅下或者隶属不同的订阅,而且可以跨数据中心.这实 ...
- For Microsoft Azure Network VNET to VNET Connection
将一个 Azure 虚拟网络 (VNet) 连接到另一个 Azure 虚拟网络非常类似于将虚拟网络连接到本地站点位置.这两种连接类型都使用虚拟网络网关通过 IPsec/IKE 提供安全隧道.连接的 V ...
- 设置将 Microsoft Azure 的网络基础结构以支持设置为灾难恢复站点
Prateek Sharma 云 + Enterprise 高级项目经理 Azure SiteRecovery (ASR)可以将Microsoft Azure用作您的虚拟机的灾难恢复站点. 当管理 ...
- Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
随机推荐
- Git 获取文件操作
1. 在本地新建存放源代码的文件夹: 2. 进入文件夹下,右击选择 Git Bash Here ,弹出git命令行窗口: 3. 运行指定 git init,初始化git: 4. git remote ...
- php实现hack中的Shape特性
用php进行静态类型编程,估计是我的一个心结. 依次有几篇文章都记录了我的一些探索: 通过指定函数/方法形参类型提高PHP代码可靠性 http://www.cnblogs.com/x3d/p/4285 ...
- C标准头文件<stdio.h>
是很多人学C语言接触的第一个头文件,顾名思义,stdio就是"标准输入输出",其中声明了一组关于输入输出的类型,宏和函数,其中就包括了打印著名的"hello,world! ...
- ios页面过渡效果插件Kontext
效果体验:http://keleyi.com/keleyi/phtml/html5/28.htm 以下是代码: <!doctype html> <html> <head& ...
- canvas 画圈 demo
html代码: <canvas id="clickCanvas2" width="180" height="180" data-to ...
- 简要分析webpack打包后代码
开门见山 1.打包单一模块 webpack.config.js module.exports = { entry:"./chunk1.js", output: { path: __ ...
- 第一个web框架tornado
简介 tornado,是我学到的第一个web框架是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google ...
- SharePoint 2013 User Profile Services之跨场设置
这段时间有个客户需要在不同SharePoint场中使用网站.文档和用户关注功能.但实际使用中发现默认的关注功能不能跨场使用,这也引出了我接下来的博客,我将在博客中详细描述整个过程. 因为“关注”功能是 ...
- Html5的一些基础知识
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>页面 ...
- ARC
ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting).简单地说,就是代码中自动加入了retain/release,原先需要手动添加的 ...