我通过家庭安全助理监控我的家庭网络

家庭网络的安全性已成为人们真正关注的问题。

在连接对象,语音助手,IP摄像机,NAS,智能手机和家庭自动化设备之间,我们的本地网络越来越像小型企业网络。

我们不会逃避网络犯罪分子的大规模攻击。

经过几年的家庭自动化系统升级,我想添加一个被动网络监控层:

  • 不影响业绩;
  • 不改变交通;
  • 不把电网变成煤气厂。

为什么要监控本地网络?

大多数联网设备不断与互联网通信:

  • 联网电视;
  • 语音助理;
  • 家庭自动化插座;
  • 摄像机;
  • IoT 对象;
  • 移动应用;
  • 等等。

问题:

  • 并不总是清楚他们发送的是什么。
  • 也不为谁服务。
  • 和多少次。

网络监控尤其使以下方面成为可能:

  • 检测未知设备;
  • 查明可疑行为;
  • 查看哪些设备向外说话;
  • 识别网络扫描;
  • 识别异常流量;
  • 或者只是为了更好地理解你的网络。

我的目标与这个装置

目标很简单:

  • 观察网络流量;
  • 检测异常行为;
  • 在家庭助理中集中警报;
  • 余下100 % 当地...

为此,我选择了基于以下基础的架构:

  • 具有镜像端口的可管理开关;
  • 专门用于网络分析的Raspberry Pi;
  • 家庭安全助理集成家庭助理。

但我想要一个解决方案:

  • 被动;
  • 谨慎;
  • 可靠;
  • 当地;
  • 独立于路由器。

采用的原则是在许多专业环境中使用。

我 网络 架构

我的网络组织如下:

互联网 Freebox(bridge mode)※ Router Synology Ø Switch 可管理的 Zyxel GS1200-5 - 其他交换机 - 端口镜像 → Raspberry Pi IDS

我设置端口镜像

交换机复制来自特定端口的网络流量,并将其发送到另一个专门用于分析的端口。 我们通常谈论 镜像 港, 或 跨 式 跨.

例如:

  • Raspberry Pi收到包裹的副本;
  • 在网络上不可见;
  • 不改变交通;
  • 并且不会成为基础设施的关键点。

老实说,如果他摔倒了,如果他烧伤,如果他厌倦了为我工作,这对房子的家庭自动化安装没有影响。

为了我与其他小家庭的关系健康,我的手工艺不应该阻止灯光打开或浇水。

我花了多少钱?

在我家设置安全调查不会花费我太多,因为家庭预算有许多其他优先事项。

因此,唯一的金融投资是添加一个可管理的开关,我之后详细说明。 这让我付出了代价: 17,36 €.

我已经在抽屉里有以太网电缆和旧的Raspberry Pi 3B+。

如果您需要购买Raspberry Pi 3B +,您会发现它的价格约为40欧元。 我将不亚于: 在我看来,3B+是这种用途的最小值。 如果你有选择,直接喜欢Raspberry Pi 4。

因此,如果您必须购买交换机和树莓,我们的总体预算约为60欧元。

如果您将SD卡替换为SATA SSD,则无需花费大量: 一个20到32GB的型号已经足够了。 在USB中,通过一个小盒子,它既方便又易于使用。

我使用的设备

选择 Zyxel GS1200-5 可管理开关

我选择了:

为什么这个模型:

  • 紧凑型;
  • 消音器;
  • 低消费;
  • 简单的Web管理;
  • 支持镜像端口;
  • 非常合理的价格。

这对家庭自动化实验室或先进的住宅网络来说是一个很好的妥协。

我 准备 Raspberry Pi

Raspberry Pi将作为网络探测器。

树莓:

  • 不开车;
  • 不过滤任何东西;
  • 不用作防火墙;
  • 它只是监听交换机发送的镜像流量。

我建议:

  • 至少有 4 GB 的 Raspberry Pi 4,即使我使用了我已经拥有的 Raspberry Pi 3B+;
  • 理想情况下,使用USB SSD。

为什么要避免使用SD卡:

  • ID 工具会写很多日志;
  • SD卡很快就用完了。

为什么我更喜欢镜像开关而不是IDS防火墙?

一些解决方案,如:

  • pfSense;
  • OPNsense;
  • 或直接在路由器上的Suricata;

他们非常强大。

但就我而言,我想:

  • 将分析与主网络分开;
  • 避免与IDS相关的任何网络中断;
  • 保持模块化架构;
  • 能够在不影响互联网的情况下停止分析。

被动模式带来了几个优势:

  • 无延迟;
  • 对交通没有影响;
  • 无网络依赖;
  • 简洁性;
  • 安全 安全

即使树莓植物:

网络继续正常运行。

我配置了 Zyxel GS1200-5 交换机

我做了第一个开关的开始

在将交换机集成到主网络之前,我首先进行了与笔记本电脑直接连接的初始配置。

这种方法可以:

  • 配置开关悄然退出生产;
  • 避免网络冲突;
  • 立即安全管理员访问;
  • 在集成到真实网络之前准备镜像端口。

