公司的互联网访问策略异常的严格(据说用的深信服),之前还能用 nps 的.某次升级后就连不上了. 从内网 ping 外网没问题,上网也没问题,但是各种指定端口的 tcp 都连不上.ssh 也无法使用. 感觉从内向外只放开了 80 和 443 端口?
这种情况下,还能实现内网穿透么?
1
IvanLi127 2022-09-21 08:15:23 +08:00 via Android
xray
|
2
zhqiang 2022-09-21 08:19:12 +08:00
没用过 nps ,但是感觉和 frp 应该差不了太多
公司也是封端口,只开放 80/443 使用 frp ,直接使用 443 端口映射到内网的 ssh 或者其他端口。 缺点一个公网 ip ( vps )只能映射两个端口,要是在想访问内网其他更多服务就比较麻烦了,没有那么多有公网 ip 得 vps |
3
gps949 2022-09-21 08:24:04 +08:00
本来一般也是靠 udp 穿透更靠谱,你说 tcp 连不上,udp 呢?
不过如果是深信服的 sase 可能比较难办,因为它实际上是所有流量先到它的 pop 节点,再统一由 pop 节点出去。你可以测试下用 ip 检测网站检测下你自己的公网 ip ,是不是和公司的出口 ip 不一样了(会变成它 pop 节点的 ip )。 据说深信服这玩意似乎绑定 mac ?好像虚拟机也搞不定?你可以尝试下修改网卡 mac 或者在桥接网络的虚拟机里连下试试。 |
4
xubingok OP @gps949 害.我们办公用的云桌面.我内网的机器实际上就是一台虚拟机.至于查看 ip 这个.我在 ip138 之类的网站倒是能看到自己的公网 ip.但是公司的出口 ip 不知道怎么查啊..
|
5
xubingok OP @zhqiang 你说的略高端,有点听不懂..
我感觉所谓的内网穿透,应该都是内网机器连接上外网的一台服务器(我在腾讯云有这样的 vps,有公网 ip).然后外网其他机器就可以通过这个跳板访问内网各种系统了. 现在就是内网使用 80/443 以外的端口都连不上外网机器. 但是做开发的时候发现用于 mqtt 的 websocket 似乎又能连上,一时之间也搞不清楚这个防火墙策略了... |
6
cpstar 2022-09-21 08:33:09 +08:00
难道还有协议检测?把 frp 的端口绑到 80/443 上行不?
|
7
cpstar 2022-09-21 08:36:21 +08:00
不对,反了,你这个是要内网往外穿,内网访问外边的非 80/443 。那不是内网穿透,然后把内网的用某种方法放到内网墙外,绕开墙上的 80 、443 限制。
|
8
lqw3030 2022-09-21 08:42:31 +08:00
是不是应该先考虑下为什么"公司的互联网访问策略异常的严格",V 站因穿网引发安全事件案例数不胜数了
|
9
zhqiang 2022-09-21 08:49:12 +08:00
没用过 nps ,但是感觉和 frp 应该差不了太多
公司也是封端口,只开放 80/443 使用 frp ,直接使用 443 端口映射到内网的 ssh 或者其他端口。 缺点一个公网 ip ( vps )只能映射两个端口,要是在想访问内网其他更多服务就比较麻烦了,没有那么多有公网 ip 得 vps @xubingok 不高端啊,和你得用法一样,你只要在你的 vps 上面设置 443 绑定到你内网机器得非 443 端口就可以了啊 不如你设置 vps 得 443 绑定到你内网某个机器得 3389 端口,这样你在 rdp 客户端设置连接得地址为 '公网 ip:443‘就可以了啊。 |
10
gps949 2022-09-21 08:50:07 +08:00
@xubingok
云桌面。。。那连 sase 都不用了。要我就懒得折腾了 如果没 sase (即从外部能正确判断公司出口 ip 原路回源)的话,可以尝试下 tailscale ,但就算能通多半也是走 derp 中转的。 如果它也不行,就得看你具体需求和情况,具体问题具体分析了,比如看是外面随处连公司还是公司连家里之类的。 |
11
cutepig 2022-09-21 08:54:17 +08:00 via Android
https://github.com/jpillora/chisel
这个应该可以,到但有机会被防毒软件报误报 |
12
zhqiang 2022-09-21 08:55:34 +08:00
@xubingok 你的意思是你要在公网通过内网穿透访问你公司内部得某台机子?如果这样要看你们公司得防火墙策略了。这个我没有试验过。
我们公司是浏览网页都没有问题,但是我想 ssh 连接外网,只能走 443/80 ,所有其他端口包括 ssh 都关闭了。所以我在公司想管理我得 vps ,除非是供应商提供了 webssh ,否则我只能回家搞。 目前我是家里开了一台 linux ,通过 frp 443 绑定到家里得 linux 得 ssh server 得端口来连接到家里,然后通过家里得 liunx 在 ssh 到公网得 vps ,管理所有得 vps |
13
yolee599 2022-09-21 09:03:52 +08:00 via Android
这个应该让运维解决吧,除非你就是运维,直接问客服
|
14
sujin190 2022-09-21 09:40:43 +08:00
都只开放 80/443 了,说不定还开着流量分析和上网行为分析,小心被抓啊,看起来老板挺看重这种行为的,别搞出个”大事“来,2333~
|
15
greatbody 2022-09-21 09:41:14 +08:00 via Android
建议自备电脑,用手机流量共享 WiFi 上网。否则可能被公司开除。
|
16
xubingok OP @cpstar 需求场景就是,我们干活在一台内网机器上面.但是这个机器用起来非常不爽.我想在外网的笔记本上干活,需要能从外网访问某些内网才能访问的系统,比如 gitlab,后端接口之类的.
之前的方式就是公网 vps 安装一台 nps 服务端,然后内网机器执行 nps 客户端,连上以后,就可以把公网 vps 当做代理,从外网访问内网各种系统了. |
17
xubingok OP @lqw3030 唉...这个风险我非常清楚.但是综合我的工作内容涉密程度,以及外网干活带来的效率提升,我愿意承担这个风险.
|
18
xubingok OP @zhqiang 我内网机器连公网 ip 都没有...咋可能把外网 vps 接口绑定到内网 3389 端口啊..而且防火墙估计也不会允许内网机器的 3389 可以被外网连上吧.
|
20
cpstar 2022-09-21 09:49:23 +08:00
OP 36# 哦,这么说,就正了。公网 frps 开 80/443 端口,内网 frpc 访问 frps 的 80/443 ,nps 类似。但是如果你们的设备检测协议即 http/https 内容的话,那就不行了——如 6#所述。
再者就是 14#说的问题,如果上了行为分析,那必然会检测协议内容,上述方法无效。 |
22
dogking2 2022-09-21 10:06:14 +08:00
|
23
luny 2022-09-21 10:28:39 +08:00
不建议折腾了,这是挑战公司红线的做法,后果比较严重
|
24
exqibao 2022-09-21 11:09:34 +08:00
如果没理解错的话,是公司向外访问,目标端口只允许 80 或 443 。
1.内网电脑搭 shadowsocks 服务的,端口 12345 ; 2.内网电脑起 frp 客户端,通过公网 vps ,把公网 443 端口转到内网 12345 端口; 3.公司电脑使用 shadowsocks 客户端,连接公网 443 端口,建立本地 socks5 代理,端口 1080 ; 之后,所有服务都通过本地 1080 端口代理访问,如果部分软件不支持设置代理,可以先使用 nadoo/glider 工具打洞,glider -listen tcp://:22 -forward socks5://localhost:1080,tcp://内网 ip:22 。 也可以不用 shadowsocks 之类的,直接内网建 socks5 代理服务,暴露到公网 443 端口上,只是不太安全。 如果有 https 协议分析的话,把 shadowsocks 服务换成 trojan 的。 |
25
weixind 2022-09-21 11:31:34 +08:00
建议换公司。不要干公司严令禁止的事。没必要。
|
26
Seanfuck 2022-09-21 12:09:35 +08:00
可以自己开发一个
|
27
EIJAM 2022-09-21 12:19:17 +08:00 via iPhone
云桌面一般不是都提供了互联网接入么,完全可以在自己的笔记本上开云桌面(笔记本走手机热点),剪贴板是共享的。
|
28
ysc3839 2022-09-21 12:43:25 +08:00
标准的 http 不行,因为发送请求后只能单向接收,http proxy connect 可以。
|
29
phiysng 2022-09-21 12:56:23 +08:00
楼上 HTTP CONNECT 正解,可以用七层协议传输 4 层的 TCP 数据
|
30
systemcall 2022-09-21 12:57:08 +08:00
开一个 trojan vmess vless 之类的,配置好伪装,只要没有 mitm 就基本上没法检测
要是公司会通过自签证书解密 HTTPS 流量,那什么伪装都是白瞎了,因为肯定还有别的监控 |
31
recall704 2022-09-21 13:05:23 +08:00 via iPhone
gost ?
|
32
mikewang 2022-09-22 02:07:11 +08:00
首先,建议遵守安全规定。
不过针对问题回答,可以 ping 通,就可以使用 icmp 隧道。使用 HTTP 的 Neo-reGeorg 也可以,不过个人觉得效率不是很高。十多年前的 GoAgent 也是基于 HTTP 的,那个时候还使用的是自签名证书。通过隧道后再 FRP 。 |
33
xubingok OP @exqibao 感谢回复.大概看懂了.就是用 443 端口拿给之前的 frp/nps 之类的用.毕竟内网机器不会连 443 都封.我先试试吧,再次感谢.
|
35
gujigujij 2022-09-27 18:17:32 +08:00
刚写完,基于 websocket 的,github: aHR0cHM6Ly9naXRodWIuY29tL3NhemltYS9uYXRfdHJhdmVyc2Fs
|
36
xubingok OP @gujigujij 卧槽.大佬感谢啊.我也想着实在不行用 socket 搞一个算了,公司总不能连 socket 都屏蔽吧.
只是 http 相关知识我是一片盲区,没想到大佬已经整出来了. 我这就去试试,感谢大佬~ |
37
xubingok OP @gujigujij 已试用.技术上是可行的.ws 超时时间 3s 还是短了点.用于实践的话还有些问题:
1.内网 https 的页面好像配置上去不行,不知道 config 文件是否支持域名. 2.用着用着 ws 就断了,可能需要一些重连机制. 技术可行,继续寻求方案的动力又有了哈哈 |
38
gujigujij 2022-09-30 19:00:22 +08:00
@xubingok 域名和 https 配置类似这样. 公网 https 测过, 内网没有测试.
``` { "server": { "port": 11111, "host": "t.xxxx.coxm", "https": true, "password": "helloworld", "path": "/websocket_path" }, "client": [ { "name": "ssh", "remote_port": 1222, "local_port": 22, "local_ip": "127.0.0.1" } ] } ``` 重连不知道稳不稳定, 刚开始写后来又 push 了好几次代码, 我需要再测测. |