hids
| 函数名 | 函数描述/介绍 |
|---|---|
| hids.CPUAverage | CPUAverage 获取当前系统的 CPU 使用率平均值 |
| hids.CPUAverageCallback | CPUPercentCallback 当 CPU 使用率平均值发生变化时,调用 callback 函数 |
| hids.CPUPercent | CPUPercent 获取当前系统的 CPU 使用率 |
| hids.CPUPercentCallback | CPUPercentCallback 当 CPU 使用率发生变化时,调用 callback 函数 |
| hids.CheckAuditSystem | |
| hids.CheckJournalAvailable | CheckJournalAvailable 检查 journalctl 是否可用且当前用户有权读取系统级 sshd 日志 sshd 日志属于 system journal,非 root 用户需要加入 systemd-journal(或 adm)组才能读取。 如果权限不足,journalctl... |
| hids.GetConnectionStats | GetConnectionStats 获取连接统计信息 |
| hids.GetConnectionsByPid | GetConnectionsByPid 获取指定进程的连接 |
| hids.GetConnectionsByPort | GetConnectionsByPort 获取指定端口的连接 |
| hids.GetCurrentProcessInfo | GetCurrentProcessInfo 获取当前进程信息 |
| hids.GetEstablishedConnections | GetEstablishedConnections 获取已建立的连接 |
| hids.GetFileHashMD5 | GetFileHashMD5 获取文件MD5哈希 |
| hids.GetFileHashSHA256 | GetFileHashSHA256 获取文件SHA256哈希 |
| hids.GetListeningPorts | GetListeningPorts 获取所有监听端口 |
| hids.GetProcessAncestors | GetProcessAncestors 获取进程的所有祖先进程(父进程链) |
| hids.GetProcessByPid | GetProcessByPid 根据PID获取进程详细信息 |
| hids.GetProcessChildren | GetProcessChildren 获取进程的所有子进程 |
| hids.GetProcessParent | GetProcessParent 获取进程的父进程信息 |
| hids.GetProcessTree | GetProcessTree 获取进程树(从指定PID开始,或从init进程开始) |
| hids.GetTCPConnections | GetTCPConnections 获取TCP连接列表 |
| hids.GetUDPConnections | GetUDPConnections 获取UDP连接列表 |
| hids.Init | Init 初始化全局健康管理器 |
| hids.KillProcess | KillProcess 终止进程 |
| hids.MemoryPercent | MemoryPercent 获取当前系统的内存使用率 |
| hids.MemoryPercentCallback | MemoryPercentCallback 当内存使用率发生变化时,调用 callback |
| hids.Netstat | Netstat 获取网络连接列表(类似netstat命令) |
| hids.NewAuditMonitor | |
| hids.NewConnectionFilter | NewConnectionFilter 创建新的连接过滤器 |
| hids.NewConnectionMonitor | NewConnectionMonitor 创建连接监控器 |
| hids.NewJournalSSHMonitor | |
| hids.NewProcessFilter | NewProcessFilter 创建新的进程过滤器 |
| hids.NewProcessMonitor | NewProcessMonitor 创建进程监控器 |
| hids.NewWhitelistRule | NewWhitelistRule 创建新的白名单规则 |
| hids.PS | PS 获取进程列表,可选择使用过滤器 |
| hids.ProcessExists | ProcessExists 检查指定PID的进程是否存在 |
| hids.SetMonitorInterval | SetMonitorInterval 设置全局健康管理器的监控间隔(单位:秒),如果在全局健康管理器运行时调用,会重置全局健康管理器 |
| hids.ShowMonitorInterval | ShowMonitorInterval 在标准输出中输出全局健康管理器的监控间隔(单位:秒) |
| hids.WatchAuditEvents | WatchAuditEvents 简化的audit监控函数 |
| hids.WatchConnections | WatchConnections 简单的连接监控函数,监控指定时长后返回事件列表 |
| hids.WatchJournalSSHEvents | WatchJournalSSHEvents 简化的 SSH journal 监控函数 使用 context 控制生命周期,onSuccess 和 onFailed 可以为 nil |
| hids.WatchProcess | WatchProcess 简单的进程监控函数,监控指定时长后返回事件列表 |
| hids.WithConnectionFilter | WithConnectionFilter 设置连接过滤器 |
| hids.WithConnectionHistory | WithConnectionHistory 启用历史记录 |
| hids.WithConnectionMonitorInterval | WithConnectionMonitorInterval 设置监控间隔 |
| hids.WithOnConnectionDisappear | WithOnConnectionDisappear 设置连接消失回调 |
| hids.WithOnNewConnection | WithOnNewConnection 设置新连接回调 |
| hids.WithOnProcessCreate | WithOnProcessCreate 设置进程创建回调 |
| hids.WithOnProcessExit | WithOnProcessExit 设置进程退出回调 |
| hids.WithProcessMonitorInterval | WithProcessMonitorInterval 设置监控间隔 |
| hids.WithWhitelist | WithWhitelist 设置进程白名单规则 |
| hids.auditFilterCommands | auditFilterCommands 设置命令过滤器(支持正则) |
| hids.auditFilterLoginUsers | auditFilterLoginUsers 设置原始登录用户过滤器(按 LoginUser 过滤) 过滤原始登录的用户(例如 SSH 登录的用户,即使后来 su 到其他用户) |
| hids.auditFilterUsers | auditFilterUsers 设置当前用户过滤器(按 Username 过滤) 过滤当前执行操作的用户(例如 su 后的用户) |
| hids.auditMonitorCommand | auditMonitorCommand 设置是否监控命令执行事件 |
| hids.auditMonitorLogin | auditMonitorLogin 设置是否监控登录事件 |
| hids.auditOnCommandEvent | auditOnCommandEvent 设置命令执行事件回调 |
| hids.auditOnLoginEvent | auditOnLoginEvent 设置登录事件回调 |
| hids.journalSSHFilterRemoteIPs | journalSSHFilterRemoteIPs 只监控来自指定 IP 的 SSH 登录事件 |
| hids.journalSSHFilterUsers | journalSSHFilterUsers 只监控指定用户名的 SSH 登录事件 |
| hids.journalSSHOnAnyEvent | journalSSHOnAnyEvent 设置任意 SSH 事件回调(成功/失败/断开均触发) |
| hids.journalSSHOnDisconnected | journalSSHOnDisconnected 设置会话断开事件回调 |
| hids.journalSSHOnLoginFailed | journalSSHOnLoginFailed 设置登录失败事件回调 |
| hids.journalSSHOnLoginSuccess | journalSSHOnLoginSuccess 设置登录成功事件回调 |
| hids.journalSSHSince | journalSSHSince 设置从何时开始读取日志(journalctl --since 参数格式) 默认为 "now",即只读取启动后的新日志 |
| hids.journalSSHUnits | journalSSHUnits 设置要监听的 systemd unit 名称(默认自动检测 sshd/ssh) |
函数定义#
CPUAverage#
详细描述#
CPUAverage 获取当前系统的 CPU 使用率平均值
Example:
printf("%f%%\n", hids.CPUAverage())定义#
CPUAverage() float64
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | float64 |
CPUAverageCallback#
详细描述#
CPUPercentCallback 当 CPU 使用率平均值发生变化时,调用 callback 函数
Example:
hids.Init()hids.CPUAverageCallback(func(i) {if (i > 50) { println("cpu average precent is over 50%") } // 当 CPU 使用率平均值超过50%时输出信息})定义#
CPUAverageCallback(callback func(i float64))
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(i float64) |
CPUPercent#
详细描述#
CPUPercent 获取当前系统的 CPU 使用率
Example:
printf("%f%%\n", hids.CPUPercent())定义#
CPUPercent() float64
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | float64 |
CPUPercentCallback#
详细描述#
CPUPercentCallback 当 CPU 使用率发生变化时,调用 callback 函数
Example:
hids.Init()hids.CPUPercentCallback(func(i) {if (i > 50) { println("cpu precent is over 50%") } // 当 CPU 使用率超过50%时输出信息})定义#
CPUPercentCallback(callback func(i float64))
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(i float64) |
CheckAuditSystem#
详细描述#
定义#
CheckAuditSystem() (*AuditStatus, error)
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *AuditStatus | |
| r2 | error |
CheckJournalAvailable#
详细描述#
CheckJournalAvailable 检查 journalctl 是否可用且当前用户有权读取系统级 sshd 日志
sshd 日志属于 system journal,非 root 用户需要加入 systemd-journal(或 adm)组才能读取。
如果权限不足,journalctl 会静默返回空结果而不报错,导致监控无法捕获任何事件。
本函数通过不带 -q 执行 journalctl,捕获其向 stderr 输出的权限提示来判断。
Example:
err = hids.CheckJournalAvailable()if err != nil { println("journal not available:", err) }定义#
CheckJournalAvailable() error
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | error |
GetConnectionStats#
详细描述#
GetConnectionStats 获取连接统计信息
Example:
stats, err = hids.GetConnectionStats()println("Total connections:", stats.Total)println("TCP connections:", stats.TCPCount)println("Listening ports:", stats.ListenCount)定义#
GetConnectionStats() (*ConnectionStats, error)
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ConnectionStats | |
| r2 | error |
GetConnectionsByPid#
详细描述#
GetConnectionsByPid 获取指定进程的连接
Example:
conns, err = hids.GetConnectionsByPid(1234)定义#
GetConnectionsByPid(pid int32) ([]*ConnectionInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| pid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionInfo | |
| r2 | error |
GetConnectionsByPort#
详细描述#
GetConnectionsByPort 获取指定端口的连接
Example:
conns, err = hids.GetConnectionsByPort(80)定义#
GetConnectionsByPort(port uint32) ([]*ConnectionInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| port | uint32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionInfo | |
| r2 | error |
GetCurrentProcessInfo#
详细描述#
GetCurrentProcessInfo 获取当前进程信息
Example:
info, err = hids.GetCurrentProcessInfo()println("Current PID:", info.Pid)定义#
GetCurrentProcessInfo() (*ProcessInfo, error)
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ProcessInfo | |
| r2 | error |
GetEstablishedConnections#
详细描述#
GetEstablishedConnections 获取已建立的连接
Example:
conns, err = hids.GetEstablishedConnections()定义#
GetEstablishedConnections() ([]*ConnectionInfo, error)
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionInfo | |
| r2 | error |
GetFileHashMD5#
详细描述#
GetFileHashMD5 获取文件MD5哈希
Example:
hash = hids.GetFileHashMD5("/usr/bin/nginx")定义#
GetFileHashMD5(path string) (string, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| path | string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | string | |
| r2 | error |
GetFileHashSHA256#
详细描述#
GetFileHashSHA256 获取文件SHA256哈希
Example:
hash = hids.GetFileHashSHA256("/usr/bin/nginx")定义#
GetFileHashSHA256(path string) (string, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| path | string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | string | |
| r2 | error |
GetListeningPorts#
详细描述#
GetListeningPorts 获取所有监听端口
Example:
conns, err = hids.GetListeningPorts()for _, conn := range conns {
println("Port:", conn.LocalPort, "PID:", conn.Pid)
}定义#
GetListeningPorts() ([]*ConnectionInfo, error)
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionInfo | |
| r2 | error |
GetProcessAncestors#
详细描述#
GetProcessAncestors 获取进程的所有祖先进程(父进程链)
Example:
ancestors, err = hids.GetProcessAncestors(1234)
for _, ancestor := range ancestors { println("Ancestor PID:", ancestor.Pid, "Name:", ancestor.Name) }
定义#
GetProcessAncestors(pid int32) ([]*ProcessInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| pid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ProcessInfo | |
| r2 | error |
GetProcessByPid#
详细描述#
GetProcessByPid 根据PID获取进程详细信息
Example:
info, err = hids.GetProcessByPid(1234)
if err == nil { println("Process Name:", info.Name) println("Process User:", info.Username) }
定义#
GetProcessByPid(pid int32) (*ProcessInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| pid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ProcessInfo | |
| r2 | error |
GetProcessChildren#
详细描述#
GetProcessChildren 获取进程的所有子进程
Example:
children, err = hids.GetProcessChildren(1234)
for _, child := range children { println("Child PID:", child.Pid, "Name:", child.Name) }
定义#
GetProcessChildren(pid int32) ([]*ProcessInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| pid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ProcessInfo | |
| r2 | error |
GetProcessParent#
详细描述#
GetProcessParent 获取进程的父进程信息
Example:
parent, err = hids.GetProcessParent(1234)
if err == nil { println("Parent PID:", parent.Pid, "Name:", parent.Name) }
定义#
GetProcessParent(pid int32) (*ProcessInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| pid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ProcessInfo | |
| r2 | error |
GetProcessTree#
详细描述#
GetProcessTree 获取进程树(从指定PID开始,或从init进程开始)
Example:
// 获取指定进程的进程树tree, err = hids.GetProcessTree(1234)
// 获取整个系统的进程树tree, err = hids.GetProcessTree(1)定义#
GetProcessTree(rootPid int32) (*ProcessTreeNode, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| rootPid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ProcessTreeNode | |
| r2 | error |
GetTCPConnections#
详细描述#
GetTCPConnections 获取TCP连接列表
Example:
conns, err = hids.GetTCPConnections()定义#
GetTCPConnections() ([]*ConnectionInfo, error)
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionInfo | |
| r2 | error |
GetUDPConnections#
详细描述#
GetUDPConnections 获取UDP连接列表
Example:
conns, err = hids.GetUDPConnections()定义#
GetUDPConnections() ([]*ConnectionInfo, error)
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionInfo | |
| r2 | error |
Init#
详细描述#
Init 初始化全局健康管理器
Example:
hids.Init()定义#
Init()
KillProcess#
详细描述#
KillProcess 终止进程
Example:
err = hids.KillProcess(1234)定义#
KillProcess(pid int32) error
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| pid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | error |
MemoryPercent#
详细描述#
MemoryPercent 获取当前系统的内存使用率
Example:
printf("%f%%\n", hids.MemoryPercent())定义#
MemoryPercent() float64
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | float64 |
MemoryPercentCallback#
详细描述#
MemoryPercentCallback 当内存使用率发生变化时,调用 callback
Example:
hids.Init()hids.MemoryPercentCallback(func(i) {if (i > 50) { println("memory precent is over 50%") } // 当内存使用率超过50%时输出信息})定义#
MemoryPercentCallback(callback func(i float64))
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(i float64) |
Netstat#
详细描述#
Netstat 获取网络连接列表(类似netstat命令)
Example:
// 获取所有连接conns, err = hids.Netstat()
// 使用过滤器filter = hids.NewConnectionFilter()filter.Status = "LISTEN"conns, err = hids.Netstat(filter)定义#
Netstat(filters ...*ConnectionFilter) ([]*ConnectionInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| filters | ...*ConnectionFilter |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionInfo | |
| r2 | error |
NewAuditMonitor#
详细描述#
定义#
NewAuditMonitor(opts ...AuditMonitorOption) (*AuditMonitor, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| opts | ...AuditMonitorOption |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *AuditMonitor | |
| r2 | error |
NewConnectionFilter#
详细描述#
NewConnectionFilter 创建新的连接过滤器
Example:
filter = hids.NewConnectionFilter()filter.Status = "LISTEN"filter.Protocol = "tcp"conns = hids.Netstat(filter)定义#
NewConnectionFilter() *ConnectionFilter
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ConnectionFilter |
NewConnectionMonitor#
详细描述#
NewConnectionMonitor 创建连接监控器
Example:
monitor = hids.NewConnectionMonitor(
hids.WithConnectionMonitorInterval(1), hids.WithOnNewConnection(func(event) { println("New connection:", event.Connection.LocalAddr, "->", event.Connection.RemoteAddr) }),
)定义#
NewConnectionMonitor(opts ...ConnectionMonitorOption) *ConnectionMonitor
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| opts | ...ConnectionMonitorOption |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ConnectionMonitor |
NewJournalSSHMonitor#
详细描述#
定义#
NewJournalSSHMonitor(opts ...JournalSSHMonitorOption) (*JournalSSHMonitor, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| opts | ...JournalSSHMonitorOption |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *JournalSSHMonitor | |
| r2 | error |
NewProcessFilter#
详细描述#
NewProcessFilter 创建新的进程过滤器
Example:
filter = hids.NewProcessFilter()filter.Name = "nginx"processes = hids.PS(filter)定义#
NewProcessFilter() *ProcessFilter
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ProcessFilter |
NewProcessMonitor#
详细描述#
NewProcessMonitor 创建进程监控器
Example:
monitor = hids.NewProcessMonitor(
hids.WithProcessMonitorInterval(1), hids.WithOnProcessCreate(func(event) { println("New process:", event.Process.Name) }),
)定义#
NewProcessMonitor(opts ...ProcessMonitorOption) *ProcessMonitor
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| opts | ...ProcessMonitorOption |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ProcessMonitor |
NewWhitelistRule#
详细描述#
NewWhitelistRule 创建新的白名单规则
Example:
rule = hids.NewWhitelistRule()rule.Name = "nginx"rule.ExePath = "/usr/sbin/nginx"定义#
NewWhitelistRule() *ProcessWhitelistRule
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | *ProcessWhitelistRule |
PS#
详细描述#
PS 获取进程列表,可选择使用过滤器
Example:
// 获取所有进程processes, err = hids.PS()
// 使用过滤器filter = hids.NewProcessFilter()filter.Name = "nginx"processes, err = hids.PS(filter)定义#
PS(filters ...*ProcessFilter) ([]*ProcessInfo, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| filters | ...*ProcessFilter |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ProcessInfo | |
| r2 | error |
ProcessExists#
详细描述#
ProcessExists 检查指定PID的进程是否存在
Example:
exists = hids.ProcessExists(1234)定义#
ProcessExists(pid int32) bool
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| pid | int32 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | bool |
SetMonitorInterval#
详细描述#
SetMonitorInterval 设置全局健康管理器的监控间隔(单位:秒),如果在全局健康管理器运行时调用,会重置全局健康管理器
Example:
hids.SetMonitorInterval(1)定义#
SetMonitorInterval(i float64)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| i | float64 |
ShowMonitorInterval#
详细描述#
ShowMonitorInterval 在标准输出中输出全局健康管理器的监控间隔(单位:秒)
Example:
hids.ShowMonitorInterval()定义#
ShowMonitorInterval()
WatchAuditEvents#
详细描述#
WatchAuditEvents 简化的audit监控函数
Example:
ctx, cancel = context.WithTimeout(context.Background(), 10)defer cancel()err = hids.WatchAuditEvents(ctx,
fn(event) { println("Login:", event.Username) }, fn(event) { println("Command:", event.Command) },
)定义#
WatchAuditEvents(ctx context.Context, onLogin func(*LoginEvent), onCommand func(*CommandEvent)) error
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| ctx | context.Context | |
| onLogin | func(*LoginEvent) | |
| onCommand | func(*CommandEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | error |
WatchConnections#
详细描述#
WatchConnections 简单的连接监控函数,监控指定时长后返回事件列表
Example:
events, err = hids.WatchConnections(5) // 监控5秒for _, event := range events {
println(event.Type, event.Connection.LocalAddr, "->", event.Connection.RemoteAddr)
}定义#
WatchConnections(durationSeconds float64) ([]*ConnectionEvent, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| durationSeconds | float64 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ConnectionEvent | |
| r2 | error |
WatchJournalSSHEvents#
详细描述#
WatchJournalSSHEvents 简化的 SSH journal 监控函数
使用 context 控制生命周期,onSuccess 和 onFailed 可以为 nil
Example:
ctx, cancel = context.WithTimeout(context.Background(), 60)defer cancel()err = hids.WatchJournalSSHEvents(ctx,
fn(event) { printf("Login success: %s from %s\n", event.Username, event.RemoteIP) }, fn(event) { printf("Login failed: %s from %s\n", event.Username, event.RemoteIP) },
)定义#
WatchJournalSSHEvents(ctx context.Context, onSuccess func(*JournalSSHEvent), onFailed func(*JournalSSHEvent)) error
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| ctx | context.Context | |
| onSuccess | func(*JournalSSHEvent) | |
| onFailed | func(*JournalSSHEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | error |
WatchProcess#
详细描述#
WatchProcess 简单的进程监控函数,监控指定时长后返回事件列表
Example:
events, err = hids.WatchProcess(5) // 监控5秒for _, event := range events {
println(event.Type, event.Process.Name, event.Process.Pid)
}定义#
WatchProcess(durationSeconds float64) ([]*ProcessEvent, error)
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| durationSeconds | float64 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | []*ProcessEvent | |
| r2 | error |
WithConnectionFilter#
详细描述#
WithConnectionFilter 设置连接过滤器
定义#
WithConnectionFilter(filter *ConnectionFilter) ConnectionMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| filter | *ConnectionFilter |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ConnectionMonitorOption |
WithConnectionHistory#
详细描述#
WithConnectionHistory 启用历史记录
定义#
WithConnectionHistory(maxHistory int) ConnectionMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| maxHistory | int |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ConnectionMonitorOption |
WithConnectionMonitorInterval#
详细描述#
WithConnectionMonitorInterval 设置监控间隔
定义#
WithConnectionMonitorInterval(seconds float64) ConnectionMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| seconds | float64 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ConnectionMonitorOption |
WithOnConnectionDisappear#
详细描述#
WithOnConnectionDisappear 设置连接消失回调
定义#
WithOnConnectionDisappear(callback func(event *ConnectionEvent)) ConnectionMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(event *ConnectionEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ConnectionMonitorOption |
WithOnNewConnection#
详细描述#
WithOnNewConnection 设置新连接回调
定义#
WithOnNewConnection(callback func(event *ConnectionEvent)) ConnectionMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(event *ConnectionEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ConnectionMonitorOption |
WithOnProcessCreate#
详细描述#
WithOnProcessCreate 设置进程创建回调
Example:
monitor = hids.NewProcessMonitor(hids.WithOnProcessCreate(func(event) { println("New process:", event.Process.Name, "PID:", event.Process.Pid) }))
定义#
WithOnProcessCreate(callback func(event *ProcessEvent)) ProcessMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(event *ProcessEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ProcessMonitorOption |
WithOnProcessExit#
详细描述#
WithOnProcessExit 设置进程退出回调
Example:
monitor = hids.NewProcessMonitor(hids.WithOnProcessExit(func(event) { println("Process exited:", event.Process.Name, "PID:", event.Process.Pid) }))
定义#
WithOnProcessExit(callback func(event *ProcessEvent)) ProcessMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(event *ProcessEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ProcessMonitorOption |
WithProcessMonitorInterval#
详细描述#
WithProcessMonitorInterval 设置监控间隔
Example:
monitor = hids.NewProcessMonitor(hids.WithProcessMonitorInterval(2))定义#
WithProcessMonitorInterval(seconds float64) ProcessMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| seconds | float64 |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ProcessMonitorOption |
WithWhitelist#
详细描述#
WithWhitelist 设置进程白名单规则
Example:
rules = [hids.NewWhitelistRule()]rules[0].Name = "nginx"monitor = hids.NewProcessMonitor(hids.WithWhitelist(rules))定义#
WithWhitelist(rules []*ProcessWhitelistRule) ProcessMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| rules | []*ProcessWhitelistRule |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | ProcessMonitorOption |
auditFilterCommands#
详细描述#
auditFilterCommands 设置命令过滤器(支持正则)
Example:
monitor = hids.NewAuditMonitor(hids.auditFilterCommands(".*ssh.*", "sudo"))定义#
auditFilterCommands(commands ...string) AuditMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| commands | ...string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | AuditMonitorOption |
auditFilterLoginUsers#
详细描述#
auditFilterLoginUsers 设置原始登录用户过滤器(按 LoginUser 过滤)
过滤原始登录的用户(例如 SSH 登录的用户,即使后来 su 到其他用户)
Example:
// 只监控原始登录用户为 root 的会话中的操作monitor = hids.NewAuditMonitor(hids.auditFilterLoginUsers("root"))定义#
auditFilterLoginUsers(users ...string) AuditMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| users | ...string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | AuditMonitorOption |
auditFilterUsers#
详细描述#
auditFilterUsers 设置当前用户过滤器(按 Username 过滤)
过滤当前执行操作的用户(例如 su 后的用户)
Example:
// 只监控 matrix 用户执行的命令monitor = hids.NewAuditMonitor(hids.auditFilterUsers("root", "www"))定义#
auditFilterUsers(users ...string) AuditMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| users | ...string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | AuditMonitorOption |
auditMonitorCommand#
详细描述#
auditMonitorCommand 设置是否监控命令执行事件
Example:
monitor = hids.NewAuditMonitor(hids.auditMonitorCommand(true))定义#
auditMonitorCommand(enable bool) AuditMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| enable | bool |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | AuditMonitorOption |
auditMonitorLogin#
详细描述#
auditMonitorLogin 设置是否监控登录事件
Example:
monitor = hids.NewAuditMonitor(hids.auditMonitorLogin(true))定义#
auditMonitorLogin(enable bool) AuditMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| enable | bool |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | AuditMonitorOption |
auditOnCommandEvent#
详细描述#
auditOnCommandEvent 设置命令执行事件回调
Example:
monitor = hids.NewAuditMonitor(hids.auditOnCommandEvent(fn(event) {
println("Command:", event.Command, "by", event.Username)
}))定义#
auditOnCommandEvent(callback func(*CommandEvent)) AuditMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(*CommandEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | AuditMonitorOption |
auditOnLoginEvent#
详细描述#
auditOnLoginEvent 设置登录事件回调
Example:
monitor = hids.NewAuditMonitor(hids.auditOnLoginEvent(fn(event) {
println("Login:", event.Username, "from", event.RemoteIP)
}))定义#
auditOnLoginEvent(callback func(*LoginEvent)) AuditMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(*LoginEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | AuditMonitorOption |
journalSSHFilterRemoteIPs#
详细描述#
journalSSHFilterRemoteIPs 只监控来自指定 IP 的 SSH 登录事件
Example:
monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHFilterRemoteIPs("192.168.1.1", "10.0.0.2"),
)定义#
journalSSHFilterRemoteIPs(ips ...string) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| ips | ...string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |
journalSSHFilterUsers#
详细描述#
journalSSHFilterUsers 只监控指定用户名的 SSH 登录事件
Example:
monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHFilterUsers("root", "admin"),
)定义#
journalSSHFilterUsers(users ...string) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| users | ...string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |
journalSSHOnAnyEvent#
详细描述#
journalSSHOnAnyEvent 设置任意 SSH 事件回调(成功/失败/断开均触发)
Example:
monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHOnAnyEvent(fn(event) { println("SSH event:", event.EventType, event.Username, event.RemoteIP) }),
)定义#
journalSSHOnAnyEvent(callback func(*JournalSSHEvent)) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(*JournalSSHEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |
journalSSHOnDisconnected#
详细描述#
journalSSHOnDisconnected 设置会话断开事件回调
Example:
monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHOnDisconnected(fn(event) { println("SSH disconnected:", event.Username, "from", event.RemoteIP) }),
)定义#
journalSSHOnDisconnected(callback func(*JournalSSHEvent)) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(*JournalSSHEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |
journalSSHOnLoginFailed#
详细描述#
journalSSHOnLoginFailed 设置登录失败事件回调
Example:
monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHOnLoginFailed(fn(event) { println("SSH login failed:", event.Username, "from", event.RemoteIP) }),
)定义#
journalSSHOnLoginFailed(callback func(*JournalSSHEvent)) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(*JournalSSHEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |
journalSSHOnLoginSuccess#
详细描述#
journalSSHOnLoginSuccess 设置登录成功事件回调
Example:
monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHOnLoginSuccess(fn(event) { println("SSH login success:", event.Username, "from", event.RemoteIP) }),
)定义#
journalSSHOnLoginSuccess(callback func(*JournalSSHEvent)) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| callback | func(*JournalSSHEvent) |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |
journalSSHSince#
详细描述#
journalSSHSince 设置从何时开始读取日志(journalctl --since 参数格式)
默认为 "now",即只读取启动后的新日志
Example:
// 读取最近1小时的历史日志并持续监控monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHSince("1 hour ago"),
)定义#
journalSSHSince(since string) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| since | string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |
journalSSHUnits#
详细描述#
journalSSHUnits 设置要监听的 systemd unit 名称(默认自动检测 sshd/ssh)
Example:
monitor, err = hids.NewJournalSSHMonitor(
hids.journalSSHUnits("sshd.service"),
)定义#
journalSSHUnits(units ...string) JournalSSHMonitorOption
参数#
| 参数名 | 参数类型 | 参数解释 |
|---|---|---|
| units | ...string |
返回值#
| 返回值(顺序) | 返回值类型 | 返回值解释 |
|---|---|---|
| r1 | JournalSSHMonitorOption |