跳转到内容

扫描感知

扫描感知使用 eBPF 被动检测针对服务器的入站端口扫描,记录这些扫描,并可选择自动封禁发起扫描的 IP 地址。 它帮助你了解谁在探测你的服务器、他们针对哪些端口以及来自何处。

WARNING

扫描感知依赖 Linux eBPF 子系统(TC ingress)。 它仅在内核版本足够新的 Linux 服务器上可用。 在不受支持的平台上,检测器将不会启动,也不会收集任何扫描数据。

工作原理

启用后,面板会将一个轻量级 eBPF 程序挂载到你的网络接口,并直接在内核中检查入站数据包:

  • 对于 TCP,只有 SYN 数据包(新建连接尝试)才会被视为潜在扫描。
  • 对于 UDP,来自知名服务源端口的响应流量(例如 DNS 53/853、NTP 123、DHCP 67/68/546/547、HTTPS/QUIC 443、mDNS 5353 以及 IKE/IPsec 500/4500)会被忽略,因为它几乎总是对你自己出站请求的回复。
  • 对于实际正在监听服务的端口,其连接尝试会被跳过。 检测器会维护一份最新的监听端口列表,仅将针对已关闭或未使用端口的尝试记录为扫描。

检测到的事件会在内存中聚合,并定期写入专用数据库。 每个由源 IP、端口、协议和日期组成的唯一组合只存储一次,并带有命中计数器,因此重复的探测会被累加计数而非重复存储。 如果面板上配置了 GeoIP 数据库,则会解析源 IP 的国家、地区、城市和 ISP,并附加到每个事件上。

打开页面

扫描感知位于防火墙模块内:

  1. 在主导航中进入防火墙
  2. 打开扫描感知选项卡以查看仪表盘和事件。
  3. 打开设置选项卡以配置该功能。

如果尚未启用扫描感知,扫描感知选项卡会显示一条提示,引导你先从设置选项卡中启用它。

扫描设置

以下所有选项均在防火墙 -> 设置的扫描感知部分进行配置。 点击保存以应用你的更改。

扫描感知

总开关。 关闭后,eBPF 检测器会停止,不再收集新的扫描数据。 现有数据会保留,直到被清除或过期淘汰。

保留天数

扫描记录保留的时长,以天为单位。 默认为 30(范围 1-365)。 超过保留期限的记录会被自动删除。

网络接口

选择检测器应监控的网络接口。 这是一个服务器上可用接口的多选列表。

  • 则让面板自动检测接口(占位符显示为_自动检测_)。
  • 回环接口永远不会被监控。

列表中显示的内容请参阅下方的可用接口

自动封禁

启用后,扫描过于频繁的源 IP 会在防火墙处被自动封禁。 以下选项仅在启用自动封禁时出现。

WARNING

自动封禁仅在系统防火墙运行时生效。 如果防火墙已停止,则不会进行任何自动封禁。

选项默认值范围说明
封禁阈值1001-100000单个 IP 在时间窗口内触发封禁所需的扫描命中次数。
时间窗口(分钟)51-1440按 IP 统计扫描命中次数的滚动窗口。
封禁时长(小时)00-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 名

最频繁被探测的端口表格:

说明
端口被针对的端口号。
协议tcpudp
扫描次数针对该端口的扫描命中总数。
IP 数针对该端口的不同 IP 数量。

扫描事件

扫描事件视图列出单条扫描记录(每行对应一个源 IP / 端口 / 协议 / 日期),并支持完整分页。 每行包含源 IP、位置、端口、协议、扫描次数、首次出现、最后出现以及一个封禁操作。

你可以使用工具栏输入框筛选列表:

  • 搜索 IP — 按源 IP 匹配(支持部分匹配)。
  • 端口 — 匹配精确的端口号。
  • 位置 — 匹配国家、地区、城市或 ISP(支持部分匹配)。

在筛选字段中按回车键即可应用筛选。 每页行数可设置为 20、50 或 100 行。

封禁 IP

在源 IP 前几名表格和扫描事件表格中,封禁按钮都会为所选 IP 创建一条入站 drop 规则。 协议族(IPv4 或 IPv6)会根据地址自动检测,规则同时涵盖 TCP 和 UDP。 在应用封禁前会要求你确认。

TIP

此手动封禁独立于自动封禁。 它会立即生效,无论阈值设置如何,并且会忽略 IP 白名单。

清除数据

工具栏上的清除数据按钮会移除所有已存储的扫描记录。 在清除数据前会要求你确认。 这只影响历史扫描数据;你的设置和任何防火墙规则都不会被更改。

DANGER

清除数据不可逆。 所有扫描历史、汇总、趋势和排名都会被永久删除。

注意事项

  • 扫描数据存储在专用数据库中,并随你服务器收到的探测数量而增长。 更长的保留期限会占用更多磁盘空间。
  • 只有针对已关闭/未使用端口的入站连接尝试才会被记录;针对有活跃服务端口的流量不会被计为扫描。
  • 位置和 ISP 信息仅在面板上配置了 GeoIP 数据库时可用;否则这些列会显示为空。
  • 禁用扫描感知会停止收集,但不会删除现有数据;使用清除数据来移除它。