【缘起】
一切都要从两盆花开始说起。
几位不愿意透露姓名的匿名人士送了两盆花过来,我放在阳台上,但是却经常要去浇水。懒惰如我,所以我想搞成自动化浇水,一劳永逸。
于是在淘宝上买了个自动浇花套餐,原理很简单,就是插到土里的土壤湿度探测器检测到土里水分不足就启动水泵抽水。
一顿操作猛如虎,自动浇花器接线完成可以工作了,不过线太多不美观,老板也不搞一个PCB板,想想所有元件不到十块钱,也就算了。
这里还有个问题,如果没水了水泵估计会烧坏,另外系统可能会故障,所以得有个实时监控系统监控水桶里面的水是否耗尽以及工作指示灯是否亮着。
简单起见我准备用远程视频的方式观察,是时候派出斥巨资购买的WaveGo了(小米的机器狗至今买不到)。WaveGo是一个小型四足机器狗,集成了摄像头,可以连接WiFi通过Web网页操控,那就让它在巡逻的时候走过去看下。
要远程控制WaveGo以及回传图像那还得在B网络能够远程连接A网络。还有一个需求,如果人在A网络,需要连回B网络去管理其他设备。
好了,现在的需求是要把AB两张宽带内网连起来。
【NAT内网互联的几种方案】
NAT互联一般有三种方案:端口映射、远程端口转发和P2P隧道。
端口映射是最简单的办法,就是在公网路由器上开一个端口转发/DMZ主机,让我想起了著名的端口转发工具fpipe。一般路由器都提供了这个功能,但是实测深圳的电信宽带拨号后获得的IP(100.*.*.*)不是公网IP而是一个大局域网,故这个方案无效。
第二个方案就是用远程端口转发,把内网的端口转发到有公网IP的服务器上,渗透的时候经常用到,可以用ssh(-R参数),也可以用frp、stunnel、ngrok、holer等工具来实现。这个方案需要有一个公网IP的服务器,如果没有也可以用花生壳、natapp之类的商业软件甚至硬件盒子。
这个方案还可以用于科学上网,需要有一台墙外服务器。不过我实测用国内某云的服务器速度一般,看网页还凑合,看视频会卡顿。
第三个方案是P2P隧道,就是用P2P协议实现两个NAT内网的打通,需要一台有公网IP的服务器做中转或者索引。中继和索引的区别大致就像下面这样。
几个方案一对比就可以看到,像GNB的这种P2P实现方案传输路径短效率高。
【“法海”体验感受】
话分两头。
自从Safe3创业后推出第一个WAF产品“南墙”,我还体验了一把,从官网推测以为他发布的第二个产品会是个EDR或者漏洞扫描系统,没想到是内网互联产品“法海”(fahi)。
以下是Safe3发的广告原文:
(最新的官网是 https://fh.uusec.com )
想请不如偶遇,正好有需求,那就体验下“法海”。
安装很简单,官网注册下,页面上提供了一键安装命令,目前支持Windows、Linux、Mac系统,功能都还在不断迭代中,未来还会支持Android、iOS。不得不佩服Safe3,全栈工程师啊。
正好有个闲置的树莓派4B(我只想知道为什么国内卖那么贵),就把它派驻到A网络去作为堡垒机7×24小时开机,结果测试版还不支持树莓派,来体验下光速完成需求的VIP服务:
我在B网络用Win10与A网络的树莓派联网,很快就装好了,系统会启动fahi服务,多一个名为MeshNet的虚拟网络,虚拟局域网就搭建起来了。各节点上线,有种木马上线的感觉啊,不过法海的服务器只负责在连接时做一下索引,数据是直连,私钥在本地,高效且安全。Safe3表示未来也可以把服务端也放出来,用户可以在自己的服务器搭建。这其实就是SaaS和私有部署的产品形态,从隐私安全角度,如果我是企业用户我也希望是私有部署。
试一试网速如何:
给树莓派开个RDP服务,Win10连上去看看:
在外面还可以用手机通过移动网络连上去,平时不怎么用的折叠屏手机终于可以展开了(用APKPure装Remote Desktop Manager,就是手机上的命令行运维太麻烦了):
如果要访问A网络的其他设备,最简单就是给设备都装上“法海”,不过有的IoT设备肯定装不了,同时为了减小供应链攻击的风险,就在两边网络用树莓派做堡垒机吧。“法海”已经支持路由功能,可以通过网页简单配置后直接访问对端网络,非常方便,免去了自己手动配置路由转发、路由表的运维工作 —— 看,这就是SRE啊。
抓包可以看到“法海”底层是基于WireGuard协议的,赶紧学习下新东西,看起来WireGuard协议比其他协议性能要好一些。
另外要提醒一下,自己家用无所谓,在办公环境不要随意使用内网穿透软件,可能会产生安全事故!
【“法海”的未来】
闲暇跟Safe3聊了聊,原来“法海”只是一个宏伟项目的一部分。这个宏伟项目是个大的安全客户端,包含零信任网络、EDR、DLP等功能 —— 每一个都是一个大工程,期待。
随着端上的安全软件越来越多,不同领域的软件之间能力还有重叠,我感觉像补丁管理、安全基线、资产管理、HIDS/HIPS、杀毒、终端准入、主机防火墙、微隔离、DLP等等这些端上的安全能力迟早会被一个强大的EDR统一,是为OneSecAgent。
【后续】
扯远了,我一开始是要做什么来着?哦,想起来了,如果自动浇花系统有问题了还要人工去看,这个方式不够优雅,准备加一个水位传感器,没水了就发短信通知隔壁栋的xysky或者彭星去加水,哈哈。
【参考资料】
P2P之网络穿透NAT,NAT、穿透的原理,https://zhuanlan.zhihu.com/p/299524798
树莓派内网穿透方法大全,https://blog.csdn.net/concefly/article/details/115076359
WireGuard 教程:WireGuard 的工作原理,https://icloudnative.io/posts/wireguard-docs-theory/
技术解码 | WebRTC ICE 模块剖析,https://cloud.tencent.com/developer/article/1855989