VPN隧道-传输层隧道技术端口转发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VPN隧道-传输层隧道技术端口转发相关的知识,希望对你有一定的参考价值。

参考技术A 在渗透测试中,如果内网的防火墙阻止了对指定端口的访问,在获取了目标机器的权限后,可以使用防火墙命令打开指定的端口或关闭防火墙。如果内网中存在一系列防御系统,TCP、UDP 流量会被大量拦截。

传输层隧道技术主要用到的工具有lcx ,netcat, PowerCat等

lcx是一个很经典的端口转发工具,其基于Socket套接字,有Windows和Linux两个版本。Windows的为lcx.exe,Linux的为portmap。

下载地址: https://github.com/MrAnonymous-1/lcx

一个正常的socket套接字必须具备两端:一端是服务器,监听一个端口,等待客户端连接;另一端为客户端,通过给出服务器的IP和端口,与服务端建立连接。

在 受害机 ( Windows)上面执行如下命令,将受害机3389端口的数据转发到攻击者公网VPS(Windows)的8000端口上。

lcx.exe -slave 8000 127.0.0.1 3389

在 攻击机 上面执行如下命令,将本机8000端口上监听到的数据转发到本机的4444端口上面

lcx.exe -listen 8000 4444

有些时候,防火墙会禁用一些端口,我们可以使用

Lcx.exe –tran 5555 3389

RouterOSv7WireGuard隧道协议

参考技术A RouterOS v7加入了WireGuard,WireGuard是一个极简而快速的加密VPN协议。其设计目标是比IPsec更快、更精简和高效,同时性能要比OpenVPN提升很多。WireGuard被设计成一种通用VPN,可以在多个平台上运行,适合许多不同的环境。最初是为Linux内核发布的,后支持跨平台(Windows, macOS, BSD, iOS, Android),能进行广泛的部署。

从官方测试性能看,WireGurad对于IPsec优势非常明显,而对于OpenVPN几乎是碾压。

在部署方面,WireGurad各个节点是Peer对等体的概念,而非是Server与Client关系,相互之间是对等的,一个节点既可以是发起者,也可以是接收者,比如网上提到VPN的拓扑方案中,可以是点对点,点对多点的中心覆盖,而WireGuard不一样了,不仅可以点对点,也可以点对多点,每个节点同时可连接多个 Peer,看到过有人通过WireGuard建立全互联模式,三层的Mesh网状网络。

WireGuard只支持UDP协议,不支持传统的TCP-over-TCP隧道,因为TCP网络性能并不理想,如果对TCP连接有需求,将wiredguard的UDP包转换为TCP,并可以使用如udptunnel和udp2raw来协助完成。

关于NAT穿透,通常情况下,WireGuard网络在未被使用的情况下,会尽量保持“安静”。在大多数情况下,它只在Peer对等体,希望发送数据包时传输数据,当它没有被要求发送数据包时,它就停止发送,直到再次被请求。在点对点公网IP连接的网络环境是这样的,然而,当一个Peer端位于NAT或防火墙之后时,即使它不发送任何数据包的情况下,也希望能接收传入的数据包。因为NAT和防火墙会跟踪“会话连接”,他必须通过定期发送数据包来维持NAT/防火墙连接会话映射的有效,即UDP的timeout时间,即被称为keepalive。WireGuard可以开启此选项,每隔一秒向对端点发送一个keepalive报文,当然适用于各种NAT/防火墙的合理间隔在25秒。默认设置keepalive是关闭状态,因为公网IP连接的用户不需要这个功能。

WireGuard加密使用ChaCha20,验证使用Poly1305,它几乎在所有通用CPU上的运行速度都非常快。虽然未被专用硬件支持(IPsec支持硬件加速),但在CPU上的矢量指令(vector instructions)与AES-NI指令处于相同的优先级(有时甚至更快)。

总结下WireGuard的特点:

是基于UDP协议连接,具备网络性能优势

运行在Linux内核,在性能上优于IPsec和OpenVPN

每个节点通过公钥识别进行验证,加密采用的是ChaCha20Poly1305。

每个节点是平等的,既可以作为server,又可以作为client

两端仅需要一个配置公网IP,另一端在nat后也能连接,nat后的节点,仅需要对端节点公钥,以及公网IP (endpoint)和端口(endpoint port),而公网节点只需要填写连接端的公钥即可

从测试结果看未使用IPsec加密的L2TP的传输带宽性能最好,超过了WireGuard,但在使用IPsec的L2TP加密后,性能远不如WireGuard,我平时喜欢使用SSTP在RouterOS设备之间建立连接,因为SSTP端口灵活,在RouterOS建立隧道无需证书,但SSTP的传输性能在RouterOS支持的所有隧道协议中性能是最差的,现在v7有了WireGuard就不一样了。

以上是关于VPN隧道-传输层隧道技术端口转发的主要内容,如果未能解决你的问题,请参考以下文章

Linux-ssh隧道详解

ssh隧道配置

Centos下如何搭建PPTP VPN 服务器

VPN三层隧道协议GRE IPsec

VPN相关技术

华为防火墙GRE隧道配置