1.背景
OpenVPN是一款高度可扩展的VPN软件,除了既有的将应用客户端安全接入服务器这一传统功能外,还可以让你无缝的接入一个远程的局域网,正如你身在该局域网一样,如果你不用OpenVPN,你将很难做到这一点。当然,你可以选择像IPSec这样的重量级VPN,但是你的生活从此将不再简单,你也可以使用拨号,连接到远程,但是你永远无法体验完全接入这种身临其境的感觉。
这就是OpenVPN的桥接功能,有了该功能,你将可以无限扩展局域网,你甚至可以将全世界连接在一个局域网内,每一个OpenVPN服务器都可以作为一个以太网桥存在,将局域网直接拉到很远的地方,距离再也不是问题。
2.理论
OpenVPN有两种虚拟模式,一种是三层路由模式,另一种是桥接模式,我们常用的是路由模式,这种方式也是其它VPN软件经常使用的模式,毕竟我们使用VPN的目的是“安全的访问应用”而对于“安全的接入远程网络”的需求并不是很明显,但是一旦你需要安全接入远程网络,你就不得不需要路由这个大伙计,有时候这个伙计不是很友好,特别是网络部署很复杂的时候,这个时候,你会想什么,如果用一根很长很硬朗的线将远程的用户机器直接拉入内部网的一个交换机端口上将会怎么,甚好!幸运的是,OpenVPN可以为你提供这根线,稍显不幸的是,你还是需要做一些工作。
OpenVPN提供的桥接功能实现了上述的魔法,你只需要将其虚拟网卡模式配置成tap,然后将OpenVPN服务器打开的tap网卡加入到一个bridge,当然该bridge中起码还需要有一个物理网卡,该物理网卡处于远程主机希望无缝接入的局域网之中。这很简单,下图展示了这个原理:
3.怎么做
如果你对这个主题很感兴趣,并且你已经很精通OpenVPN的桥接配置,那么下面的内容就不用看了,你的动作肯定比我快,但是如果你还没有配置过这个主题,我劝你还是看下去吧,因为如果你google的话,通篇都是在解释OpenVPN官网以及源码包中自带的那几个脚本,而那几个脚本是能让功能可用,但是对于理解整个过程帮助似乎不大,因此还是将问题分解开,一步一步做,对知其然甚有好处。
3.1.网络拓扑图:
略
3.2.创建一个网桥
brctl addbr br0
3.3.加入物理网卡到br0
将连入内部局域网的物理网卡加入br0
brctl addif br0 eth0
3.4.配置OpenVPN
在OpenVPN的配置文件中加入server-bridge [gw] [mask] [start-IP] [end-IP]
注意,start-IP到end-IP这几个IP地址不能和局域网内既有的地址相冲突,因为这些地址要分给远程机器了,而远程机器实际上已经通过OpenVPN接入到局域网内部了,而一个局域网内部,不能有两台机器的IP地址一样。
3.5.启动OpenVPN服务
按照常规的方式启动OpenVPN:openvpn --config server.cfg
然后将tap0加入到br0:brctl addif br0 tap0
请注意,这种桥接方式启动的OpenVPN服务器上的tap0虚拟网卡没有IP地址,因为整个过程没有IP层的内容。
3.6.在远程启动OpenVPN客户端
按照常规的方式启动OpenVPN客户端后,客户端将被分配到一个内网的地址,虽然它是从外部连接进来的。
3.7.测试
在远程OpenVPN客户端所在的机器上ping局域网内部的主机,然后查看arp表,内部局域网内的主机的mac地址已经到达了远程OpenVPN客户端所在的机器,它们属于一个局域网了。
相关推荐
这是将linux下的openvpn移植到windows下,可以在windows下实现基于ssl vpn功能.zip
python库。 资源全名:openvpn_status-0.1.1-py2.py3-none-any.whl
Use this to get a proxy on kali
OpenVpn Tap驱动程序使用NdisReadConfiguration从注册表读取一些配置。 使用任何功能之前的一项显而易见的任务是必须阅读其手册 Note that NDIS does not validate values that a driver reads from the registry. ...
openvpn基础知识-详细笔记文档总结
使用Cisco Packet Tracer实现两个局域网通信,亲自测试可以使用
基于linux的+openvpn网络.pdf
openvpn3-arch-package
简单管理openvpn3
这些是相同的简单脚本...一个用于启动/停止/切换特定隧道即服务(初始化脚本)。 第二个是建立或断开隧道时调用的脚本(上/下脚本)。 还提供了pyQt GUI界面。
安装OpenVPN 保护OpenVPN 在局域网中安装Orthanc ? 先决条件 Ansible> 2.5 Ansible> 2.9(用于SSH-sec角色) 在客户端计算机和服务器计算机之间已正确配置SSH身份验证。 安装 克隆项目并安装角色: git clone...
一款局域网共享的软件工具
掌控局域网监控软件支持企业专网及VPN的环境,在局域网内任何一台电脑安装控制端,便可监控到局域网内所有机器(自动上线)。可以远程控制屏幕,上传下载文件,监控视频,对屏幕进行24小时不断的录像,批量开、关机...
查看公司局域网内各电脑的IP,非常实用的软件.
如果您不再使用 OpenVPN 或任何其他依赖虚拟 Tap 设备的应用程序,您可以像卸载任何其他程序一样卸载 TAP-Windows。 TAP-Windows 是免费的吗? 是的,TAP-Windows 是根据 GNU GPL 许可的免费开源软件。 TAP-...
openvpn-debian Ubuntu 的 openvpn debian 包的分支,更新到最新的 openvpn 版本
认证中心(CA) 权限是项目中最安全的部分。 这些设置控制和保护根CA证书。 理想情况下,授权机构应托管在与中间CA分开的计算机和网络上。 目的 创建自签名的根证书颁发机构证书 签署来自中间证书颁发机构的请求 ...
网络系统管理赛项软件包(服务模块软件包、普通PC软件包、无线地勘系统等)
防火墙三种模式(路由模式、混合模式、VPN模式)配置实例.pdf
与原版open-build-master相比,我做了稍稍修改,已经包含Open虚拟专网2.5源代码和依赖项源代码,需要VS2019、ActivePerl、WDK10,可以直接按照我写的教程进行编译,100%可编译。