我的家庭监控的安全使用办法

15 天前
 wanmyj

接上次我发帖征求家庭监控部署方案,在 v2ers 的帮助下,我了解到很多软件,也达成了满足需求的目的。
原帖地址:t/1122241


关于隐私与安全

在家庭监控中,隐私不可避免地会有一定程度的暴露。彻底的安全需要牺牲很多便利,因此我们必须在安全与易用之间找到平衡,这就需要建立“信任链”。

我个人信任路由器的防火墙和苹果的云服务,但国内厂商的软件及其云服务不在我的信任范围内。


我的需求

在有限信任链内搭建一套家庭监控系统,具备如下功能:


硬件部分

网络结构

我家服务器双网口分别连接:

服务器中通过 Hyper-V 启动一个 Linux 虚拟机
使用 OpenWRT 作为软路由,方便配置 VPN 和内网转发。
如果无公网 IP ,也可使用 SoftEther + OpenVPN 实现远程访问。


软件组件


以上实现的功能

P 一个大 S

如果你无所谓网络的性能的需求(200W 像素的码流大概 5Mbps),那你可以把摄像机直接放到上网的网段中,再通过路由器屏蔽连接外网的功能.

如果你无所谓录像的功能,那你也可以不用 iSpy ,直接用 homekit 完成所有需求。

设置 Scrypted 和 Homekit ,主要是解决老婆等家人对易用性的需求,其次 HomeKit 的体验度和视频的流畅度也是很高的。

HomeKit 在我的环境中有一个问题,就是在远程访问时候经常出现连接不上 Scrypted 网桥的问题,现象就是看不了摄像头的直播画面,随机出现,时而秒连,目前无解。

即使你没有 AppleTV ,或者对方便易用性要求不高,那么 iSpy 完全可以满足你的需求。在此基础上如果你对安全性要求也非极致的高,那其实 openvpn 也不需要,直接 ispy 设置访问密码,用公网端口转发就可以。


总结

这一条路我是已经完全走通的,但是这里边也有很多技术细节和踩坑的地方,我觉得一一写出来大家反倒太长不看。

看真正需要的人现在可以去动手做这些事情,如果在做的时候有遇到任何问题可以在评论区留言,我看到后如果是我踩过的坑就会回复。


致谢

献给我家的小公主 ——
没办法,老父亲实在是太爱了 ❤️


附图

使用蜂窝网络查看室内监控

iSpy 的 App 页面

iSpy 的 web 页面

1995 次点击
所在节点    程序员
15 条回复
fivemoons
15 天前
sentryshot 支持 rtsp 、录制回放、移动侦测,自托管完用 web 访问,刚用了不到一个月,稳定
https://github.com/SentryShot/sentryshot
HackerTerry
15 天前
您好,请问这些开源方案支持控制云台的旋转吗?
wanmyj
15 天前
@HackerTerry homekit 原生是无法支持的。ispy 支持设置 ptz ,有 ptz 巡逻和跟踪的选项,但是因为我家的监控没有 ptz 所以没有实验
yinmin
15 天前
windows server 内置“路由和远程访问”支持多网段路由和 vpn ( l2tp 、ikev2 、sstp ),可以替代 openwrt 虚拟机
wanmyj
15 天前
@yinmin 是的没错,WinServer 里面内置路由功能。但是从易用性和通用性的角度来说还是 openwrt 虚拟机或者实体机方便一些,遇到问题网上基本可以搜到。
dacancc
15 天前
@fivemoons 好用,计算了下,家里两个头,保存 1 周的录像得 1T ,本地化成本有点高
fivemoons
15 天前
@dacancc 看来是高端摄像头,我 1 个最便宜的天地伟业摄像头对着车库,300 万像素,H265 取流有问题,还要联系客服,我就改成 H264 了,一小时不到 1G ,后来在设置里开启 S+,现在一个小时才 300M
foru17
14 天前
https://luolei.org/secure-home-camera-setup
ONVIF 摄像头 + Surveillance + HomeKit + NodeRed
搭配自己写的 https://github.com/foru17/deepface-api 照片人脸识别,基本满足所有需求了。
kofjerrylee
14 天前
我是使用一套更简单的办法:
一、硬件资源
1 、J4125*1 装 PVE
2 、tplink 摄像头*2
3 、routeros 主路由*1
3 、阿里云清凉 VPS*1
二、软件部分
1 、虚拟黑群 surveillance station (负责录像),frpc 对接阿里,将 5001 端口映射,视频加密,并启用 https,安装 lucky 自动续期的 a.com 证书
2 、阿里清凉,frps 对接群晖,dns 解析 a.com 到阿里
2 、容器 lucky (负责证书续期更新)
三、具体使用部分
1 、手机无论何时何地何网,surveillance app 访问 https://a.com:5001 (阿里)->群晖 surveillance station:5001 读取录像,使用只读账号观看视频,实测手机观看单摄像头 h264 码流,家宽 5mbps 上传足以
2 、routeros 封禁摄像头的 mac 地址访问任何外网,只允许群晖访问,防止被黑或网络暴露

