[chore] update columba v3
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
outline: deep
|
outline: deep
|
||||||
order: 2
|
order: 3
|
||||||
heading: v1.x
|
heading: v1.x
|
||||||
sub-order: 1
|
sub-order: 1
|
||||||
---
|
---
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
outline: deep
|
outline: deep
|
||||||
order: 1
|
order: 2
|
||||||
heading: v2.x
|
heading: v2.x
|
||||||
sub-order: 1
|
sub-order: 1
|
||||||
---
|
---
|
||||||
@@ -50,7 +50,7 @@ sub-order: 1
|
|||||||
|
|
||||||
1. 按下 Win + R 打开“运行”窗口。
|
1. 按下 Win + R 打开“运行”窗口。
|
||||||
|
|
||||||
2. 输`shell:startup`,将需要开机启动的程序 快捷方式 拖入弹出的文件夹。
|
2. 输入`shell:startup`,将需要开机启动的程序 快捷方式 拖入弹出的文件夹。
|
||||||
|
|
||||||
3. 重启电脑验证程序是否自动运行。
|
3. 重启电脑验证程序是否自动运行。
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ sub-order: 1
|
|||||||
|
|
||||||
1. 按下 Win + R 打开“运行”窗口。
|
1. 按下 Win + R 打开“运行”窗口。
|
||||||
|
|
||||||
2. 输`shell:common startup`,将需要开机启动的程序 快捷方式 拖入弹出的文件夹。
|
2. 输入`shell:common startup`,将需要开机启动的程序 快捷方式 拖入弹出的文件夹。
|
||||||
|
|
||||||
3. 重启电脑验证程序是否自动运行。
|
3. 重启电脑验证程序是否自动运行。
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
order: 1
|
||||||
|
heading: v3.x
|
||||||
|
sub-order: 1
|
||||||
|
---
|
||||||
|
::: info 版本提示
|
||||||
|
本板块文档仅供V3.x使用。
|
||||||
|
:::
|
||||||
|
|
||||||
|
# 使用指南
|
||||||
|
|
||||||
|
::: danger
|
||||||
|
较于v1.x,v2.x配置文件存在破坏性修改,请您重新配置。
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
1. 加载安装包,并按安装指引其安装至电脑中
|
||||||
|
|
||||||
|
2. 由于软件需要监听 Windows 安全日志中的登录事件,如首次使用需要通过弹出 UAC 窗口请求管理员权限,请点击 UAC 窗口中的`是`。
|
||||||
|
|
||||||
|
3. 软件本体无窗口界面,运行后静默驻留系统托盘。您可右键托盘中的“小鸽子”,点击`编辑配置`配置 SMTP 邮件参数、通知模板以及要监控的登录类型。
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> 您可以参考[《配置文件说明》](/columba/v3/ini)自定义您的配置文件
|
||||||
|
|
||||||
|
4. 按要求编辑并保存配置之后,您可以右键托盘中的“小鸽子”,点击`测试邮件`来检查 SMTP 邮件参数是否正确,以便后续的通知。
|
||||||
|
|
||||||
|
5. 正确接收到测试邮件之后,软件即可正确运行。
|
||||||
|
|
||||||
|
::: danger 无法监控?
|
||||||
|
如果无法正常监控登录事件,您可以右键托盘中的“小鸽子”,点击`查看日志`或`查看失败登录记录`来排查问题。日志文件大小限制为1MB,超过后自动清空,防止磁盘空间被无限占用。
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 登录失败每日汇总与防火墙黑名单
|
||||||
|
|
||||||
|
在该版本中,我们将原先每次失败都发送邮件,改为了每日凌晨12:00发送登录失败每日汇总,以避免短时间内爆破导致邮箱爆炸。
|
||||||
|
|
||||||
|
另外,您可以通过设置配置文件中的`ban_frequency`来自动添加黑名单,超过该数值则添加至防火墙黑名单(留空或为0则无加入黑名单,只记录)。Columba产生的黑名单策略名称为`Columba Block {ip_str}`,您可以打开Windows 防火墙来手动管理。
|
||||||
|
|
||||||
|
## 冷却机制
|
||||||
|
|
||||||
|
为避免登陆类型叠加,而导致同一次登陆成功发送多次邮件,本版本添加冷却机制。在本60s内,同一用户名同 IP 只发一封成功邮件,进而合并那些短时间内由不同登录类型(如交互式和远程交互式)触发的重复通知。
|
||||||
|
|
||||||
|
## 开机自启
|
||||||
|
|
||||||
|
您可以通过以下方式,将本软件开机自启:
|
||||||
|
|
||||||
|
### 用户级自启动
|
||||||
|
|
||||||
|
1. 按下 Win + R 打开“运行”窗口。
|
||||||
|
|
||||||
|
2. 输入`shell:startup`,将需要开机启动的程序 快捷方式 拖入弹出的文件夹。
|
||||||
|
|
||||||
|
3. 重启电脑验证程序是否自动运行。
|
||||||
|
|
||||||
|
### 系统级自启动
|
||||||
|
|
||||||
|
1. 按下 Win + R 打开“运行”窗口。
|
||||||
|
|
||||||
|
2. 输入`shell:common startup`,将需要开机启动的程序 快捷方式 拖入弹出的文件夹。
|
||||||
|
|
||||||
|
3. 重启电脑验证程序是否自动运行。
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
sub-order: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# 配置文件说明
|
||||||
|
|
||||||
|
Columba 的主要配置文件为 `config.json`,保存于用户目录下的/.columba。首次运行前请按需修改,保存时请使用 **UTF-8** 编码。
|
||||||
|
|
||||||
|
## `config.json`文件结构
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"SMTP": {
|
||||||
|
"server": "",
|
||||||
|
"port": 587,
|
||||||
|
"username": "",
|
||||||
|
"password": "your_real_password",
|
||||||
|
"use_tls": true,
|
||||||
|
"from_addr": "",
|
||||||
|
"to_addr": ""
|
||||||
|
},
|
||||||
|
"SETTINGS": {
|
||||||
|
"ban_frequency": 5,
|
||||||
|
"logon_types": "2,3,7,10"
|
||||||
|
},
|
||||||
|
"MESSAGE": {
|
||||||
|
"subject_success": "Columba 登录通知 - 成功",
|
||||||
|
"body_success": "用户 {username} 在计算机 {computer} 上登录成功\n登录类型: {logon_type_desc}\n时间: {time}\n来源 IP: {source_ip}\n进程: {process_name}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### [SMTP] 邮件服务器设置
|
||||||
|
|
||||||
|
| 键名 | 说明 | 必需 | 示例值 |
|
||||||
|
|------------|------------------------------------------------------------------------|------|------------------------|
|
||||||
|
| server | SMTP 服务器地址 | 是 | `smtp.qq.com` |
|
||||||
|
| port | SMTP 服务器端口(SSL 一般为 465,TLS 一般为 587) | 是 | `465` |
|
||||||
|
| username | 登录邮箱的用户名(通常为完整邮箱地址) | 是 | `your@qq.com` |
|
||||||
|
| password | 邮箱密码或授权码(推荐使用授权码) | 是 | `xxxxxxxxxxxxxx` |
|
||||||
|
| from_addr | 发件人邮箱地址(通常与 username 相同) | 是 | `your@qq.com` |
|
||||||
|
| to_addr | 收件人邮箱地址,可多个(用逗号分隔) | 是 | `admin@example.com` |
|
||||||
|
| use_tls | 是否使用 TLS 加密(`true` / `false`)。若端口为 465 一般设为 `false` 使用 SSL,端口 587 设为 `true` | 是 | `false` |
|
||||||
|
|
||||||
|
|
||||||
|
### [MESSAGE] 邮件内容模板
|
||||||
|
|
||||||
|
支持在主题和正文中使用变量,程序会自动替换为实际值。
|
||||||
|
|
||||||
|
#### 主题与正文
|
||||||
|
|
||||||
|
| 键名 | 说明 | 默认值(示例) |
|
||||||
|
|-----------------|--------------------|----------------------------------------------------------------------|
|
||||||
|
| subject_success | 成功登录邮件主题 | `[通知] 用户 {username} 已登录 {computer}` |
|
||||||
|
| body_success | 成功登录邮件正文 | `用户 {username} 于 {time} 从 {source_ip} 登录 {computer},登录类型:{logon_type_desc}` |
|
||||||
|
|
||||||
|
|
||||||
|
#### 可用变量
|
||||||
|
|
||||||
|
| 变量名 | 说明 | 适用事件 |
|
||||||
|
|--------------------|--------------------------------------------------------------------|----------|
|
||||||
|
| `{username}` | 登录用户名 | 成功/失败 |
|
||||||
|
| `{domain}` | 登录域(若为本地账户则为计算机名) | 成功/失败 |
|
||||||
|
| `{time}` | 登录时间(格式 `YYYY-MM-DD HH:MM:SS`) | 成功/失败 |
|
||||||
|
| `{computer}` | 计算机名 | 成功/失败 |
|
||||||
|
| `{source_ip}` | 来源 IP 地址(远程登录时显示,本地登录可能为 `-`) | 成功/失败 |
|
||||||
|
| `{logon_type}` | 登录类型代码(如 10) | 成功 |
|
||||||
|
| `{logon_type_desc}`| 登录类型描述(如“远程交互式登录”) | 成功 |
|
||||||
|
| `{process_name}` | 触发登录的进程名(如 `C:\Windows\System32\svchost.exe`) | 成功 |
|
||||||
|
| `{failure_reason}` | 失败原因(包含状态码和子状态,如“状态码: 0xC0000064, 子状态: 0”) | 失败 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### [SETTINGS] 配置
|
||||||
|
|
||||||
|
| 键名 | 说明 | 默认值 |
|
||||||
|
|--------------|-------------------------------------------------------------------|------------|
|
||||||
|
| logon_types | 需要监控的登录类型列表,用英文逗号分隔,仅支持数字代码。留空则监控所有类型。 | `2,7,10` |
|
||||||
|
| ban_frequency | IP失败最大次数,超过添加至防火墙黑名单。留空或为0则无加入黑名单,只记录。 | `5` |
|
||||||
|
|
||||||
|
#### 常用登录类型代码
|
||||||
|
|
||||||
|
| 代码 | 描述 | 典型场景 |
|
||||||
|
|------|------------------------------|----------------------------|
|
||||||
|
| 2 | 交互式登录 | 本地控制台登录 |
|
||||||
|
| 3 | 网络登录 | 访问共享文件夹 |
|
||||||
|
| 4 | 批处理登录 | 计划任务 |
|
||||||
|
| 5 | 服务登录 | 系统服务启动 |
|
||||||
|
| 7 | 解锁登录 | 从屏保或锁屏恢复 |
|
||||||
|
| 8 | 网络明文登录 | IIS 基本认证 |
|
||||||
|
| 9 | 新凭证登录 | RunAs 不同用户 |
|
||||||
|
| 10 | 远程交互式登录 | 远程桌面(RDP) |
|
||||||
|
| 11 | 缓存交互式登录 | 域控不可达时使用缓存凭证 |
|
||||||
|
|
||||||
|
## 其他配置文件说明
|
||||||
|
|
||||||
|
除了上述提到的 `config.json`,Columba还包含`failure_login.json` `login_notifier.log`,均保存用户目录下的/.columba,以下为两者文件说明:
|
||||||
|
|
||||||
|
1. `failure_login.json`:用于保持错误登陆日志,每天零点清空内容。文件内将保存失败登陆的来源IP 失败次数 是否加入防火墙 失败登陆历史记录,以上内容将解析后形成登录失败每日汇总邮件。
|
||||||
|
|
||||||
|
2. `login_notifier.log`:记录软件各类日志,用于调试与错误修复。
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
sub-order: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
# 打包与安装包
|
||||||
|
|
||||||
|
## 打包(Nuitka)
|
||||||
|
|
||||||
|
可使用以下命令生成独立可执行文件:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nuitka --standalone --windows-console-mode=disable --windows-uac-admin --include-data-files=columba.ico=./columba.ico --windows-icon-from-ico=columba.ico 3.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## 制作安装包(Inno Setup)
|
||||||
|
|
||||||
|
[Inno Setup](https://jrsoftware.org/isinfo.php)是一个非常好用的安装包制作软件。本软件由于需要管理员权限,直接打包会出现「要求的操作需要提升的权限」的错误消息,您可以参考一下步骤编辑iss脚本配置权限:
|
||||||
|
|
||||||
|
1. 在 Inno Setup 的 Script 的 [Setup] 中加上:`PrivilegesRequired=admin`
|
||||||
|
|
||||||
|
2. 在 [Run] 所有的 Flags 都加上:`runascurrentuser`,例如:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Run]
|
||||||
|
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent runascurrentuser
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
除此之外,由于v3.x版本起,配置文件保存与用户目录下的/.columba,因此你需要将配置文件包含并释放于该目录,以确保软件正常运行,您可以参考以下步骤配置相关资源:
|
||||||
|
|
||||||
|
1. 从Github中下载相关文件
|
||||||
|
2. 在 [Files]中添加以下嘞如
|
||||||
|
```
|
||||||
|
Source: "[your_files_path]\config\config.json"; DestDir: "{%USERPROFILE}\.columba"; Flags: onlyifdoesntexist ignoreversion
|
||||||
|
Source: "[your_files_path]\config\login_notifier.log"; DestDir: "{%USERPROFILE}\.columba"; Flags: onlyifdoesntexist ignoreversion
|
||||||
|
Source: "[your_files_path]\config\failure_login.json"; DestDir: "{%USERPROFILE}\.columba"; Flags: onlyifdoesntexist ignoreversion
|
||||||
|
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user