专为隐匿安全进行优化的网络工具新王者–QUIC 协议之NaiveProxy

专为隐匿安全进行优化的网络工具新王者–QUIC 协议之NaiveProxy

一:什么是 NaiveProxy

NaiveProxy,挪威语叫 NaïveProxy ,翻译成中文:“天真的代理”,是2019年底由 klzgrad 大神开发的一种新型网络代理技术,它使用Chrome的网络堆栈来伪装流量,具有较强的保护隐私能力和较低的可检测性,重用 Chrome 网络堆栈是确保性能和安全性的最佳实践,目前使用人数相对较少,在2022年几个特殊日子存活率据说还不错!搭建也是比较简单的。

NaiveProxy还可以缓解以下流量攻击:

  • 网站指纹识别/流量分类:通过 HTTP/2 中的流量多路复用来缓解。
  • TLS参数指纹识别:因重用Chrome的网络堆栈而失败。
  • 主动探测:被应用程序前端击败,即通过应用层路由将代理服务器隐藏在常用前端的后面。
  • 基于长度的流量分析:通过长度填充缓解。

该代码由一系列补丁程序组成,这些补丁程序在每个新的Chrome版本中都经过了变形和重新设计。

NaiveProxy项目地址:https://github.com/klzgrad/naiveproxy

NaiveProxy 是 Caddy Web 服务器的转发代理插件,一个插件都这么厉害。那么 Caddy 又是什么东西?

Caddy是什么

Caddy 是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。

作者 Matt Holt 于 2014 年 12 月开始开发 Caddy ,并于 2015 年 4 月发布第一个版本。在发布后的一年里,它的下载量超过了 20000 次,并在 GitHub 上获得了 4500 个 Star。

Caddy 支持各种 Web 技术,提供静态编译的二进制文件,支持 i386、amd64 和 ARM 架构上的 Windows、Mac、Linux、Android 和 BSD 操作系统。

Caddy 具有自动 HTTPS 的快速且可扩展的多平台 HTTP/3 Web 服务器

Caddy官网:https://caddyserver.com/

GitHub项目地址:https://github.com/caddyserver/caddy

二:NaiveProxy服务器搭建教程

需要注意的是443端口必须没有被Nginx等占用,也就是说以后建立网站不能用Nginx、apache作为web服务端。

1,手动搭建

安装 GO

Go官网下载地址:https://go.dev/dl/

在安装之前,首先使用 lscpu 查看一下服务器的CPU架构。“linux-amd64” cpu不同这里需要修改代码。

1
2
3
4
5
6
7
8
9
10
11
12
## 下载 GO 最新版
wget "https://go.dev/dl/$(curl https://go.dev/VERSION?m=text).linux-amd64.tar.gz"

## 解压至/usr/local/
tar -xf go*.linux-amd64.tar.gz -C /usr/local/

## 添加 Go 环境变量:
echo 'export GOROOT=/usr/local/go' >> /etc/profile
echo 'export PATH=$GOROOT/bin:$PATH' >> /etc/profile

## 使变量立即生效
source /etc/profile

检测golang有没有安装上,输入命令

go version 

能够正常显示GO语言版本,就表示已经安装成功了。

安装NaiveProxy

由于NaiveProxy是和Caddy捆绑在一起编译的,所以你不能单独安装Caddy,务必按照命令执行。caddy 是用golang编译的具有自动TLS功能的HTTPS服务程序。

一定要安装带 forwardproxy 和 naive 插件的 caddy ,否则需要单独安装这两个 caddy 插件。

安装之后可以使用caddy list-modules | grep forward_proxy命令来查看。

xcaddy项目地址:https://github.com/caddyserver/xcaddy

Xshell命令行输入命令:

apt install golang-go

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive

cp caddy /usr/bin/

/usr/bin/caddy version

setcap cap_net_bind_service=+ep /usr/bin/caddy

#使用setcap命令设置 /usr/bin/caddy 可以非ROOT用户启动1024以下端口。

setcap -r /usr/bin/caddy #清除附加权限。

编译完成后,将 caddy 文件夹拷贝到 /usr/bin 目录,之后查看一下是否编译成功。显示版本号,就已经编译成功了。

编译成功后,可以看到当前目录中存在一个名为caddy的文件。

Caddy.json配置文件:

https://www.vrrmr.net/Code/caddy.json 自己去下载修改。

使用 acme.sh 申请和自动续签 SSL 证书

#新建存放caddy.json的目录
mkdir /etc/caddy/
#把上边自己修改好的caddy.json放到/etc/caddy/里
#生成强密码,输入下面命令,在服务器上自动生成一串强密码。
cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c32; echo;

启动服务

修改好配置文件后,启动 caddy 。在启动 caddy之前,你需要先格式化配置文件,否则会报错

# /etc/caddy/caddy.json  自己把caddy.json放在哪里下边代码就修改哪里

#格式化配置文件
caddy fmt --overwrite "/etc/caddy/caddy.json"
caddy run --config "/etc/caddy/caddy.json"
# 以后台的方式启动 caddy
caddy start --config  /etc/caddy/caddy.json
# 以前台的方式启动 caddy
caddy run --config  /etc/caddy/caddy.json
# 停止
caddy stop 
# reload 配置文件 
caddy reload  --config  /etc/caddy/caddy.json
# 安装 CA 证书到本地目录
caddy trust
# 格式化 Caddyfile 
caddy fmt --overwrite /etc/caddy/caddy.json
#关闭后台依然运行命令
nohup ./caddy run --config /etc/caddy/caddy.json >caddy.log 2<&1 &

如果需要可以手动创建一个自启动配置文件。注意不要使用命令来启动caddy。

vi /etc/systemd/system/naive.service

将下面内容粘贴到 naive.service 文件中后 :wq 保存退出vi编辑模式。

[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
Type=notify
User=root
Group=root
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/caddy.json #根据自己的地址修改
ExecReload=/usr/bin/caddy reload --config /etc/caddy/caddy.json # #根据自己的地址修改
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

自启动文件创建完毕后,启动caddy:

#daemon-reload 加载新的 unit 配置文件
systemctl daemon-reload
#enable 创建 unit 配置文件的软链
systemctl enable naive
#start 启动配置文件
systemctl start naive
#status 查看配置文件当前状态
systemctl status naive

查看以喜爱配置文件的当前状态,绿灯表示 caddy 已经启动成功了。

检查 Caddy 是否正在侦听端口80和443:

ss -tulpn | grep caddy

手动安装配置完毕:

2,一键安装脚本:3个一键脚本,大家自己选择用吧

1)执行一键搭建脚本命令:

yum install wget -y
# 如果是debian系统是apt install wget
wget https://raw.githubusercontent.com/imajeason/nas_tools/main/NaiveProxy/install.sh
bash install.sh

2)执行一键搭建脚本命令:

apt update
apt install -y curl
bash <(curl -L https://github.com/crazypeace/naive/raw/main/install.sh)

3)执行一键搭建脚本命令:

wget -N https://gitlab.com/rwkgyg/naiveproxy-yg/raw/main/naiveproxy.sh && bash naiveproxy.sh

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容