在 nginx 的同一个端口上运行多个协议

2018-04-13 13:44:56 +08:00
 fffonion

https://github.com/fffonion/lua-resty-multiplexer

实现了一个端口服务复用的透明代理,可以在同一个端口上运行多个协议。根据每次连接中客户端发起的首个请求检测协议,根据协议或各种条件选择代理的上游。

需要打一个补丁。由@fcicq这个讨论中贡献。这个补丁实现了 BSD 的 socket recv()语义。目前官方也有这个 feature 的PR

欢迎讨论和拍砖: )

说明

7451 次点击
所在节点    NGINX
21 条回复
fffonion
2018-04-13 13:45:11 +08:00
测试 ip
```shell
curl https://104.140.14.46:19999 -H "host:www.google.com" -k
curl 104.140.14.46:19999
ssh 104.140.14.46 -p19999 -v
dig www.google.com +tcp @104.140.14.46 -p19999
```
fffonion
2018-04-13 13:59:16 +08:00
做这个的目的是想要骗过一些主动探测的机制( https://ensa.fi/active-probing/imc2015.pdf ),但是如果某 IDS 用重放的方法来检测协议的话,所有特征都是一样的。所以这个模块可以让你根据时间来选择不同的行为,比如奇数分钟选择 tls 协议后端,偶数分钟选择 http 协议后端。
jinhan13789991
2018-04-13 13:59:32 +08:00
顶一下,虽然看不懂。但是感觉很高达上的样子。
BOYPT
2018-04-13 14:01:18 +08:00
有用,其实 nginx 自己能检测到 http 发了到 https 端口,也有提示的,但是没留出 api 可配置而已。
jeffson
2018-04-13 14:23:56 +08:00
Mark
est
2018-04-13 14:28:22 +08:00
@fffonion IDS 重放跟你的做法应该是一样的,是根据首个包进行 per connection 分析的。

没有理由相信重放一次,就标记为该端口以后一直是这个协议了。。。。
qnnnnez
2018-04-13 14:30:25 +08:00
peek?
lieh222
2018-04-13 14:59:47 +08:00
ssh 不是服务端先发消息的吗。。
lfzyx
2018-04-13 15:31:00 +08:00
然后用这个反向代理 ss?
Tokin
2018-04-13 15:46:59 +08:00
我第一个想到的就是反代。。。A 端口代理 B 端口,这样用户访问的时候完全感受不到 B 端口。
lbp0200
2018-04-13 15:47:38 +08:00
chairuosen
2018-04-13 15:48:19 +08:00
我有一个大胆的想法
wxl1380610
2018-04-13 16:34:23 +08:00
mark
frostnotfall
2018-04-13 16:50:20 +08:00
Mark
wildcat007
2018-04-13 17:16:25 +08:00
@chairuosen 收起你的大胆想法~其实我也有个大胆想法··
hard2reg
2018-04-13 17:26:52 +08:00
不就是这个吗? https://doub.io/ss-jc48/
fffonion
2018-04-14 00:19:28 +08:00
@est 检测到了会封一段时间,如果是 tls 检测到了证书可能是无期
fffonion
2018-04-14 00:21:09 +08:00
@lieh222 这个取决于客户端的实现
fffonion
2018-04-14 00:23:55 +08:00
@lbp0200 我也是看到这个之后做的,希望能实现一个更加简单好用的框架
xseven007
2018-06-05 15:13:39 +08:00
如果能够实现 sni 就好啦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/446531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX