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, 多人体追踪, 威胁检测与响应, 安全事件响应, 安全运维, 故障排查, 数据加密, 数据库, 本地凭证管理, 网络安全审计, 网络安全工具, 网络流量, 网络访问控制, 过滤规则, 防火墙