网络入侵探测器Pi.Alert

什么是 Pi.Alert ?

Pi.AlertWIFI/LAN 入侵探测器。通过扫描连接到您的
WIFI/LAN 的设备,提醒您未知设备的连接。它还警告断开“始终连接”的设备。

Pi.Alert 使用了三种扫描方式

  • 方式1:arp-scanarp扫描系统实用程序用于使用 arp 帧搜索网络上的设备。
  • 方式2:Pi-hole。:此方法是可选的,是对方法 1 的补充。如果Pi-hole DNS服务器处于活动状态,则 Pi.Alert 会检查其活动,查找方式1未检测到的使用 DNS的活动设备。
  • 方式3:dnsmasq。:此方法是可选的,是对以前方法的补充。如果DHCP 服务器 dnsmasq 处于活动状态,Pi.Alert 会检查 DHCP 租约(分配的地址),以查找其他方法未发现的活动设备。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 pi.alert ,选择第一个 jokobsk/pi.alert,版本选择 latest

细分的版本号是 23.5.7,但实际上 23.5.723.523latest 是同一个版本;

docker 文件夹中,创建一个新文件夹 pialert,并在其中建两个子文件夹,分别是 configdb

文件夹 装载路径 说明
docker/pialert/config /home/pi/pialert/config 存放设置
docker/pialert/db /home/pi/pialert/db 存放数据库

网络

勾选 使用与 Docker Host 相同的网络

环境

可变
TZ 时区设置,默认值 Europe/London
PORT 应用的访问端口,默认值 20211
HOST_USER_ID 用户ID,默认值 1000
HOST_USER_GID 用户组ID,默认值 1000

一般只要修改 TZAsia/Shanghai 就可以了

权限

要避免出现权限问题,可以勾选 使用高权限执行容器

老苏没有勾选,似乎也能正常工作;

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 新建文件夹 pialert 和 子目录
mkdir -p /volume2/docker/pialert/{config,db}

# 进入 pialert 目录
cd /volume2/docker/pialert

# 运行容器
docker run -d \
--restart unless-stopped \
--name pialert \
--network=host \
-v $(pwd)/config:/home/pi/pialert/config \
-v $(pwd)/db:/home/pi/pialert/db \
-e TZ=Asia/Shanghai \
-e PORT=20211 \
-e HOST_USER_ID=1000 \
-e HOST_USER_GID=1000 \
jokobsk/pi.alert:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3'

services:
pialert:
image: jokobsk/pi.alert:latest
container_name: pialert
network_mode: host
restart: unless-stopped
volumes:
- ./config:/home/pi/pialert/config
- ./db:/home/pi/pialert/db
environment:
- TZ=Asia/Shanghai
- PORT=20211
- HOST_USER_ID=1000
- HOST_USER_GID=1000

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 pialert 和 子目录
mkdir -p /volume2/docker/pialert/{config,db}

# 进入 pialert 目录
cd /volume2/docker/pialert

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:20211 就能看到主界面

只有两个设备显然是不正确的,我们可以选择手动编辑 config 目录下的 pialert.conf 文件

修改前,记得备份文件,当然,万一改出问题了也不用太担心,大不了重来呗

但是更简单的方式是在 settings 中进行修改

settings 中修改,会自动生成备份文件;

显然,系统默认启用了方式1扫描,也就是启用了 Enable ARP scan,但是 SCAN_SUBNETS 显然不正确

老苏的 IP 应该是 192.168.0.0/24 而不是 192.168.1.0/24,至于网络接口是 eth0eth1 ,也是一头雾水,这需要通过 iwconfig 在容器内查询

1
2
3
4
5
6
7
8
9
10
11
# 进入容器
docker exec -it --user root pialert /bin/bash

# (国内用户)改阿里源
sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list

# 安装 wireless-tools 包
apt-get update && apt-get install -y wireless-tools

# 查找接口名称
iwconfig

看起来应该是 eth0

前面输入 192.168.0.0/24,后面输入 eth0,然后点 Add 按钮,下拉到底部点 Save 按钮

会提示生成了备份文件

然后点 Enable ARP scan 后面的 ▶️ 按钮开始扫描

回到 Devices,局域网的设备就都显示出来了

更多的功能就留给大家自己探索了

参考文档

pucherot/Pi.Alert: WIFI / LAN intruder detector. Check the devices connected and alert you with unknown devices. It also warns of the disconnection of “always connected” devices
地址:https://github.com/pucherot/Pi.Alert

jokob-sk/Pi.Alert: 💻🔍 WIFI / LAN intruder detector. Scans for devices connected to your network and alerts you if new and unknown devices are found.
地址:https://github.com/jokob-sk/Pi.Alert

jokobsk/pi.alert - Docker Image | Docker Hub
地址:https://registry.hub.docker.com/r/jokobsk/pi.alert

Pi.Alert/README.md at main · jokob-sk/Pi.Alert · GitHub
地址:https://github.com/jokob-sk/Pi.Alert/blob/main/dockerfiles/README.md