惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LangChain Blog
P
Privacy & Cybersecurity Law Blog
Hugging Face - Blog
Hugging Face - Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
大猫的无限游戏
大猫的无限游戏
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
A
Arctic Wolf
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
The GitHub Blog
The GitHub Blog
P
Privacy International News Feed
WordPress大学
WordPress大学
U
Unit 42
S
Securelist
T
The Exploit Database - CXSecurity.com
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Proofpoint News Feed
Latest news
Latest news
Hacker News: Ask HN
Hacker News: Ask HN
小众软件
小众软件
Know Your Adversary
Know Your Adversary
The Cloudflare Blog
V
Vulnerabilities – Threatpost
The Hacker News
The Hacker News
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
Security Latest
Security Latest
Google DeepMind News
Google DeepMind News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - Franky
Y
Y Combinator Blog
博客园 - 叶小钗
Security Archives - TechRepublic
Security Archives - TechRepublic
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
S
Secure Thoughts
T
Threat Research - Cisco Blogs
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
Microsoft Security Blog
Microsoft Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 司徒正美
M
MIT News - Artificial intelligence

治部少辅

Emscripten Fetch 接口的一个潜在内存泄漏问题 | 治部少辅 在 VPN 场景下的跨子网通信防火墙配置方法 | 治部少辅 Windows 环境下 Maven 的安装以及代理设置 | 治部少辅 引发 LTO 优化后续错误的一种可能及解决方法 | 治部少辅 OCCT Visualization 文档通读与理解 | 治部少辅 通过硬链接方式来衔接 PT 下载文件和 Jellyfin 库 Unraid 上 Nextcloud 的部署问题 | 治部少辅 Unraid: 解决 12 版本中网页界面无法打开的问题 | 治部少辅 Ubuntu 中如何彻底删除一个用户 | 治部少辅 读论文: Segment Anything | 治部少辅 Weekly-87 | 治部少辅 Weekly-86 | 治部少辅 Weekly-85 | 治部少辅 读论文:一种音频事件识别方法 | 治部少辅 读论文:CADTransformer | 治部少辅 解决在 Openvpn 客户端中部署的 Web 服务不可用的问题 如何使用 Proxifier 来进行流量代理控制 | 治部少辅 使用 Shadowsocks 访问 ChatGPT 频繁出现 Something Went Wrong 问题的解决方法 读论文: 基于图卷积网络实现的三维室内场景构建 | 治部少辅
介绍一种"新"的隧道技术: spiped | 治部少辅
治部少辅 · 2023-04-02 · via 治部少辅

在之前的文章SSH隧道:访问翻墙服务器的临时性手段 的时候介绍了一种使用 SSH 隧道进行端口映射,进而进行手动的流量混淆的技术。就稳定性来说这个方案是经受了考验的。在过去几年里,无论任何时候 SSH 隧道都是能够提供稳定可靠的链接的。不过,SSH 隧道的性能是一个问题。根据 Stackoverflow 上的 这个问题下的回答 来说:“当你通过TCP隧道传输TCP时,性能问题就会出现,因为您有两个层执行自适应纠正”。在这篇文章里面我介绍一个较新的方案。

简介

新的方案设计一个新的工具:spiped(github)。spiped是一种安全的、轻量级的加密通信工具,可用于在不安全的网络中传输敏感数据。它的设计目标是提供简单、易于配置和使用的加密通信,而不需要复杂的密钥管理或公钥基础设施。spiped使用对称密钥加密算法,可以在客户端和服务器之间建立加密通道。它可以用于保护各种类型的数据流,包括SSH、Telnet、HTTP和SMTP等协议。spiped的另一个优点是它可以在不同的平台上使用,包括Linux、FreeBSD、OpenBSD和Windows等操作系统。

使用方法

spiped 的使用非常简单。在 Ubuntu 上可以通过 apt 来安装。也可以自行编译。在完成安装以后,我们首先进入服务端,运行下面的命令生成一个秘钥:

1
dd if=/dev/urandom bs=32 count=1 of=keyfile

其中 keyfile 是生成的秘钥文件,注意将其保管到合适的位置。然后用下面的服务启动 spiped 服务端服务:

1
spiped -d -s '[0.0.0.0]:8025' -t '[127.0.0.1]:25' -k /path/to/keyfile

注意,不同于 ssh 使用同一个 TCP 链接来走所有的隧道流量,spiped 会为每个流创建一个独立的 TCP 链接。因此在做代理中介使用时,spiped 可能会需要创建数量较多的 TCP 链接。spiped-n 配置可以指定最大链接数量,这个数值默认是 100,对于代理应用来说这是不够的。你可以将其设置为 10000。

其中 -s 后的地址是服务端的监听地址,-t 的转发的目标地址,-d 表示将加密的流量从 -s 后的地址解密后发往 -t 后面的地址。这里我们可以填写 Shadowsocks 服务监听的地址。注意 Host 可以保持成 127.0.0.1 的形式。这样,我们可以在防火墙中把 Shadowssocks 的公网监听端口关闭,仅允许从加密隧道访问,这样可以提升安全性。

上面的命令在输入后会自动进入 Daemon 模式运行。

然后我们来到客户端(一般是跳板机),将服务端生成的秘钥文件下载到客户端,运行

1
spiped -e -s '[127.0.0.1]:25' -t $SERVERNAME:8025 -k /path/to/keyfile

其中 $SERVERNAME 是服务端的 IP 地址。注意用 [] 包裹的形式来填写。如果这里说的客户端也是 Shadowsocks 的机器,那么这里的源地址(-s 后的地址)可以写 127.0.0.1,但是如果是跳板机,那么应该写成 0.0.0.0

在上面的设置中,方括号内可以写入 IPv6 地址,但是注意 IPv6 的全网段监听地址就不能写 [0.0.0.0] 了,而是要写 [::]

客户端的程序也是会自动进入 Daemon 模式运行。

完成设置之后,访问客户端(跳板机)的 25 端口就相当于直接访问服务器的 25 端口。

后记

请注意,spiped:

  • 需要一个强密钥文件:通过-k选项指定的文件应该具有至少256位的熵。(dd if=/dev/urandom bs=32 count=1是你的好朋友。)
  • 需要来自/dev/urandom的强熵。(确保您的内核的随机数生成器在引导时被种子化!)
  • 不提供任何防止通过数据包计时泄露信息的保护:在spiped上运行telnet会保护密码不会被直接从网络中读取,但不会掩盖输入节奏。
  • 对于交互式会话,可以显着增加带宽使用:它以1024字节的数据包发送数据,并将较小的消息填充到此长度,因此如果不能与相邻字节合并,则1字节的写操作可能会扩展到1024字节。
  • 使用对称密钥——因此,任何可以连接到spiped“服务器”的人也可以冒充它。