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 ...
随机推荐
- 10个调试Java的技巧
调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...
- C#如何静态调用C++中的方法(静态调用dll)
当我们想要在C#中使用C++项目的方法时,这个时候就可以通过调用C++项目的dll来实现,它有静态和动态调用两种方法. DLL(Dynamic Link Library)文件为动态链接库文件,又称“应 ...
- Myeclipse启动报错: Invalid 'log4jConfigLocation' parameter
java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter: class path resource [lo ...
- 疯狂Android讲义 - 学习笔记(三)
Android的事件处理 3.1 Android提供了两套事件处理机制:基于监听的事件处理.基于回调的事件处理. 3.2 基于监听的事件处理 3.2.1 监听的处理模型 主要涉及三类对象:Event ...
- 一个struts2登录bug的解决
点登录的时候,在url后面总会加上一个;jsessionid=xxx 使找不到页面 的404 Bug ,百思不得其解,最后终于找到解决方案,实验最终成功解决了这个bug,下面是解决方案 1,增加依赖 ...
- 装配bean
spring有三种装配bean的方式:隐式装配.java代码装配.xml装配 隐式装配最为省事方便,也称为自动化装配 这三种装配方式可以混搭着来用 在这里通过一个例子来讲述配置 CD的两个实现,一个是 ...
- jquery如何实现(textarea) placeholder自动换行?
思路:利用文本框的聚焦和失焦事件 1.HTML结构 <textarea id="text1"></textarea> 2.js方法 <script&g ...
- ks
http://www.codeproject.com/Articles/207820/The-Repository-Pattern-with-EF-code-first-Dependen
- UIBezierPath-绘制基本图形
步骤1:确定路径 步骤2:渲染 override func draw(_ rect: CGRect) { let path:UIBezierPath // 矩形 // path = UIBezierP ...
- Linux下安装使用Solr
Linux下安装使用Solr 1.首先下载Solr.mmseg4j分词包.tomcat并解压,这用google.百度都可以搜索得到下载地址. 2.因为要使用到中文分词,所以要设置编码,进入tomcat ...