拆包后:

  • 电源的连接;
  • 笔记本电脑与交换机端口1的连接;
  • 暂时停用计算机上的Wi-Fi;
  • 在以太网网卡上配置静态 IP 地址。

默认情况下,Zyxel 交换机使用地址:

192.168.1.3

因此,我暂时将PC配置为:

参数 参数 值 值
IP 地址 192.168.1.50
面具 面具 24
网关 网关 192.168.1.1

一旦两个设备都位于同一个子网中,交换机就会立即响应ping。

Web 管理仅在最近的固件上的 HTTPS 中工作。 因此,连接是通过以下方式进行的:

https://192.168.1.3

然后,浏览器会显示一个自签名的SSL证书警告,这在这种类型的设备上是完全正常的。

第一次连接:

  • 交换机立即要求更改管理员密码;
  • 然后访问配置接口变得可用。

然后我:

  • 禁用交换机的 DHCP 客户端;
  • 分配一个固定的IP地址,可选的,但我放 192.168.1.11 ;
  • 在集成到主网络之前保存了配置。

这个准备阶段可以立即:

  • 正确配置的开关;
  • 已知的行政地址;
  • 在投入生产之前有一个稳定的配置。

我访问本地网络上的交换机

该交换机现在可以通过HTTPS访问:

https://192.168.1.11

我可以呆在我的笔记本电脑上,或者把它连接到本地网络。 交换机现在有固定的IP,所以没有冲突。

i 配置端口

选择配置 :

港 港 使用 使用
港口 1 号 港 合成 路由
港口 2 号 港 本地网络
3 号 港 本地网络
港口 4 号 港 本地网络
5 号 港 Raspberry Pi IDS

我准备一个小标签,我会粘在开关上。

下面是结果:

我 配置 Port Mirroring

原则:

  • 从连接到路由器的端口复制流量;
  • 前往Raspberry Pi的港口。

配置的参数 :

参数 参数 值 值
镜像 港 启用 启用
镜像 方向 两个
镜像 港 港口 1 号 港
监视 港 5 号 港

『两者』模式很重要: 它允许您看到传入和传出的流量。

❓ 为什么我不镜像所有的端口?

这是一个经常出现的问题。

在实践中:

  • 监控路由器的端口已经足够了;
  • 这使得观察所有互联网流量成为可能。
  • 不必要地超载Raspberry Pi。

镜像所有端口:

  • 大大增加了交通量;
  • 生成重复;
  • 并能使分析系统饱和。

对于家庭网络,路由器端口的镜像就足够了。

默认情况下我离开 VLAN

不需要特定的VLAN配置,我默认保留了所有内容。

所有港口都保留:

  • 在VLAN 1中;
  • 在无标记模式下。

对于一个经典的住宅装置,它完美地工作。

⚙ 我几乎默认离开 QoS、LAG 和 IGMP

默认情况下,交换机的其他高级功能已经留下:

  • 无链路聚合;
  • 没有具体的QoS;
  • 激活 IGMP Snooping;
  • EEA 残疾

目的是保持:

  • 简单的行为;
  • 稳定;
  • 可预测的。

安装 Raspberry Pi 网络监控

一旦配置了可管理的交换机,镜像端口开始运行,现在就需要建立能够分析家庭网络流量的网络传感器。

目的不是阻止流量或更换路由器,而只是建立一个完全被动的监控系统,能够观察本地网络上发生的事情。

想法很简单: Zyxel交换机通过镜像端口复制网络流量,然后将此副本发送到专门用于分析的Raspberry Pi。

然后,树莓变成了一种『网络监控摄像头』,能够观察连接的设备、外部连接、DNS交换、TLS流、可疑行为或某些已知攻击。

为什么我使用Raspberry Pi?

Raspberry Pi非常适合这种类型的使用:

  • 低功耗;
  • 完全无声的操作;
  • 降低成本;
  • 紧凑的格式;
  • 非常适合24小时手术。

我家里有几种型号: Raspberry Pi 3B 和 3B+

最终选择是Raspberry Pi 3B +,它在功率,稳定性和消耗之间提供了良好的妥协。

选择存储

我想避免经典的microSD卡。

即使它们适用于简单的项目,它们也不支持长期的密集写入,特别是在连续生成网络日志时。

因此,我选择使用:

  • a 2.5 SATA SSD;
  • USB到SATA适配器;
  • Raspberry Pi OS Lite 64位

目标是获得一个装置:

  • 更可靠;
  • 更快;
  • 更具可持续性;
  • 随着时间的推移,更加稳定。

安装系统 I install the system

该系统与Raspberry Pi Imager直接安装在SSD上。

我选择了:

  • Raspberry Pi OS Lite 64位;
  • 预配置的 Wi-Fi 连接;
  • 安装时启动的SSH;
  • 个性化主机名;
  • 在第一次启动后自动更新系统。

一旦它开始,Raspberry立即出现在家庭Wi-Fi网络上。

然后从Synology路由器分配了一个固定IP,以便于远程管理。

在这一点上,我设置了IP地址,每个都有自己的方法,我在Synology路由器上做,但这可以在树莓上完成,请注意,从这里,每次我使用。 192.168.1.222,这将是树莓的IP.

我检查系统基础是否健康

