Skip to content

Commit d9bfb9e

Browse files
committed
ops/security: lynis; auditd; acct
1 parent 9d08547 commit d9bfb9e

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

docs/ops/security.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ Passkey(通行密钥)则是目前最新的「无密码登录」技术,在
799799
- 服务(包括容器在内)不随意暴露端口(特别是无限制 bind 到所有接口的情况),容器运行不随意提供 `--privileged`,运行的服务需要有自己的用户。
800800
- 对于 systemd 服务,考虑使用 systemd 提供的安全加固功能。详见[服务与日志管理中对 `systemd-analyze security` 的介绍](./service.md#service)。
801801

802-
#### 使用扫描器检查已知的安全问题 {#scanner-known-vulnerabilities}
802+
#### 使用自动化工具检查已知的安全问题与加固项 {#scanner-known-vulnerabilities}
803803

804804
一些扫描器工具可以帮助检查已经部署的程序是否存在已知的安全问题,例如专门用于扫描 WordPress 网站的 [WPScan](https://wpscan.com/),通用的漏洞扫描器 [nuclei](https://github.com/projectdiscovery/nuclei) 等。
805805

@@ -834,6 +834,28 @@ $ nuclei -u https://grafana.example.com -tags grafana
834834

835835
可以发现扫描器轻松地发现了已有的三个漏洞。相关系统管理员在得到扫描结果后,迅速升级了该 Grafana 的版本,解决了此安全问题。
836836

837+
此外,还有一些工具可以自动化检查系统中哪些地方需要加固,例如 [lynis](https://github.com/cisofy/lynis)。安装后直接执行 `lynis audit system` 即可检查系统中可能存在的安全问题,以及可选的加固项,系统管理员可以根据输出参考进行修复与加固操作。
838+
839+
#### 添加审计日志 {#server-audit}
840+
841+
日志是系统管理员排查问题的重要参考信息,攻击者进行操作时,也可能会在日志中留下痕迹,可以用于检测与[溯源](#forensics)。在需要更严格安全性的场景下,可以为服务器添加更多的审计信息。
842+
843+
!!! note "auditd"
844+
845+
`auditd` 使用 Linux 内核的[审计子系统](https://github.com/linux-audit/audit-kernel),配置审计的操作,并从内核获取审计信息。默认安装后规则列表(`/etc/audit/rules.d`)基本没有实际的内容,在 `/usr/share/doc/auditd/examples/audit-rules/` 目录下有一些规则文件可供参考(`README-rules` 中包含了这些配置类别的说明)。
846+
847+
其中主要可以参考的是 `30-stig.rules``30-ospp-v42.rules`。前者是按照美国国防部的安全技术实现指南(Security Technical Implementation Guide,STIG)实现的审计规则,后者是计算机安全的国际标准 Common Criteria 提供的操作系统安全需求规范(Operating System Protection Profile,OSPP)。需要注意的是,这些配置不是直接复制就完事了——其中的注释信息需要仔细阅读,避免遗漏操作。
848+
849+
在配置规则后,可以使用 `systemctl restart auditd` 加载。`auditd.service` 会依赖 `audit-rules.service``augenrules --load`)加载配置,如果配置书写有问题导致加载失败,相关输出可以帮助排查。`auditctl -l` 可以显示当前所有规则。
850+
851+
auditd 的日志存储在 `/var/log/audit/audit.log`,其 `ausearch``aureport` 工具可以帮助进行审计日志结果的搜索与分析,详情可参考对应的文档。
852+
853+
!!! note "acct"
854+
855+
`acct` 可以记录系统执行过的命令,对应服务为 `acct.service`。默认记录的信息会写入 `/var/log/account/pacct``lastcomm` 可以显示执行过的命令,`sa` 可以显示命令统计信息。
856+
857+
需要注意的是,其日志 rotate 不使用 logrotate,而是由 cron 处理,配置位于 `/etc/cron.daily/acct`
858+
837859
## 安全事件处理示例 {#security-event-example}
838860

839861
以下,我们介绍一些真实的安全事件紧急处理的例子,部分细节做模糊化修改处理。

0 commit comments

Comments
 (0)