Linux审计通过auditd服务和auditctl工具监控系统活动,提升安全与合规。首先安装并运行auditd服务,使用auditctl实时配置规则(如监控文件访问或系统调用),或编辑/etc/audit/audit.rules实现持久化。关键实践包括明确目标、使用描述性键值、组合条件优化规则、排除噪音,并在测试环境验证。需警惕规则过宽导致性能下降,注意arch字段和日志轮转。通过ausearch和aureport分析日志,结合SIEM进行关联分析,可发现异常登录、敏感文件访问、提权尝试等威胁,实现有效入侵检测与事后追溯。

在Linux中配置审计规则,核心在于利用
auditd
auditctl
配置Linux审计规则主要有两种方式:实时通过
auditctl
/etc/audit/audit.rules
auditd
首先,确保
auditd
sudo apt install auditd
sudo yum install auditd
sudo dnf install auditd
实时配置规则(临时性)
auditctl
auditctl -w /path/to/monitor -p rwax -k my_key
-w
-p
r
w
x
a
-k
auditctl -a always,exit -S open -F arch=b64 -F uid=1000 -k file_open_by_user
-a always,exit
always
exit
-S
open
execve
unlink
-F
arch=b64
uid=1000
-F
auditctl -l
auditctl -D
持久化配置规则(推荐)
为了让规则在系统重启后依然有效,我们需要编辑
/etc/audit/audit.rules
auditctl
auditd
/etc/audit/audit.rules
sudo vim /etc/audit/audit.rules
auditctl
auditctl
-w /etc/passwd -p wa -k passwd_changes -w /etc/shadow -p wa -k shadow_changes -a always,exit -S execve -F arch=b64 -F uid=0 -k root_exec -a always,exit -S unlink,unlinkat -F arch=b64 -k file_deletion
通常,在文件的末尾会有一个
-e 2
auditd
sudo systemctl restart auditd
sudo auditctl -R /etc/audit/audit.rules
关键点: 编写规则时,要考虑到性能影响。过于宽泛的规则会产生海量日志,可能导致磁盘空间耗尽或系统性能下降。务必针对性地监控关键文件、目录和系统调用。
Linux审计的重要性,在我看来,远不止是满足合规性要求那么简单。它更像是在你系统内部安装了一双“眼睛”和一套“录像机”,能够详细记录下系统上发生的几乎所有关键事件。很多时候,我们过于关注防火墙、入侵防御系统这些“事前防御”,却忽略了“事中感知”和“事后追溯”的价值。而Linux审计,正是填补这一空白的关键工具。
它能帮助我们解决一系列棘手的安全难题:
/etc
简单来说,没有审计,你的系统就像一个黑箱,你只知道它在运行,但不知道里面发生了什么。有了审计,你就能对系统内部的活动了如指掌,这对于构建一个真正安全、可信赖的IT环境来说,是不可或缺的一环。
编写审计规则是一门艺术,它需要在安全覆盖面和系统性能之间找到一个微妙的平衡点。我见过不少人,要么规则写得过于粗糙,导致错过了关键事件;要么写得过于庞大,把系统拖得像蜗牛,日志更是堆积如山,根本无从下手。
最佳实践:
ausearch
aureport
passwd_changes
rule1
-F
auditctl -a always,exit -S open,openat -F path=/path/to/file -F uid>=1000 -F uid!=999 -k custom_file_access
auditd
/etc/audit/audit.rules
open
execve
常见陷阱:
/usr
-w
exit
always
auditd
arch
arch=b64
arch=b32
/etc/audit/audit.rules
编写高效的审计规则,需要经验、耐心和对系统行为的深刻理解。它不是一蹴而就的,而是需要不断迭代、测试和优化的过程。
仅仅记录日志是远远不够的,真正的挑战在于如何从海量的审计数据中提炼出有价值的信息,并及时发现潜在的安全威胁。原始的审计日志通常是文本格式,信息量大且分散,直接阅读效率极低。因此,我们需要借助合适的工具和分析方法。
核心工具:
ausearch
ausearch
ausearch -ts today
ausearch -ts yesterday -te now
ausearch -ts 01/01/2023 00:00:00 -te 01/01/2023 23:59:59
ausearch -m SYSCALL
ausearch -m USER_LOGIN
ausearch -m CWD
ausearch -k passwd_changes
passwd_changes
ausearch -au 1000
ausearch -ua username
ausearch -ts today -k critical_file_access -sv no
ausearch -c sshd -sv no
-i
ausearch
aureport
aureport
aureport -ts today -u -s
aureport --file -i
aureport --exe -i
aureport --failed
SIEM (Security Information and Event Management) 系统: 对于大规模企业环境,手动分析审计日志是不可行的。将Linux审计日志导入SIEM系统(如Splunk, ELK Stack, QRadar等)是标准做法。SIEM能够聚合来自不同系统的日志,进行关联分析、实时告警、可视化和长期存储,从而更有效地发现复杂的攻击模式。
分析方法与发现威胁:
/etc/shadow
setuid
setgid
su -
/etc/passwd
/etc/sudoers
sshd_config
sudo
/tmp
execve
unlink
unlinkat
mount
umount
w
a
x
审计日志就像是一本系统的日记,它记录了系统上发生的一切。但要从这本日记中读懂故事,并发现那些隐藏的威胁,需要我们有目的地去“阅读”和“理解”。工具是眼睛,分析方法是思维,两者结合才能真正发挥审计的价值。
以上就是如何在Linux中配置审计规则 Linux audit规则编写的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号