VPN搭建使用
虚拟专用网络
VPN(全称:Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公共网络中建立专用的数据通信的网络技术,可以为企业之间或者个人与企业之间提供安全的数据传输隧道服务。在VPN中任意两点之间的链接并没有传统专网所需的端到端的物理链路,而是利用公共网络资源动态组成的,可以理解为通过私有的隧道技术在公共数据网络上模拟出来的和专网有同样功能的点到点的专线技术,所谓虚拟是指不需要去拉实际的长途物理线路,而是借用了公共Internet网络实现的。
VPN的作用
VPN的功能是帮助公司里的远程用户(出差,在家)、公司的分支机构、商业合作伙伴及供应商等公司和自己的公司内部网络之间建立可信的安全连接或者是局域网连接,确保数据的加密安全传输和业务访问,对于运维工程师来说,还可以连接不同的机房为局域网来处理相关事宜。
VPN的分类
- 根据常用的使用场景来分类。
远程访问VPN服务
通过个人电脑远程拨号到企业办公网络。
1、一般为企业内部员工出差、休假或特殊情况下载原理办公室的时候,又有需求访问公司的内部网络获取相关资源,就可以通过VPN拨号到公司内部。此时远程拨号的员工和办公室内的员工以及其他拨号的员工之间都相当于在一个局域网内。例如:访问内部的域控、文件服务器、OA系统等局域网应用。
2、对于运维人员来说就是需要个人电脑远程拨号到企业网站的服务器机房,远程维护机房中的(无外网IP的)服务器。
这种形式的VPN一般在运维人员在工作中会经常遇到。
企业内部网络互联
- 一般是建立一个网络隧道,多个机房之间互联。
在公司的分支机构的局域网和公司总部LAN之间的VPN链接。通过公网Internet建立VPN将公司在各地的分支机构的LAN链接到公司总部的LAN。例如:各大银行之间的资金结算业务。
这是由于各个地域的原因产生的VPN的需求,通过VPN让不同地域的机器可以实现内网互联。例如远程协同办公,机房互联数据同步及业务访问。
互联网各地域机房之间的互联
- 主要是用于不同机房之间的内网互通。
企业外部的VPN服务
- 主要是提供给合作伙伴共享企业内网数据的VPN服务。
常见的隧道协议
- 这里列举常见的隧道协议
PPTP
点对点协议(PPTP)是由包括微软和3Com等公司组成的PPTP论坛开发的一种点对点隧道协议,基于拨号使用的PPP协议,使用PAP或CHAP之类的加密算法,或者使用Microsoft的点对点加密算法MPPE。其通过跨越基于TCP/IP的数据网络创建VPN实现了从远程客户端到专用企业服务器之间数据的安全传输。PPTP支持通过公共网络建立按需的、多协议的、虚拟专用网络。PPTP允许加密IP通讯,然后在跨域公司IP网络或公共IP网络发送的IP头中对其进行封装。典型的Linux平台的开源软件为PPTP。PPTP属于点对点应用,比较合适远程的企业用户拨号到企业进行办公等应用。
L2TP
L2TP第2等隧道协议(L2TP)是IETF基于L2F(Cisco的第二层转发协议)开的的PPTP的后续版本。是一种工业标准Internet隧道协议,其可以为跨越面向数据包的媒体发送点到点的协议(PPP)框架提供封装。PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加爆头用于数据在互联网上传输。PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道,用户可以针对不同的服务质量创建不同隧道。L2TP可以提供隧道验证,而PPTP则不支持隧道验证。但是当L2TP或PPTP与IPSEC共同使用时,可以由IPSEC提供隧道验证,不需要在第二层协议上验证隧道使用L2TP。PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的链接,L2TP可以在IP(使用UDP),祯中继续永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCS网络上使用。
IPSec
IP安全协议实际上是一套协议包而不是一个单独的协议。从1995年开始IPSec的研究以来,IETF IPSec工作组在它的主页上发布了几十个Internet草案文献和12个RFC文件。其中比较重要的有RFC2409IKE(互联网秘钥交换)、RFC2401 IPSec协议、RFC2402AH验证包头、RFC2406ESP加密数据等文件。
IPSec隧道模式隧道是封装、路由与解封的整个过程。隧道将原始数据包隐藏(或封装)在新的数据包内部。该新的数据包可能会有新的寻址与路由信息,从而使其能够通过网络传输。隧道与数据保密性结合使用时,在网络上窃听通讯的人将无法获取原始数据包数据(以及原始的源和目标)。封装的数据包到达目的地后,会删除封装,原始数据包头用于将数据包路由到最终目的地。
隧道本身是封装数据经过的逻辑数据路径,对原始的源和目的的端,隧道是不可见的,而只能看到网络路径中的点对点连接。将隧道和数据保密性结合使用时,可用于提供VPN。
封装的数据包在网络中的隧道内部传输。再次示例中,该网络是Internet。网关可以是外部Internet与专用网络之间的周边网关。周界网关可以是路由器、防火墙、代理服务器或其他安全网关。另外,在专用网络内部可以使用两个网关来保护网络中不信任的通讯。
当以隧道模式使用IPSEC时,其只为IP通讯提供封装。使用IPSec隧道模式主要是为了与其他不支持IPSec上的L2TP或PPTP VPN隧道技术的路由器、网关或终端系统之间的相互操作。
SSL VPN
SSL协议提供了数据私密性、端点验证、信息完整性等特性。SSL协议由许多子协议组成,其中两个主要的子协议是握手协议和记录协议。握手协议允许服务器和客户端在应用协议传输第一个数据字节以前,彼此确认,协商一种加密算法和密码钥匙。在数据传输期间,记录协议利用握手协议生成的秘钥加密和解密后来交换的数据。
SSL独立应用,因此任何一个应用程序都可以享受它的安全性而不必理会执行细节。SSL置身于网络结构体系的传输层和应用层之间。此外,SSL本身就被几乎所有的WEB浏览器支持。这意味着客户端不需要为了支持SSL链接安装额外的软件。这两个特征就是SSL能应用于VPN的关键点。
典型的SSL VPN应用:Open VPN,这是一个比较好的开源软件。Open VPN允许参与建立VPN的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议。OpenVPN能在Linux、xBSD、MacOS 上运行。它并不是一个基于Web的VPN软件,也不能与IPSec及其他VPN软件包兼容。
常见的VPN软件
PPTP VPN
使用PPTP VPN的最大优势在于,无需在Windows客户端独立安装客户端软件,Windows默认就知道PPTP VPN拨号连接功能。另外,PPTP VPN属于点对点方式的应用,比较适合远程的企业用户拨号到企业进行办公等应用。
SSL VPN
PPTP主要为那些经常外出移动办公或家庭办公的用户考虑,而OpenVPN不但使用于PPTP的应用场景,还适合针对企业异地两地总分公司之间的VPN不间断按需链接,例如:OA,及时通讯工具等在企业中的应用。
IPSec VPN
IPSecVPN也适用针对企业异地办公或多个IDC机房之间VPN不间断按需链接,并且在部署使用上更简单方便。
OpenVPN
OpenVPN介绍
专用网:专用网就是在两个网络(例如,北京和广州)之间架设一条专用线路,但是它并不需要真正地去铺设光缆之类的物理线路。虽然没有亲自去铺设,但是需要向电信运营商申请租用专线,在这条专用的线路上只传输自己的信息,所以安全稳定,同时也费用高昂
在众多的VPN产品中,OpenVPN无疑是Linux下开源VPN的经典产品,他提供了良好的访问性能和友好的用户GUI。
Open VPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写。一个实现VPN的开源软件,OpenVPN 是一个健壮的、高度灵活的 VPN 守护进程。它支持SSL/TLS 安全、Ethernet bridging、经由代理的 TCP 或 UDP 隧道和 NAT。另外,它也支持动态 IP 地址以及DHCP,可伸缩性足以支持数百或数千用户的使用场景,同时可移植至大多数主流操作系统平台上。
GitHub地址:https://github.com/OpenVPN/openvpn
OpenVPN依赖的SSL与TLS协议介绍
众所周知,真正的通信实际上是两台主机之间的进程在交换数据,而运输层作为整个网络最关键的从层次之一,扮演沿着向上层(应用层)提供通信服务的角色。想要剖析运输层的数据安全传输策略就一定无法绕开三个至关重要的协议,它们分别是HTTPS协议、SSL协议、TSL协议。SSL(Secure Sockets Layer)协议既安全套接字层协议,TLS(Transport Layer Security)协议即安全传输层协议
。
部署OpenVPN
1 | OpenVPN 分为客户端和服务端 |
环境规划
公网IP | 内网IP | 主机名 |
---|---|---|
192.168.15.110 | 172.16.1.0 | openvpn |
服务端
1、安装OpenVPN和证书工具,准备相关配置文件
1 | # 安装openvpn和证书工具 |
2、初始化PKI和CA签发机构环境
1 | # 初始化PKI生成PKI相关目录和文件 |
3、创建 Diffie-Hellman 密钥
Diffie-Hellman 密钥交换方法,由惠特菲尔德·迪菲(Bailey Whitfield Diffie)、马丁·赫尔曼(Martin Edward Hellman)于1976年发表。它是一种安全协议,让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。DH数学原理是base离散对数问题。做类似功能的还有非对称加密类算法,如:RSA。其应用非常广泛,在SSH、VPN、Https等都有应用。
wiki参考链接: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
1 | 方式一: |
客户端
1、客户端证书环境
1 | [root@m01 3]# cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa-client |
2、创建链接配置文件
1 | 1、修改openvpn配置文件 |
服务器端配置文件说明
1 | #server.conf文件中以#或;开头的行都为注释 |
mac连接OpenVPN
安装OpenVPN软件包
Windows下载:OpenVPN https://openvpn.net
Mac下载:Tunnelblick https://tunnelblick.en.softonic.com/mac
打开FinalShell找到/etc/openvpn/client/目标文件夹
必须将文件夹重新命名,以.tblk结尾,文件名字必须和之前的配置一样
最后打开Tunnelblick连接即可