0x01 前言

因公司业务需要有一个固定的IP作为统一的流量转发,但公司没有固定IP,于是本人在公网上搭建了一个代理服务器,用作公司内部服务器流量统一转发,但使用过程又遇到了问题:若使无认证代理,会被恶意利用,影响使用;若使用有认证的代理,先公司用的部分工具又不支持认证代理。为了解决该问题,提出了“内网代理(无认证代理节点)+公网代理(有认证代理节点)”二级代理模式解决方案。

0x02 方案一:Burpsuite+nps解决方案

Burpsuite:作为内网代理节点,nps:作为公网代理节点。

1、nps搭建

购买一台云服务器,作为公网服务器,搭建nps。本次部署的环境:IP:11x.xxx.xxx.x58,ubuntu20.04。

(1)nps简介

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

项目地址:​​https://github.com/ehang-io/nps​

(2)下载nps服务端

#wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz

二级代理模式解决固定IP问题_内网


下载完成

二级代理模式解决固定IP问题_客户端_02


(3)nps服务端安装

解压到nps目录:

# mkdir nps && tar -xvf linux_amd64_server.tar.gz -C /root/nps

二级代理模式解决固定IP问题_linux_03


nps服务端安装

#cd nps && ./nps install

二级代理模式解决固定IP问题_内网_04


二级代理模式解决固定IP问题_客户端_05


(4)nps服务端配置

安装后的nps配置文件在/etc/nps/conf目录

# vi /etc/nps/conf/nps.conf

二级代理模式解决固定IP问题_内网_06


配置完成后,运行nps服务端

# nps start

浏览器访问:http://11x.xxx.xxx.x58:xx80

二级代理模式解决固定IP问题_客户端_07


二级代理模式解决固定IP问题_linux_08


(5)nps web管理配置

新建客户端(代理客户端):客户端->新增

二级代理模式解决固定IP问题_内网_09


填写Basic 认证用户名、密码等内容,

二级代理模式解决固定IP问题_客户端_10


最后点击“新增”

二级代理模式解决固定IP问题_内网_11


配置socks5代理:socks代理->新增

二级代理模式解决固定IP问题_linux_12


填写客户端id和服务端口,客户端为id为新建的代理客户端id(即2)

二级代理模式解决固定IP问题_内网_13


最后点击“新增”

二级代理模式解决固定IP问题_linux_14


(5)npc客户端下载

下载nps客户端

#wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz

二级代理模式解决固定IP问题_内网_15


解压

#mkdir npc && tar -xvf linux_amd64_client.tar.gz -C /root/npc

二级代理模式解决固定IP问题_客户端_16


(6)运行npc客户端

查看客户端唯一验证密钥

二级代理模式解决固定IP问题_内网_17


运行npc

#cd npc && ./npc -server=11x.xxx.xxx.x58:xx24 -vkey=mmsarsnnuftecg59 -type=tcp

二级代理模式解决固定IP问题_内网_18


(7)测试

二级代理模式解决固定IP问题_内网_19


(5)安全组/防火墙配置

在云管理平台上配置安全组/防火墙,放开:桥接端口(如:8024)、代理端口(如:8088)等等。具体根据需求而定,但web管理端口不建议放开。

2、Burpsuite配置

(1)Burpsuite本地代理

跟平时设置 Burpsuite 代理是一样的:打开ptions->Proxy Listeners,设置为:127.0.0.1:8080

二级代理模式解决固定IP问题_客户端_20


(2)设置上级代理

打开Burpsuite->User options->Connections->SOCKS Proxy -> Add

二级代理模式解决固定IP问题_内网_21


配置如下:

二级代理模式解决固定IP问题_内网_22


(3)测试

二级代理模式解决固定IP问题_内网_23


0x03 方案二:gost多级转发解决方案

1、gost简介

gost是一款由go语言实现的轻量安全隧道,全称Go simple tunnel。功能较为丰富,支持组建代理链路。

项目地址:​​https://github.com/ginuerzh/gost​

2、一级代理节点(公网代理节点)

下载gost:

#wget​​ https://github.com/ginuerzh/gost/releases/download/v2.11.5/gost-linux-amd64-2.11.5.gz​

二级代理模式解决固定IP问题_linux_24


解压:

gzip -dk gost-linux-amd64-2.11.5.gz

二级代理模式解决固定IP问题_linux_25


重命名和赋权

mv gost-linux-amd64-2.11.5 gost && chmod +x gost

二级代理模式解决固定IP问题_内网_26


(1)普通代理应用

运行:

#./gost -L=admin:123456@:6088

二级代理模式解决固定IP问题_客户端_27

(2)使用tls加密代理(服务端和客户端均需要配置ssl证书)

服务端配置:

A.制作证书

创建根证书

#openssl genrsa -des3 -out rootCA.key 4096

二级代理模式解决固定IP问题_客户端_28

Ps:如果不需要设置密码,删除-des3选项即可。

创建自签名证书

# openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt

二级代理模式解决固定IP问题_客户端_29

创建私钥证书

# openssl genrsa -out key.pem 2048

二级代理模式解决固定IP问题_客户端_30

创建公钥证书

# openssl req -new -key key.pem -out cert.pem

二级代理模式解决固定IP问题_内网_31

B.运行服务端

# ./gost -L socks5+tls://admin:123456@:6089?cert=./cert.pem&key=./key.pem

二级代理模式解决固定IP问题_linux_32

客户端配置:

A.制作证书(同服务端制作)

B.运行客户端

#./gost -L=:6089 -F=socks5+tls://admin:123456@11x.xxx.xxx.x58:6089?cert=./cert.pem&key=./key.pem

3、二级代理节点(内网代理节点)

(1)普通代理应用

同样的方式在二级节点服务器上部署gost。

运行:

#./gost -L=:6088 -F=socks://admin:123456@11x.xxx.xxx.x58:6088

二级代理模式解决固定IP问题_客户端_33

(2)使用tls加密代理(服务端和客户端均需要配置ssl证书)

略:见上一级。



4、测试

二级代理模式解决固定IP问题_内网_34