前言
OpenWRT
有两个插件:luci-app-serverchan、luci-app-pushbot,可以监测陌生设备上线。当然它们还有些其他功能,但我们只关心“监测陌生设备上线”这一点,那么这两个插件就太臃肿了。并且它们还不能监测非旁路由所在网段,而我却将陌生设备放在了 10.0.1.0/24
中,和旁路由不在同一网段。所以我们简单的改造一下。
安装和配置
我默认你已经按照 前文(二) 安装好了 arp-scan
了。新建 /usr/local/bin/arp.sh
内容如下,请自行在爱快中限制陌生设备所能使用的IP(参见 前文(一),用假MAC预留好可信任设备的IP位置),并填入下面的 arplist
变量中。
|
|
为其增加可执行权限:
|
|
如果你需要发送通知,解除上述脚本第10行注释的同时,在第4行之后根据下表选用通知渠道的变量并赋值。
序号 | 变量名 | 说明 |
---|---|---|
1 | TG_USER_ID | 通知渠道telegram,如需使用需要和 TG_BOT_TOKEN 同时赋值,私聊 @getuseridbot 获取。 |
2 | TG_BOT_TOKEN | 通知渠道telegram,如需使用需要和 TG_USER_ID 同时赋值,私聊 @BotFather 获取。 |
3 | TG_PROXY_ADDRESS | 给TG机器人发送消息的代理地址,当设置了TG_USER_ID 和TG_BOT_TOKEN 后可以设置此值,形如:http://192.168.1.1:7890 ,也可以不设置。 |
4 | TG_PROXY_USER | 给TG机器人发送消息的代理的用户名和密码,当设置了TG_PROXY_ADDRESS 后可以设置此值,格式为:<用户名>:<密码> ,形如:admin:password ,如没有可不设置。 |
5 | DD_BOT_TOKEN | 通知渠道钉钉,如需使用需要和 DD_BOT_SECRET 同时赋值,机器人设置中webhook链接access_token= 后面的字符串(不含= 以及= 之前的字符)。 |
6 | DD_BOT_SECRET | 通知渠道钉钉,如需使用需要和 DD_BOT_TOKEN 同时赋值,机器人设置中只启用加签 ,加签的秘钥,形如:SEC1234567890abcdefg 。 |
7 | IYUU_TOKEN | 通知渠道爱语飞飞,通过 这里 获取,爱语飞飞的TOKEN。 |
8 | SCKEY | 通知渠道ServerChan,通过 这里 获取。 |
9 | PUSHPLUS_TOKEN | 通知渠道PUSH PLUS,填入其token,详见 这里。 |
10 | WORK_WECHAT_BOT_KEY | 通知渠道企业微信群机器人,填入机器人设置webhook链接中key= 后面的字符串,不含key= 。 |
11 | GOTIFY_URL | 通知渠道Gotify,填入其通知网址,需要和GOTIFY_APP_TOKEN 同时赋值。 |
12 | GOTIFY_APP_TOKEN | 通知渠道Gotify,填入其TOKEN,需要和GOTIFY_URL 同时赋值。 |
13 | GOTIFY_PRIORITY | 通知渠道Gotify,发送消息的优先级。 |
同时下载 notify.sh 保存为 /usr/local/bin/notify.sh
,并为其增加可执行权限:
|
|
有许多设备无法被 arp-scan
识别出来制造商,可以编辑 /etc/arp-scan/mac-vendor.txt
,手动增加它们的制造商,形式如下(MAC地址仅支持小写字母,不支持大写字母):
|
|
然后你再运行 echo "10.0.0.0/22" | arp-scan -xgf-
就可以识别出来了。
运行
方式一:定时任务
输入 crontab -e
,在 前文(七) 创建的定时任务之后加入一条:
|
|
未来想查看有哪些陌生设备接入,注意重启后该文件会消失,请及时查看。
|
|
方式二:systemd
新建脚本 /usr/local/bin/run-arp.sh
,内容如下,并增加可执行权限 chmod +x /usr/local/bin/run-arp.sh
|
|
新建 /etc/systemd/system/arp.service
,内容如下:
|
|
然后启用它即可:
|
|
未来想查看有哪些陌生设备接入:
|
|