在安装 Suricata 之前,我更喜欢检查系统基础是否健全。

这个想法很简单: 在将Raspberry转换为24小时网络探头之前,必须确保系统在SSD上运行良好,电源稳定,温度正确,网络接口处于预期状态。

完整的系统更新

sudo apt update && sudo apt full-upgrade -y

更新后,重新启动可以干净的基础上重新启动:

sudo 重启

我检查树莓在SSD上是否开始良好

lsblk 的

预期结果:

SDA - sda1 /boot/固件 π-sda2 /

这里最重要的一点是看到根分区。 / 从那以后就已经安装得很好了。 /dev/sda2.

这证实了Raspberry在USB SSD上运行良好,而不是microSD卡。

查看可用磁盘空间

DF-h 的

预期结果:

/dev/sda2 29G 3.0G 25G 11% /dev/sda1 505M 65M 440M 13% /boot/Firmware

在我的情况下,32 GB SSD为系统,Suricata和日志提供了充足的空间,前提是文件是自动旋转的。

我检查网络接口

IP a

连接镜像端口之前的预期结果:

eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> inet 192.168.1.22/24

在此架构中,Wi-Fi用于管理SSH中的Raspberry。

以太网接口 eth0 级, 它将保留用于从交换机的镜像端口捕获网络流量。

我检查温度

vcgencmd measure_temp

取得的成果:

Temp=40.8'C

在40到60°C左右的温度对于这种类型的使用是完全正确的。

因此,Raspberry将能够在没有任何特定问题的情况下连续工作。

我检查进食和节流

vcgencmd get_throttled

预期结果:

节流器=0x0

这是一个非常重要的一点。

值 值 0x0 的 这意味着 Raspberry 无法检测到:

  • 或不电压;
  • 频率限制;
  • 没有喂养问题。

我检查系统是否为64位

Uname-a 的

预期结果:

Aarch64 GNU/Linux

的 存在 aarch64 的 确认已安装Raspberry Pi OS Lite 64位。

安装 Suricata

一旦树莓全面运行,我安装了入侵检测系统(IDS)引擎,它将分析网络流量: 苏里卡塔

苏里卡塔的选择很自然:

  • 开源;
  • 广泛应用于专业领域;
  • 高级协议分析;
  • 支持JSON日志;
  • 家庭助理兼容性;
  • 检测网络异常;
  • 指纹 JA3 和 JA4
  • 自动更新规则。

苏里卡塔 安装

sudo apt install suricata -y

安装完成后,我检查了版本和编译的功能:

Suricata -build-info

预期结果:

Suricata 7.x AF_PACKET 支持: 是eBPF支持: JA3 支持: JA4 支持: 是 是

此步骤可以确认:

  • Suricata安装良好;
  • Linux网络支持是活跃的;
  • 提供JA3/JA4打印件;
  • 引擎在Raspberry Pi上正常工作。

✅ 我 查看 Suricata 服务

sudo systemctl 状态 Suricata

预期结果:

活跃 : 活跃(running)

该服务在 Raspberry 启动时自动启动。

我安装了检测规则

默认情况下,Suricata 几乎不包含任何活动规则。

因此,有必要下载网络签名数据库。

我选择了社区规则新兴威胁开放。

安装suricata-update

sudo apt install suricata-update -y

✗ ✗ 下载 规则

sudo suricata-update

预期结果:

加载 65950 条规则 编写规则到 /var/lib/suricata/rules/suricata.rules

自动安装了超过50,000个检测签名。

我配置 Raspberry 网络

在现阶段,必须处理一个极其重要的问题:

树莓不应该通过其捕获接口通过网络进行通信。

连接到交换机镜像端口的端口必须只监听网络流量,而无需发送数据包。

为此目的:

  • 不应显示 IP 地址 eth0 级 ;
  • 无DHCP;
  • 无网关;
  • 无出境交通;
  • 强制性PROMISC模式。

我确定所使用的网络运营商

nmcli 设备状态

取得的成果:

eth0 ethernet 连接 netplan-eth0 wlan0 wifi 连接 netplan-wlan0

这证实了系统使用NetworkManager。

我在 eth0 上禁用 IPv4 和 IPv6

sudo nmcli 连接修改 netplan-eth0 ipv4.method 禁用 sudo nmcli 连接修改 netplan-eth0 ipv6.method 禁用

重新启动网络连接

sudo nmcli 连接下 netplan-eth0 sudo nmcli 连接 netplan-eth0

我一直在激活PROMISC模式。

混杂模式允许网卡接收交换机复制的所有数据包。

创建系统服务:

sudo nano /etc/systemd/system/promisc-eth0。

文件内容:

[unit] Description= 在 eth0 After=network.target [Service] Type=oneshot ExecStart=/usr/sbin/ip 链路集eth0 promisc on [Install] WantedBy=multi-user.target

我激活服务

sudo systemctl 启用 promisc-eth0 sudo systemctl 启动 promisc-eth0

✅ 我 检查 网络 接口

IP a

预期结果:

eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP>

非常重要:

  • 无 IP 地址;
  • 无 线 iNet 的 ;
  • 模式 模式 普罗米斯克 活跃..

