Shallow API手册
4.6 黑名单
黑名单功能,通过每5秒轮询connection连接列表,查看是否有源和目标IP属于定义的黑名单IP列表。如果触发后可以删除连接,发送报警通知或向RouterOS执行API命令。
黑名单功能包括三个模块:
- 黑名单列表
- 黑名单监控
- 黑名单命中日志
4.6.1 黑名单列表
黑名单列表,导入黑名单IP地址,可手动添加定义的黑名单IP地址,也可导入定义好的黑名单文本。
黑名单列表目前推荐获取的站点: https://iplists.firehol.org/

手动添加:
支持手工维护黑名单列表,以及上传符合 IP/CIDR 一行一条规则的文本文件。

上传黑名单文件
支持多文件上传。文件内容需满足一行一个 IP 或 CIDR,支持整行 `#` 注释,也支持 `8.8.8.8 #Google DNS` 这种行内注释,例如:
8.8.8.8 #Google DNS
223.5.5.5 #Ali DNS
4.6.2 黑名单监控
选择黑名单列表或文件,对设备当前连接进行匹配,命中后发送通知并可执行 RouterOS API 脚本。

创建API的CLI命令,将黑名单IP添加到RouterOS指定的黑名单列表blacklist,脚本内支持 `$blacklist_ip`、`$comment`、`$ros_id`(兼容 `$ros_Id`)。
包含 `$ros_id` 时会按命中的连接逐条执行;否则仍按命中的黑名单 IP 执行,例如:
/ip firewall address-list add list=blacklist address=$blacklist_ip comment=$comment`
或
/ip/firewall/connection remove $ros_id
命中处理方式:
- 仅告警 / API脚本
- 仅自动删除命中连接
- 同时删除命中的连接+API脚本
删除连接会对每条新增命中的连接执行 `/ip/firewall/connection remove $ros_id`。如果选择“同时”模式,通知规则和 API 脚本也会一起执行。
4.6.3 黑名单命中日志
用于查询命中黑名单IP的记录