该方案虽然无法做到外网直连家里,但是我测试后最理性性价比较低的方案了。因为实测过使用 stun 打洞后动态重定向的方式不适合 surveillance app ,网页使用没问题,具体实测结果流程如下:
1 、在 ros 上跑 containet 的 lucky:实现了通过 upnp 动态映射端口、并将端口通过 stun 成功在 NAT1 上打洞;
2 、cloudflare 上添加 A 记录 IP 随便填给主域名(开启 CDN )
3 、在 lucky 上跑 webhook 将最新的打洞地址 https://xxx.xxx.xxx.xxx:xxxx 通过 API PATCH 到 cloudflare 的动态重定向规则,访问主域名自动 307 重定向到该打洞地址,以实现访问主域名可以得到最新的打洞地址;
4 、经过上述一番骚操作,浏览器访问主域名可以直接跳转到群晖的地址:5001 这个没有任何问题,但 surveillance station 无法直接通过该主域名访问,ios 的 ds cam 能够登入但会卡很久很久,登入后无法查看录像及实时视频流,经多次抓包调试及询问 GROK/GPT 最后基本确定是 APP 无法使用重定向的方式,固此这个方法以失败告终,无法满足手机访问家中群晖录像的需求
lovelylain
14 天前
折腾成这样,离易用有点远了,前帖里有个回复用 tplink 局域网设备的方案就很完美,只需要让家人打开 wireguard ,就能跟之前保持相同的使用体验。
magic3584
13 天前
有几个疑问请教:
如果被入户盗窃机器被搬走
1. 是否直接连上硬盘就能看到历史录像
2. 能否在云上查看历史录像?能否缓存到手机?
wanmyj
13 天前
@magic3584 recordings 被记录在移动硬盘上了,任何获取到移动硬盘的人都可以看到录像,任何没有获取到移动硬盘的人都看不到录像

可以实现远程查看历史录像,但录像还是存在移动硬盘里,不属于云上。
magic3584
13 天前
@wanmyj #12
虽说入室概率很小,但是我还是比较在意云备份,估计直接买支持 iCloud 的摄像头是最方便的了
wanmyj
13 天前
@magic3584 了解你的意思了。
我以上介绍的方案,就支持 iCloud 云备份摄像头的录像,但是他无法做到全程录像,只有在触发一些事件的时候才能录像,比如移动侦测等等。每次录像大概 15 秒,这些录像是储存在云上,可以在移动端访问的。

至于原生支持 iCloud 的摄像头能不能实现云端全程录像,我没买过也不是很确定了
hgert
13 天前
硬盘不上个阵列吗

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

https://yangjunhui.monster/t/1125010

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

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

© 2021 V2EX