然后Raspberry成为一个真正的被动网络探测器。

我插入镜像端口

一旦Raspberry准备就绪,配置为镜像端口的Zyxel交换机的端口5直接连接到Raspberry Pi的以太网端口。

从此,Raspberry 开始接收网络流量的副本。

第一次网络捕获测试

在启动Suricata之前,我更喜欢检查镜像是否真的有效。

tcpdump的安装

sudo apt install tcpdump -y

测试 捕获

sudo tcpdump -i eth0 -nn -c 20

取得的成果:

IP 192.168.1.x > 192.168.1.x UDP,长度70 ICMP 回声请求 HTTPS 流量 DNS 流量

网络流量立即开始滚动:

  • DNS查询;
  • HTTPS 流量;
  • 物联网通信;
  • 内部流动;
  • 《议定书》/《公约》缔约方会议;
  • 各种网络连接。

这证实了:

  • Zyxel 镜像端口完美地工作;
  • 树莓确实收到了交通的副本;
  • 被动捕获是可操作的。

⚙ I 配置 Suricata

主配置文件可以在这里找到:

/etc/Suricata/suricata.yaml

我声明本地网络

我调整了本地网络到我的安装:

HOME_NET: [192.168.1.0/24]

这改善了:

  • 警报的准确性;
  • 业绩;
  • 内部和外部流动的检测。

激活指纹 JA3 和 JA4

JA3/JA4指纹可以非常精确地识别某些TLS行为。

TLS 块中的激活:

ja3-fingerprints: 是ja4-fingerprints: 是 是

✅ 我 验证 配置

sudo suricata-T -c /etc/suricata/suricata.yaml

预期结果:

提供的配置已成功加载

这个命令非常有用:

  • 检测YAML错误;
  • 规则的确认;
  • 道路控制;
  • 全局配置检查 。

我 开始 苏里卡塔

我正在重新启动服务

sudo systemctl 重启 suricata

我检查状态

sudo systemctl 状态 Suricata

预期结果:

活跃 : 活跃(running)

我验证网络日志

系统的核心基于 Suricata 生成的 JSON 文件:

/var/log/suricata/eve.json

实时可视化

sudo tail -f /var/log/suricata/eve.json

通过生成一些网络流量(YouTube,网页浏览,…连接对象),第一个事件立即出现:

"event _type": "flow" "event _type": "dns" "event _type": "tls" "event _type": "http"

这证实了:

  • Suricata 正确分析数据包;
  • 协议被解码;
  • JSON日志是可用的;
  • 网络监督实际上有效。

我设置了自动日志旋转

网络监控系统会产生大量的日志。

因此,必须设置自动旋转以避免填充SSD。

⚙ 配置 日志

sudo nano /etc/logrotate.d/suricata

使用的配置:

