流量代理第一弹:入门使用

anchorubik   ·   发表于 2023-06-15 15:58:13   ·   技术文章

定义

“流量代理是一种网络通信技术,它充当网络通信的中间人,将流量从一个地方传递到另一个地方。通常用于实现网络隧道、网络加速、访问控制和隐私保护等功能。“

上面是来自chatGPT的回答。从这个回答中,我们不难看出,流量代理并不仅仅适用于网络安全,但是对于网络安全人员来说尤为重要:

  1. 通过流量代理,隐藏自己的真实IP,防止被溯源
  2. 将流量转发到内网,让我们访问到一些原本访问不到的业务或站点
  3. 构建私密隧道,防止一些敏感信息泄漏

流量代理的方式

在正式开始去讲一些代理方式的实现之前,我们需要了解几个概念:

  1. 正向代理
  2. 反向代理
  3. 隧道代理
  4. 透明代理
  5. SSL/TLS代理

正向代理

客户端通过设置,流量发送到代理服务器,由代理服务器代为访问。

通过这样的方式,当我们再去访问目标时,目标记录的IP就来自代理服务器了。通过这样的方式就隐藏了自己的真实IP。
基于这样的形式一个访问形式,你们有没有想到什么实战环境?
这个和企业网络环境是不是有一个共通之处:

默认情况下我们是无法直接访问到企业内网的,但是我们能访问到企业的web服务器。在不考不考虑防火墙拦截的前提下,如果我们让上图中的服务器变成一台代理服务器,那我们是不是就可以借助它去访问到企业内网了呢?

再思考一下,我们现在是直接通过客户端去访问目标服务器,那么在目标服务器上的日志记录,是不是就直接记录下了你的IP?那么有什么方式让他记录下来的IP不是你的真实IP呢?

反向代理

服务器端通过设置,将某个服务映射到代理服务器上,当互联网上的用户去访问代理服务器时,服务器端提供服务

有发现和正向代理的区别吗?反向代理是在设置服务器端。通过服务器端的设置,将业务映射到互联网。这样大家都能进行访问了。那么,对于这种方式的代理,你们有想到什么场景吗?

由于是服务器主动向外发送数据请求建立连接的,所以在很大程度上绕过防火墙的限制,访问到原本不被允许访问到的内容。

从上面的原理来看,反向代理在实战中好像并没有得多大用处?当我能将服务器上的业务映射到代理服务器上时,通常也意味着我能控制目标服务器了,那我还有必要去构建反向代理吗?

理是这么个理,但是需要考虑一点:防火墙的防护针对墙外往墙内的流量更加严格,而墙内往墙外的流量相对会更宽松。

正向代理

想要实现正向代理,很显然,我们需要搭建一个代理服务器,同时需要借助一些工具,将客户端的流量给转发到代理服务器上。所以,我们需要使用到两个工具:

  1. Neo-reGeorg 代理服务器搭建脚本
  2. Proxifier 客户端流量代理工具

Neo-reGeorg使用

下载地址:https://github.com/L-codes/Neo-reGeorg

将文件下载解压之后,就可以获得Neo-reGeorg了

通过阅读他的说明文档,就能非常清晰明了的利用Neo-reGeorg搭建一个正向代理服务器。

首先设置代理服务器的密码,然后将生成的脚本,上传至对用的目标网站,最后利用neoreg.py脚本,就可以成功搭建代理服务器

通过文档中的说明,初始化密钥

然后将文件上传,成功之后访问,服务器返回空白内容


然后通过脚本启动代理服务

Proxifier使用

我使用的这个版本没有找到在线的下载地址,不过我再网上找到了一个4.05版本的。使用上应该都差不多。

下载地址:https://www.iculture.cc/software/pig=3876

双击运行,然后 配置文件 → 代理服务器 → 添加 → 地址、端口、协议等信息

配置完成之后保存,接下来就是去设置代理规则:

配置文件 → 代理规则 → 添加 → 应用程序、动作 等

我在这里为了演示,是将chrome浏览器设置到了proxifier代理中。然后通过使用chrome和edge分别访问ifconfig.me,来体现初流量代理是否成功

不难看出,edge获取到的是我当前的真实IP,而chrome则已经是使用了代理的IP地址。

拓展

除了使用proxifier进行终端流量代理之外,其他能够实现流量转发的工具也都可以使用哦。比如浏览器通过插件设置socks5代理,地址和端口为neoreg监听的地址即可

frp实现内网穿透、反向代理

从反向代理的原理不难看出,我们需要三样东西:

  1. 公网服务器
  2. 代理服务器端的工具
  3. 目标服务器端的工具

公网服务器

这个东西没有什么好讲的,自行购买就可以了。优先考虑国外的vps。

代理工具

frp具有服务器端脚本和客户端脚本我们需要做的事情有两件:

  1. 在自己的vps上配置和运行frp服务端脚本
  2. 在目标服务器上配置和运行frp客户端脚本

捋清了思路之后,就可以开始操作了。

下载地址:https://github.com/fatedier/frp

GitHub上的frp有两种方式可供选择:源码和已编译的应用程序

通常情况下我们下载编译好的应用程序就行,选择对应的平台,然后下载,之后上传一份到vps上,上传一份到目标服务器上。

将下在好的文件上传至你的vps,然后再vps中解压,此时你会发现,文件中中包含了frpc和frps两种类型的文件:

frpc表示客户端脚本,frps表示服务器端脚本。我们在自己的vps上是需要部署frps,所以先修改frps.ini文件,修改内容如下(极简风格):

配置完成之后,接下来就是运行frps,如果出现下面的内容就表明frps运行成功

接下来就是去目标服务器上搭建frpc了,我这里为了方便,就在使用本地windows笔记本电脑作为目标服务器。所以我需要下载windows的frp软件

此时我们是需要搭建frp的客户端,所以我们需要修改frpc相关的配置文件

目前frp支持的协议包括:tcp、udp、http、https、socks、forward-unix-domain-socket、p2p-mode等等的协议。我这里选了两种比较常用的的协议来进行映射:tcp 和 socks5

修改完配置文件之后,接下来就是去运行frpc应用,出现以下内容就表明代理设置成功了

然后我们就可以进行测试了:vps 的 tcp/8107 端口 映射了笔记本电脑的 tcp/8081 端口,首先在笔记本电脑本地访问 http://127.0.0.1:8081,不难确定运行的服务是 finecms 框架。

然后访问frp代理服务器的8107端口。服务一致,说明代理设置成功。

这是TCP端口的代理,除此之外还有 tcp/8108 的socks5代理。

socks协议相对来说比较特殊,我们想要通过socks协议来访问站点,需要进行一些特殊的设置:比如使用proxifier来设置代理、通过proxychains设置代理。

我刚好身边有一台mac mini,mac的终端是接受直接设置为代理的。所以我就直接通过mac的终端来测试socks是否成功映射:

不难看出,这个代理也是成功了的。不难看出,这个代理也是成功了的。

用户名金币积分时间理由
Track-魔方 280.00 0 2023-06-15 16:04:42 一个受益终生的帖子~~

打赏我,让我更有动力~

0 条回复   |  直到 10个月前 | 821 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.