BenjaminIheukumere/Sophos-XGS-Live-Log-Viewer
GitHub: BenjaminIheukumere/Sophos-XGS-Live-Log-Viewer
一款通过 SSH 近实时拉取并展示 Sophos XGS 防火墙事件日志的 Windows 桌面工具,专为免部署 Syslog 的快速排障场景而设计。
Stars: 1 | Forks: 0
# Sophos XGS 实时日志查看器
由 Benjamin Iheukumere 开发的 Sophos XGS 实时日志查看器是一款 Windows 桌面应用程序,可通过 SSH 按需提取 Sophos XGS 事件日志,并近乎实时地展示它们。
它专为防火墙故障排除而构建,适用于您不想部署或重新配置 Syslog 服务器,但仍然需要快速、实时地查看被阻止和允许的流量的场景。
## 功能
* 按需建立与 Sophos XGS / Sophos Firewall 设备的 SSH 连接
* 具有快速滚动 UI 窗口的实时日志视图,适用于大流量场景
* 通过下拉菜单选择单一活动日志源:Firewall、Web filter、IPS、VPN、WAF、Email、System 等
* 在同一 SSH 会话内切换日志
* 允许和拒绝条目的行采用不同颜色编码
* 根据所选日志类型动态调整列
* 用于附加字段的列选择器
* 可点击的筛选器构建器,包含连接器、字段、运算符和值下拉菜单
* 导入和导出筛选器预设,以便团队标准化调查流程
* 一键事件捕获,用于获取较短时间段内的记录
* 每台防火墙的独立配置文件
* 由主密码保护的本地加密凭据库
* 默认启用严格 SSH 模式,采用首次信任主机密钥和指纹锁定机制
* 在获取实时防火墙遥测数据后显示设备 CPU 使用率
* 演示模式,无需连接防火墙即可测试解析器、筛选器和 UI
## 系统要求
* Windows 10/11
* 启用了 SSH 访问的 Sophos Firewall / Sophos XGS
* 允许打开 Advanced Shell 的防火墙账户
* 支持 `sqlite3` 的 Sophos Advanced Shell
默认数据源从 `/tmp/eventlogs` 或 `/var/eventlogs` 读取 Sophos 事件日志数据库。这是有意为之:Sophos Log Viewer 的类别是基于事件日志的,而 `/log/*.log` 文件大多是服务/故障排除日志。
## 安装说明
### Release 构建版本
从以下地址下载最新的 Windows 可执行文件:
`https://github.com/BenjaminIheukumere/Sophos-XGS-Live-Log-Viewer/releases`
运行:
```
Sophos XGS Live Log Viewer.exe
```
### 从源码构建
```
git clone https://github.com/BenjaminIheukumere/Sophos-XGS-Live-Log-Viewer.git
cd Sophos-XGS-Live-Log-Viewer
dotnet restore
dotnet test
dotnet publish .\SophosXgsLiveLogViewer.App\SophosXgsLiveLogViewer.App.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
```
## 用法
1. 启动应用程序。
2. 使用主密码创建或解锁本地配置文件库。
3. 添加包含主机、SSH 端口、用户名和密码的防火墙配置文件。
4. 连接到防火墙。
5. 从下拉菜单中选择一个实时日志源。
6. 如果需要,通过下拉菜单式的筛选器构建器添加筛选条件。
7. 导出共享的筛选器预设,或捕获最近 30 秒、60 秒或 5 分钟的窗口以用于事件记录。
配置文件本地存储于:
```
%APPDATA%\SophosXgsLiveLogViewer\vault.json
```
Vault 负载使用 AES-GCM 加密。密钥通过 PBKDF2-SHA256 从启动时输入的主密码派生而来。
## 筛选器示例
UI 是基于下拉菜单的,但筛选器引擎支持如下组合:
```
Source IP equals 192.168.1.10
Destination IP equals 8.8.8.8 AND Destination Port equals 443
Source IP not equals 192.168.1.99
Message contains blocked
```
支持的运算符包括:
* Equals
* Not equals
* Contains
* Not contains
* Starts with
* Ends with
筛选器预设是扩展名为 `.sxlv-filter.json` 的 JSON 文件。它们仅包含所选的日志源和筛选条件。它们不包含防火墙配置文件、主机名、用户名、密码或 Vault 数据。
## 事件捕获
捕获按钮会导出应用程序在选定时间段内接收到的行。它有意使用应用的接收时间而不是防火墙事件的时间戳,因此当设备时钟存在差异或加载了旧的初始行时,捕获功能仍然有效。
捕获的 ZIP 文件写入至:
```
%USERPROFILE%\Documents\Sophos XGS Live Log Viewer\Captures
```
每次捕获包含:
* `logs.csv`
* `logs.json`
* `incident-notes.md`
* `metadata.json`
捕获内容可能包含 IP 地址、用户名、URL、域和原始防火墙日志内容。请将它们视为敏感证据妥善处理。
## 性能说明
* 传入的 SSH 日志行会被排队并分批应用到 UI。
* 可见网格是一个有界滚动窗口。
* 保留了一个较大的内存缓冲区用于过滤和日志源切换。
* 该应用程序针对故障排除的可见性进行了优化,而非长期日志保留。
请使用 SIEM、Syslog 服务器或 Sophos Central 来进行持久的审计存储。
## 安全说明
* 源代码中不存储任何防火墙凭据。
* SSH 主机密钥在首次使用信任后即被锁定。
* 严格 SSH 模式默认禁用旧的 SSH 算法。
* 兼容性 SSH 模式仅应在较旧的设备无法协商现代算法时使用。
* 尽可能使用最小权限账户。
* 请从安全的管理员工作站运行该应用程序,最好位于专用的管理网络或 VPN 上。
* 保持工作站已修补、磁盘已加密,并防止剪贴板/会话窥探。
* 仅对您拥有或管理的防火墙运行此操作。
## 联系方式
Benjamin Iheukumere
* 网站:https://safelink-it.com
* 邮箱:b.iheukumere@safelink-it.com
* 电话:+49 177 3 555 059
* LinkedIn:https://www.linkedin.com/in/benjamin-iheukumere/
## 免责声明
本工具仅供授权管理和故障排除使用。请仅在您拥有明确权限的系统上使用。作者不对滥用行为负责。
## 许可证
MIT
标签:DNS枚举, IPS, PB级数据处理, Sophos, SQLite, SSH, Syslog, VPN, WAF, Web过滤器, Windows桌面应用, XGS, 内存分配, 可视化UI, 多人体追踪, 威胁检测与响应, 安全事件响应, 安全运维, 故障排查, 数据加密, 数据库, 本地凭证管理, 网络安全审计, 网络安全工具, 网络流量, 网络访问控制, 过滤规则, 防火墙