/var/log/suricata/*.log /var/log/suricata/*.json { 每日旋转 14 missingok notifempty compress delaycompress copytruncate sharedscripts postrotate /bin/kill -HUP $(cat /var/run/suricata.pid) 2>/dev/null || true endscript }

此配置 :

  • 保持14天的历史;
  • 压缩旧日志;
  • 如果 Suricata 重新启动,则避免错误;
  • 严重限制了SSD的磨损。

i 导出网络流到带有软流的 Home Assistant

一旦Suricata以被动IDS模式运行,下一个目标是将网络元数据传输到Home Assistant,以便能够创建智能仪表板,活动图表和警报。

为此,我补充说: 软 流 的, 轻量级的 NetFlow 导出器非常适合 Raspberry Pi 3B+。

想法很简单:

  • Suricata检查包裹;
  • 软流观察网络流动;
  • Home Assistant集中和可视化活动。

这种方法允许高级网络监控,而无需将Raspberry变成主动路由器或防火墙。

安装softflowd

安装非常简单:

sudo apt install softflowd -y

安装后,需要确定哪个网络接口从 Zyxel 交换机接收镜像流量。

与以前一样,以下命令用于检查网络状态:

IP a

观察结果:

2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> 3: wlan0 : <BROADCAST,MULTICAST,UP,LOWER_UP>

接口 The Interface eth0 级 因此是好的:

  • 连接;
  • 活跃;
  • PROMISC模式;
  • 没有 IP 地址。

这正是我一直在寻找的:

  • eth0 级 仅接收来自交换机的镜像流量;
  • wlan0 的 用于管理 Raspberry 并将数据发送到 Home Assistant。

我做第一次手动测试

在任何自动化之前,我开始手动软流动以检查操作:

sudo softflowd -i eth0 -n 192.168.1.222:2055

Raspberry几乎没有返回到屏幕上的消息,这是正常的。

该计划直接在后台启动。

为了验证流量是否确实导出到Home Assistant,我打开了第二个SSH会话,然后启动:

sudo tcpdump -i wlan0 udp 端口 2055

结果:

IP Suricata.42399 > 192.168.1.222.2055: UDP , UDP

这条线证实了几个重要点:

  • 软流作品;
  • NetFlow流量产生良好;
  • 家庭助理收到包裹;
  • 通过Wi-Fi路由是正确的。

我创建了一个专门的系统服务。

提供softflowd的Debian服务在这个特定的上下文中被证明是不可靠的。

因此,我更喜欢创建自己的系统服务。

创建文件 :

sudo nano /etc/systemd/system/softflowd-ids。

使用的配置:

[Unit] Description=softflowd NetFlow 导出 IDS 镜像接口 After=network-online.target promisc-eth0.service Wants=network-online.target [Service] Type=简单 ExecStart=/usr/sbin/softflowd -d -i eth0 -n 192.168.1.222:2055 Restart=always RestartSec=5 WantedBy=multi-user.target。

然后激活服务:

sudo systemctl daemon-reload sudo systemctl 启用 softflowd-ids sudo systemctl 重新启动 softflowd-ids

✅ 我 检查 正确 功能

确认正确的功能:

sudo systemctl 状态 softflowd-ids

结果:

活跃 : 主动(运行)软流v1.1.1起始数据收集 导出从eth0到[192.168.1.222]:2055

在现阶段,网络架构已全面运行:

  • Zyxel开关重复流量;
  • 树莓收到包裹的副本;
  • Suricata分析交通;
  • 软流出口流动;
  • Home Assistant 集中数据。

最有趣的是,这种监控仍然是完全被动的:

  • 对网络没有影响;
  • 不修改设备;
  • 交通不得中断;
  • 极低的功耗。

因此,Raspberry成为一个真正的家庭网络探头,能够在整个家庭自动化和IT安装中提供非常先进的可见性。

我将家庭安全助理整合到家庭助理中

一旦 Suricata 启动并运行,NetFlow 流通过软流正确导出到 Home Assistant,下一步是实际利用所有这些数据。

目的不再仅仅是捕获网络流量,而是:

  • 相关安全事件;
  • 识别现役设备;
  • 检测异常行为;
  • 实时查看家庭网络;
  • 将家庭助理转变为真正的安全监督中心。

为此,我安装了出色的集成。 家庭安全助理 饰 Domo-monster.

这种整合使得集中化成为可能:

  • 苏里卡塔原木;
  • 净流量;
  • 网络统计;
  • 可疑事件;
  • 漏洞检测;
  • 不寻常的网络行为。

在我的情况下,HACS已经安装在家庭助理中,这大大简化了安装。

➕ 我在 HACS 中添加自定义存储库

在家助理:

HACS → Integrations → θ(右上菜单) → Custom Deposits

添加 GitHub 存储库:

https://github.com/domo-monster/HomeSecurityAssistant

然后选择类别:

整合 整合

最后:

添加 添加

I install the integration 安装集成

一旦添加了押金:

HACS → 集成

搜索:

家庭安全助理

然后安装最新版本。

下载后,Home Assistant 请求重新启动。

在 Home Assistant 中添加集成

重启后:

设置 → 设备和服务 → 添加集成

然后搜索:

家庭安全助理

⚙ 我 配置 家庭 安全 助理

安装集成后,Home Assistant 会自动打开 Home Security Assistant 配置窗口。

此配置应始终可访问:

设置 → 设备和服务 → Home Security Assistant → Configure(scratched wheel)

大多数提议的设置可以默认保留。

集成已经设计为在标准家庭环境中有效工作。

就我而言,只有少数参数确实需要特别注意。

聆听 主机

0.0.0.0

必须保留这个值。

它允许家庭安全助理在家庭助理服务器的所有网络接口上监听NetFlow流。

这在以下情况下特别有用:

  • 家庭助理有几个网络接口;
  • 流量来自其他设备;
  • 遥测通过远程IDS探针导出,就像这里的Raspberry一样。

UDP监听端口

2055

此端口必须与之前在softflowd中配置的端口完全对应:

softflowd -i eth0 -n 192.168.1.222:2055

端口2055是NetFlow非常常见的标准。

内部 网络

192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,fd00::/8,fe80:/10

我自愿保留了这个默认配置。

尽管我目前的网络主要通过:

192.168.1.0/24

默认配置仍然更加灵活和可扩展。

具体而言,它使以下方面成为可能:

  • 将来增加VLAN;
  • 物联网对象的分离;
  • 管理客人网络;
  • IPv6兼容性;
  • 基础设施的未来发展。

在现代家庭环境中,通常最好保持这种广泛的配置。

端口 扫描 检测 窗口

600秒

这个值对应于:

  • 10分钟的滑稽监视;
  • 良好的检测灵敏度;
  • 家庭助理的合理收费。

目的是避免:

  • 过于咄咄逼人的假阳性;
  • 不必要的警告;
  • 分析引擎的超载。

对于家庭网络,默认值非常正确。

扫描 警报 之前 独特 端口

100

此值决定了设备可能执行网络扫描的多少不同端口。

再次,默认值适合国内使用。

值太低可能会导致大量误报:

  • Chromecast;
  • Apple TV;
  • 连接的物体;
  • mDNS;
  • UPnP;
  • 自动网络发现。

高出境流量阈值

50000000

该参数定义了在给定时间内被认为异常高的数据量。

在我的情况下,我保留了默认值。

主要目的是检测:

  • 受损设备;
  • 不寻常的大规模上传;
  • 数据泄露;
  • 一个非常健谈的IoT设备。

激活侧面板

选项左转。

这直接将家庭安全助理添加到家庭助理侧边栏。

这是非常方便的。

侧面板的管理员权利

选项也已启用。

这限制了对敏感网络信息的访问仅限于家庭助理管理员。

在多用户环境中,这是一个很好的安全实践。

活动 网络 扫描 器

我离开扫描仪活跃。

此组件允许家庭安全助理:

  • 发现网络设备;
  • 确定活跃的东道主;
  • 关联 IP 地址;
  • 丰富网络信息。

此功能完美地补充了 Suricata 进行的被动分析。

Active Scan Interval 主动扫描

3000秒

这个值大约对应于:

50分钟

因此,主动扫描仪不会连续运行。

这在国内环境中是一件好事。

这使得有可能:

  • 限制网络负载;
  • 避免攻击性扫描;
  • 不破坏某些敏感的物联网对象;
  • 保持谨慎的态度。

对于一个非常动态的实验室或专业网络,这个价值可以降低。

但对于一个连接的家庭,默认是非常合理的。

Ports for Scanning 的

默认提供的列表可以保存。

它包含最常见的端口。

扫描仪的目的不是进行全面的攻击性安全扫描,而是:

  • 识别设备;
  • 检测暴露的服务;
  • 绘制网络图;
  • 输入到安全相关性中。

就我而言,我没有改变任何东西。

扫描 器 例外

此字段允许将某些 IP 从活动扫描中排除。

默认情况下,它可以保持空。

但是,此功能可用于:

  • 脆弱的设备;
  • 某些打印机;
  • Unrobust IoT 对象;
  • 工业设备;
  • 对网络扫描非常敏感的设备。

在我的环境中,不需要排除任何设备。

启用反向 DNS 分辨率

这一选择显然值得激活。

它可以将低声IP转换为更易读的主机名称。

例如,而不是显示:

192.168.1.42

家庭安全助理有时会显示:

nas.maison.local打印机.local apple-tv.local

这大大改善了:

  • 易读性;
  • 事件分析;
  • 快速识别设备。

威胁 情报 流

默认提供的URL可以保留。

家庭安全助理会自动下载多个声誉并阻止来自认可来源的列表:

  • Abuse.ch;
  • SSLBL;
  • AdGuard;
  • 其他社区流动。

这些流量用于:

  • 识别恶意IP;
  • 查明可疑区域;
  • 检测某些已知行为;
  • 提供安全警报。

这是整合最有趣的方面之一: 它通过外部智能自动丰富本地收集的网络数据。

代理 DNS

在我看来,这个选项仍然被禁用。

DNS代理将允许家庭安全助理:

  • 拦截DNS请求;
  • 记录所咨询的域名;
  • 应用 DNS 屏蔽;
  • 进一步分析。

但这意味着:

  • 更高的网络特权;
  • 更具侵入性的建筑;
  • 额外的依赖。

对于第一次国内部署,我宁愿保持简单和稳定。

DNS 代理 端口

53

DNS 协议的标准值。

由于 DNS 代理仍然禁用,此参数没有影响。

☁ 上游 DNS 解析器

1.1.1.1

Cloudflare在这里用作上游DNS解析器。

此值可根据偏好替换:

  • Google DNS;
  • Quad9;
  • AdGuard DNS;
  • Pi-hole;
  • 本地未绑定。

就我而言,我保留了提议的价值。

DNS 日志 保存

24小时

此值定义了 DNS 日志的存储时间。

对于国内环境:

  • 24小时可提供良好的能见度;
  • 这限制了记忆消耗;
  • 这样可以避免不必要的数据积累。

在专业或法医环境中,更长的保护可能具有相关性。

用于阻塞的来源威胁情报

该字段允许定义哪些智能源将用于喂养阻塞机制。

就我而言,我把它空了。 我总是喜欢在自动反措施之前从观察者模式开始。

⛔ 阻止 DNS 类别

此字段可以阻止某些类别的域:

  • 成人;
  • 赌博;
  • 恶意软件;
  • 跟踪;
  • 钓鱼;
  • 等等。

再一次,我把它留给了第一次部署。

一旦了解了网络的正常行为,这个功能可以在稍后激活。

我已经使用Synology路由器内置的安全访问来过滤我女儿使用的设备。

它通过一个非常漂亮的图形界面来做到这一点。 我们稍后会看到我是否也来这里做DNS阻塞。

本地 DNS 重定向

此功能允许将某些域重定向到特定的 IP。

例如:

monservice.local=192.168.1.10

或:

ads.example.com=0.0.0.0

就我而言,没有必要重定向。 因此,该领域仍然是空的。

我创建了一个VirusTotal帐户,并获取我的API密钥。

VirusTotal通过可疑IP,域名,URL或文件的声誉数据来丰富安全信息。

要将其与家庭安全助理一起使用,您必须创建一个免费帐户:

https://www.virustotal.com

连接后:

用户配置文件 → API 密钥

VirusTotal 表示,一旦登录用户帐户菜单,公共 API 密钥就可用。 此密钥必须保持私密,并且显然不得在文章、截图或 Git 存储库中发布。

在家助理:

设置 → 设备和服务 → Home Security Assistant → Configure

然后我填满了字段:

VirusTotal API 密钥

然后,我保留了每日预算草案:

500

对于我的家庭使用,这已经足够了。

目的不是不断查询VirusTotal,而只是为了丰富可疑元素,以便更好地了解家庭安全助理检测到的内容。

我创建了一个 AbuseIPDB 帐户,并获取我的 API 密钥。

AbuseIPDB很好地补充了VirusTotal。

在VirusTotal具有全球声誉的地方,AbuseIPDB对于识别已知IP地址特别有用:

  • 网络扫描;
  • 暴力企图;
  • 滥用行为;
  • 社区报告的恶意活动。

因此,我正在创建一个免费帐户:

https://www.abuseipdb.com

连接后:

帐户 → API → 创建密钥

我给钥匙取了一个名字,例如:

家庭安全助理

然后复制生成的 API 密钥。

与VirusTotal一样,此密钥必须严格保持私密。 AbuseIPDB还指出,API密钥不得公开披露。

在家助理:

设置 → 设备和服务 → Home Security Assistant → Configure

然后我填满了字段:

AbuseIPDB API 密钥

我保留了日常预算:

1000

在以合理的值查询 VirusTotal 之前,我离开了 AbuseIPDB 置信阈值。

这个原则很有意思: 如果AbuseIPDB认为一个足够可疑的IP,那么家庭安全助理可以使用VirusTotal来丰富分析。

这避免了:

  • 不必要的API调用;
  • 配额消费过快;
  • 和完全平庸的IP的丰富。

注: : Penser à rendre votre profil privé sinon vous donnez au monde votre ip.

我为什么要添加这两项服务?

最初,家庭安全助理主要看到:

  • IPS;
  • 流动;
  • 交通量;
  • 网络行为。

使用VirusTotal和AbuseIPDB,这些信息变得更加可读。

而不是简单地说:

可疑IP: 185.xxx.xxx.xxxxx

家庭安全助理可以通过声誉元素丰富信息:

  • 已报告的IP;
  • 信心分数;
  • 威胁类别;
  • 警报的历史;
  • 安全背景。

对于家庭安装,这可以更好地了解观察到的内容,而无需立即自动化阻塞。

这正是我更喜欢的方法:

  • 先观察;
  • 理解下一步;
  • 只有当它确实是必要的时,才可以自动化。

查询 VirusTotal 之前的 Confidence AbuseIPDB

此滑块定义了 AbuseIPDB 对 IP 的评分将被视为可疑到足以触发 VirusTotal 查询。

原则是智能的:

  • 避免不必要的电话;
  • 减少API消耗;
  • 优先考虑真正可疑的IP。

保留自己的IP

5小时

被认为是正常的IPS被保存了很短的时间。

这是一致的:

  • 合法流量非常大;
  • 没有必要把它保存太久。
  • 它保存了内存和存储。

⚠ 保留可疑IP

48小时

可疑IP的可见时间更长,以便:

  • 便利分析;
  • 查明重复行为;
  • 关联某些事件。

在我看来,这种价值与国内使用特别相关。

☠ 保留恶意 IP

168小时

要么:

7天

被确定为真正恶意的IPS被保留了更长的时间。

这使得有可能:

  • 查明反复的攻击;
  • 对某些持续不断的企图采取后续行动;
  • 保持可利用的历史。

对于国内Raspberry Pi,这个值仍然是合理的。

富集 缓存 TTL

1440分钟

要么:

24小时

该参数避免在任何时候重新检查外部情报服务。

这使得有可能:

  • 限制 API 调用;
  • 减少负荷;
  • 使整合更加流畅;
  • 避免与配额有关的某些堵塞。

再次,默认值是经过深思熟虑的。

每日 病毒 查询 预算 共计

500

此设置限制了向 VirusTotal 发送的每日请求数量。

AbuseIPDB请求的每日预算

1000

同样的逻辑在这里。 此参数设置为 AbuseIPDB 的最大查询数量。

NVD API 的 URL

https://services.nvd.nist.gov/rest/json/cves/2.0

此URL指向官方NVD数据库:

国家 脆弱 性 数据库

由美国NIST管理。

它是以下方面的全球基准之一:

  • CVE漏洞;
  • CVSS分数;
  • 安全参考资料;
  • 跟踪公众缺陷。

家庭安全助理可以使用这个数据库:

  • 识别易受攻击的产品;
  • 关联某些设备;
  • 识别潜在风险。

默认URL显然是要保留的。

NVD Cache TTL

12:00

此设置定义了 CVE 信息刷新频率。

更新太频繁:

  • 不必要地增加交通量;
  • 消耗更多的资源;
  • 不会带来任何真正的好处。

拟议的价值是一个极好的折衷方案。

最低 VEC 年

2020

这个选项特别有趣。

它将分析限制在最近的漏洞上。

为什么它有用?

因为CVE数据库包含数以万计的历史条目。

然而,在国内环境中:

  • 非常老的脆弱性往往不那么重要;
  • 近代设备受现代VEC的影响更大;
  • 这大大降低了噪音。

因此,2020年的价值是一致的:

  • 它保留了几年的历史;
  • 不必要地超载系统。

搜索关键字 NVD

此字段包含要在 CVE 数据库中监控的产品和服务列表:

OpenSSH Android Debug Bridge Apache HTTP Server nginx MySQL MariaDB ...

此列表允许家庭安全助理:

  • 识别网络上存在的某些技术;
  • 寻找相关的漏洞;
  • 提高上下文警报。

它使Home Assistant更接近于以下逻辑:

  • 脆弱性管理;
  • 攻击地表盘存;
  • 网络家庭卫生。

在我的情况下,我保留了默认提议的列表。

它已经涵盖了国内实验室和自托管环境中经常存在的许多服务。

统计学: 显示第一个N个条目

光标允许您选择在统计和仪表板中显示多少项。

例如:

  • 顶级活跃IP;
  • 可疑来源;
  • 最常用的港口;
  • 检测到的漏洞;
  • 重要的网络活动。

提议的默认中间值非常平衡:

  • 足够的信息是有用的;
  • 无需重载 Home Assistant 界面。

✅ 最终配置验证

一旦最后一页得到验证,家庭安全助理将完全运行。

开始几分钟后,第一个指标已经开始出现在家庭助理中。

这可能是该项目最令人满意的时刻之一:

最后,将家庭网络视为可用的安全数据。

之后:

  • 镜像端口的配置;
  • 安装Suricata;
  • 收集网络流量;
  • 软流配置;
  • 融入家庭助理;

该系统终于开始对家庭网络活动产生连贯的视图。

下面是启动几分钟后出现的第一个传感器:

  • HSA 主动 设备 : 网络上检测到的活跃设备数量;
  • HSA 高 输出 源 : 产生异常大量出境流量的来源;
  • HSA NVD 关键词 : 在NVD漏洞数据库中监测关键字和技术;
  • HSA 开放 发现 : 当前打开的警报和安全功能;
  • HSA 扫描 设备 : 由主动扫描仪分析的设备数量;
  • HSA 可疑来源 : 根据检测规则和情报流认为可疑的网络来源;
  • HSA 总流量 : 观测到的网络流量总数;
  • HSA 漏洞 : 检测到或与收集的信息相关的漏洞。

就我而言,数字开始迅速攀升。 在撰写此页面之前,我让系统在一夜之间运行:

  • 检测到超过150000个网络流量;
  • 超过60台现役设备;
  • 查明了数十个漏洞;
  • 一些消息来源认为可疑。

而这正是项目变得令人兴奋的地方。

我们突然意识到现代家庭网络产生了多少活动:

  • 连接的物体;
  • 语音助理;
  • 智能手机;
  • NAS;
  • 云服务;
  • 联网电视;
  • 流媒体服务;
  • 集装箱;
  • 家庭自动化。

即使在个人环境中,网络表面也会很快变得非常复杂。

这就是家庭安全助理最终看到的。

我重新命名所有的传感器,给它们以法语命名。

启动后的第一印象

目前,HA中的信息仅限于数字,所以我去了HSA接口。

立即让我震惊的是可用的信息量,没有任何额外的复杂配置。

很快,Home Assistant显示:

  • 主动用具;
  • 交通量;
  • 可疑的IP;
  • 重要的网络交流;
  • 清晰的安全统计数据;
  • 威胁相关性的开始。

最重要的是,所有这些都直接集成到现有的家庭自动化生态系统中。

这可能是使这个项目特别有趣的原因: 将先进的网络安全机制引入家庭助理环境中,而无需部署繁重而复杂的专业基础设施。

结果是两者:

  • 教学;
  • 视觉;
  • 有用;
  • 进化论

在这个阶段,我非常高兴和非常好奇继续发现家庭安全助理。

我甚至无法想象Domo-monster花了多少时间做这项工作,哪一个,一旦配置,点亮并几乎独自生活。

屏幕 , 地图 地图 活着,清晰,真正令人印象深刻的观察。

坦率地说: 恭喜你 恭喜你

结论 结论

该架构提供了真正的网络可见性层:

  • 不使安装复杂化;
  • 不改变交通;
  • 不依赖于路由器。

这对夫妇:

  • 可管理的交换机 + 镜像端口 + Raspberry Pi

为构建高性能,完全本地的SDI提供了良好的基础。

最重要的是:

  • 分析仍然是完全被动的。
  • 这确保了良好的网络稳定性。

对于先进的家庭自动化实验室或现代住宅网络,这是一个特别优雅的解决方案。

我现在有很多乐趣一些…周末或失眠之夜。

老实说,我不认为这个RETEX会变得如此漫长和密集……但最终我做到了。

如果你已经读过: 布拉沃 ·

我将在这篇文章中停下来,但我很可能会与其他RETEX一起围绕家庭安全助理及其日常操作发布其余内容。

当然,我以一个巨大的感谢结束。 多莫 · 蒙斯特, 这给我们带来了一个银盘,可能是在网络安全领域多年经验和投资的成果。

结果确实令人印象深刻。

问题? 需要帮助吗?

我在Home Assistant的法语论坛上发布了一条消息,请不要犹豫地使用它来问我问题或提供您的经验: