扫描感知
扫描感知使用 eBPF 被动检测针对服务器的入站端口扫描,记录这些扫描,并可选择自动封禁发起扫描的 IP 地址。 它帮助你了解谁在探测你的服务器、他们针对哪些端口以及来自何处。
WARNING
扫描感知依赖 Linux eBPF 子系统(TC ingress)。 它仅在内核版本足够新的 Linux 服务器上可用。 在不受支持的平台上,检测器将不会启动,也不会收集任何扫描数据。
工作原理
启用后,面板会将一个轻量级 eBPF 程序挂载到你的网络接口,并直接在内核中检查入站数据包:
- 对于 TCP,只有 SYN 数据包(新建连接尝试)才会被视为潜在扫描。
- 对于 UDP,来自知名服务源端口的响应流量(例如 DNS
53/853、NTP123、DHCP67/68/546/547、HTTPS/QUIC443、mDNS5353以及 IKE/IPsec500/4500)会被忽略,因为它几乎总是对你自己出站请求的回复。 - 对于实际正在监听服务的端口,其连接尝试会被跳过。 检测器会维护一份最新的监听端口列表,仅将针对已关闭或未使用端口的尝试记录为扫描。
检测到的事件会在内存中聚合,并定期写入专用数据库。 每个由源 IP、端口、协议和日期组成的唯一组合只存储一次,并带有命中计数器,因此重复的探测会被累加计数而非重复存储。 如果面板上配置了 GeoIP 数据库,则会解析源 IP 的国家、地区、城市和 ISP,并附加到每个事件上。
打开页面
扫描感知位于防火墙模块内:
- 在主导航中进入防火墙。
- 打开扫描感知选项卡以查看仪表盘和事件。
- 打开设置选项卡以配置该功能。
如果尚未启用扫描感知,扫描感知选项卡会显示一条提示,引导你先从设置选项卡中启用它。
扫描设置
以下所有选项均在防火墙 -> 设置的扫描感知部分进行配置。 点击保存以应用你的更改。
扫描感知
总开关。 关闭后,eBPF 检测器会停止,不再收集新的扫描数据。 现有数据会保留,直到被清除或过期淘汰。
保留天数
扫描记录保留的时长,以天为单位。 默认为 30(范围 1-365)。 超过保留期限的记录会被自动删除。
网络接口
选择检测器应监控的网络接口。 这是一个服务器上可用接口的多选列表。
- 留空则让面板自动检测接口(占位符显示为_自动检测_)。
- 回环接口永远不会被监控。
列表中显示的内容请参阅下方的可用接口。
自动封禁
启用后,扫描过于频繁的源 IP 会在防火墙处被自动封禁。 以下选项仅在启用自动封禁时出现。
WARNING
自动封禁仅在系统防火墙运行时生效。 如果防火墙已停止,则不会进行任何自动封禁。
| 选项 | 默认值 | 范围 | 说明 |
|---|---|---|---|
| 封禁阈值 | 100 | 1-100000 | 单个 IP 在时间窗口内触发封禁所需的扫描命中次数。 |
| 时间窗口(分钟) | 5 | 1-1440 | 按 IP 统计扫描命中次数的滚动窗口。 |
| 封禁时长(小时) | 0 | 0-87600 | 被自动封禁的 IP 保持封禁的时长。 0 表示永久(该 IP 不会被自动解封)。 |
当某个 IP 在窗口内达到阈值时,它会被添加为一条针对入站流量的 drop 规则。 如果设置了封禁时长,该 IP 会在时长结束后被自动解封。
IP 白名单
一份永远不会被自动封禁的 IP 地址或 CIDR 段列表。 以标签形式添加条目。 既接受单个 IP(例如 203.0.113.10),也接受 CIDR 段(例如 203.0.113.0/24)。 回环地址和未指定地址始终被视为已加入白名单。
TIP
白名单仅防止自动封禁。 它不影响手动封禁操作或在防火墙其他位置创建的规则。
可用接口
网络接口选择器会列出服务器的接口(不含回环)。 对于每个接口,它会显示名称及其分配的 IP 地址;当没有地址时则显示其链路状态(up / down)。
仪表盘
扫描感知选项卡有两个视图,通过顶部的分段控件切换:概览和扫描事件。 工具栏上的日期范围选择器控制两个视图所显示的时间段(默认为最近 7 天)。
概览
概览展示所选日期范围内的汇总统计和排名。
汇总卡片
三张汇总卡片展示该时间段的总计,每张都带有一个上/下箭头,指示其数值相比上一个等长时间段是增加还是减少:
- 扫描总数 — 扫描命中的总次数。
- 被扫描端口 — 被针对的不同端口数量。
- 源 IP — 不同源 IP 地址的数量。
扫描趋势
一张折线图,在所选范围内绘制两条每日数据序列:
- 扫描次数 — 每天的扫描命中总数。
- 源 IP — 每天不同源 IP 的数量。
源 IP 前 10 名
最活跃的扫描 IP 表格,包括:
| 列 | 说明 |
|---|---|
| 源 IP | 进行扫描的 IP 地址。 |
| 位置 | 国家、地区和城市(在可用时通过 GeoIP 解析)。 |
| 扫描次数 | 来自该 IP 的扫描命中总数。 |
| 端口数 | 该 IP 针对的不同端口数量。 |
| 最后出现 | 最近一次观察到该 IP 的时间。 |
| 操作 | 一个用于手动封禁该 IP 的封禁按钮(见下文)。 |
被扫描端口前 10 名
最频繁被探测的端口表格:
| 列 | 说明 |
|---|---|
| 端口 | 被针对的端口号。 |
| 协议 | tcp 或 udp。 |
| 扫描次数 | 针对该端口的扫描命中总数。 |
| IP 数 | 针对该端口的不同 IP 数量。 |
扫描事件
扫描事件视图列出单条扫描记录(每行对应一个源 IP / 端口 / 协议 / 日期),并支持完整分页。 每行包含源 IP、位置、端口、协议、扫描次数、首次出现、最后出现以及一个封禁操作。
你可以使用工具栏输入框筛选列表:
- 搜索 IP — 按源 IP 匹配(支持部分匹配)。
- 端口 — 匹配精确的端口号。
- 位置 — 匹配国家、地区、城市或 ISP(支持部分匹配)。
在筛选字段中按回车键即可应用筛选。 每页行数可设置为 20、50 或 100 行。
封禁 IP
在源 IP 前几名表格和扫描事件表格中,封禁按钮都会为所选 IP 创建一条入站 drop 规则。 协议族(IPv4 或 IPv6)会根据地址自动检测,规则同时涵盖 TCP 和 UDP。 在应用封禁前会要求你确认。
TIP
此手动封禁独立于自动封禁。 它会立即生效,无论阈值设置如何,并且会忽略 IP 白名单。
清除数据
工具栏上的清除数据按钮会移除所有已存储的扫描记录。 在清除数据前会要求你确认。 这只影响历史扫描数据;你的设置和任何防火墙规则都不会被更改。
DANGER
清除数据不可逆。 所有扫描历史、汇总、趋势和排名都会被永久删除。
注意事项
- 扫描数据存储在专用数据库中,并随你服务器收到的探测数量而增长。 更长的保留期限会占用更多磁盘空间。
- 只有针对已关闭/未使用端口的入站连接尝试才会被记录;针对有活跃服务端口的流量不会被计为扫描。
- 位置和 ISP 信息仅在面板上配置了 GeoIP 数据库时可用;否则这些列会显示为空。
- 禁用扫描感知会停止收集,但不会删除现有数据;使用清除数据来移除它。
