[NAS] 不对公众提供网络服务的话,完全没必要对外暴露任何端口

最近肥牛的 0day 漏洞很火,分享下我的观点:

普通人如果不对不特定公众人群提供网络服务的话,完全可以不对外暴露任何端口,以获得最大的数据安全。

那在外如何访问家里的数据呢,只需要一个中转服务,把当前设备的 IP 传递给家里的防火墙即可。分享下我的实现方式

  1. 本地防火墙默认 drop 掉所有的入栈请求,注意是 drop 不是 reject 。被扫描时选择不回应,而不是大喊“不准进”,网络黑暗森林法则
  2. 本地防火墙上运行一个监听脚本/程序,只通过 cf tunnel 监听来自 cf worker 的认证后的请求,不监听公网请求
  3. 在 cf Worker 上部署一个中转脚本,用于接受远程设备的 ip 并转发给本地防火墙
  4. 远程设备,比如手机需要访问家里的设备时,先访问 cf worker 脚本,脚本将设备的 IP 和请求端口等信息传递给本地防火墙的监听程序,再由其加入到防火墙的临时白名单里,允许 10 分钟内入栈连接。超时后将 ip 移出白名单
  5. iOS 设备可以利用快捷指令,在启动某个 App ,比如群晖 Photos 时自动后台访问 worker 脚本,将当前设备的 IP 传递给家里的防火墙,基本可以无感直接访问家里。其他有更高权限的系统,完全可以将设备的 IP 变动实时传递给家里

其中第二步也可以简化为只运行一个轮询脚本,通过 cron job 不断轮询 cf worker 获取最新的白名单 IP 。时效性比通过 cf tunnel 监听稍差。自己有 VPS 的话可以通过其他方式与 VPS 建立一个长连接传递白名单 IP ,增加时效性

原始链接: https://www.v2ex.com/t/1190516#reply0
侵权请联系站方: [email protected]

相关推荐

换一批