Auditd-Linux 服务器安全审计工具

发布于 2024-09-10 20:07:43 字数 7980 浏览 13 评论 0

首先,Linux 中国祝贺读者 2015 羊年春节快乐,万事如意! 。下面开始这个新年版审计工具的介绍。安全防护是首先要考虑的问题。为了避免别人盗取我们的数据,我们需要时刻关注它。安全防护包括很多东西,审计是其中之一。

我们知道 Linux 系统上有一个叫 auditd 的审计工具。这个工具在大多数 Linux 操作系统中是默认安装的。那么 auditd 是什么?该如何使用呢?下面我们开始介绍。

什么是 auditd?

auditd(或 auditd 守护进程)是 Linux 审计系统中用户空间的一个组件,其负责将审计记录写入磁盘。

安装 auditd

Ubuntu 系统中,我们可以使用 wajig 工具或者 apt-get 工具 安装 auditd。

按照下面的说明安装 auditd,安装完毕后将自动安装以下 auditd 和相关的工具:

  • auditctl : 即时控制审计守护进程的行为的工具,比如如添加规则等等。
  • /etc/audit/audit.rules : 记录审计规则的文件。
  • aureport : 查看和生成审计报告的工具。
  • ausearch : 查找审计事件的工具
  • auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
  • autrace : 一个用于跟踪进程的命令。
  • /etc/audit/auditd.conf : auditd 工具的配置文件。

首次安装 auditd 后, 审计规则是空的。

可以使用以下命令查看:

$ sudo auditctl -l

以下我们介绍如何给 auditd 添加审计规则。

如何使用 auditd

Audit 文件和目录访问审计

我们使用审计工具的一个基本的需求是监控文件和目录的更改。使用 auditd 工具,我们可通过如下命令来配置(注意,以下命令需要 root 权限)。

文件审计

$ sudo auditctl -w /etc/passwd -p rwxa

选项 :

  • -w path : 指定要监控的路径,上面的命令指定了监控的文件路径 /etc/passwd
  • -p : 指定触发审计的文件/目录的访问权限
  • rwxa : 指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr)

目录审计

使用类似的命令来对目录进行审计,如下:

$ sudo auditctl -w /production/

以上命令将监控对 /production 目录 的所有访问。

现在,运行 auditctl -l 命令即可查看所有已配置的规则。

下面开始介绍审计日志。

查看审计日志

添加规则后,我们可以查看 auditd 的日志。使用 ausearch 工具可以查看 auditd 日志。

我们已经添加规则监控 /etc/passwd 文件。现在可以使用 ausearch 工具的以下命令来查看审计日志了。

$ sudo ausearch -f /etc/passwd
  • -f 设定 ausearch 调出 /etc/passwd 文件的审计内容

下面是输出 :

time ->Mon Dec 22 09:39:16 2014

type=PATH msg=audit(1419215956.471:194): item=0 name="/etc/passwd" inode=142512 dev=08:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL

type=CWD msg=audit(1419215956.471:194): cwd="/home/pungki"

type=SYSCALL msg=audit(1419215956.471:194): arch=40000003 syscall=5 success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231 auid=4294967295 uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295 comm="sudo" exe="/usr/bin/sudo" key=(null)

下面开始解读输出结果。

  • time : 审计时间。
  • name : 审计对象
  • cwd : 当前路径
  • syscall : 相关的系统调用
  • auid : 审计用户 ID
  • uid 和 gid : 访问文件的用户 ID 和用户组 ID
  • comm : 用户访问文件的命令
  • exe : 上面命令的可执行文件路径

以上审计日志显示文件未被改动。

以下我们将要添加一个用户,看看 auditd 如何记录文件 /etc/passwd 的改动的。

time-> Mon Dec 22 11:25:23 2014

type=PATH msg=audit(1419222323.628:510): item=1 name="/etc/passwd.lock" inode=143992 dev=08:01 mode=0100600 ouid=0 ogid=0 rdev=00:00 nametype=DELETE

type=PATH msg=audit(1419222323.628:510): item=0 name="/etc/" inode=131073 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT

type=CWD msg=audit(1419222323.628:510): cwd="/root"

type=SYSCALL msg=audit(1419222323.628:510): arch=40000003 syscall=10 success=yes exit=0 a0=bfc0ceec a1=0 a2=bfc0ceec a3=897764c items=2 ppid=2978 pid=2994 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="chfn" exe="/usr/bin/chfn" key=(null)

我们可以看到,在指定的时间, /etc/passwd ** 被 root 用户(uid =0, gid=0) 在/root 目录下修改。/etc/passwd 文件是使用 /usr/bin/chfn** 访问的。

键入 man chfn 可以查看有关 chfn 更多的信息。

下面我们看另外一个例子。

我们已经配置 auditd 去监控目录 /production/ 了。这是个新目录。所以我们用 ausearch 去查看日志的时候会发现什么都没有。

下一步,使用 root 账户的 ls 命令列出 /production/ 下的文件信息。再次使用 ausearch 后,将会显示一些信息。

time-> Mon Dec 22 14:18:28 2014 type=PATH msg=audit(1419232708.344:527): item=0 name="/production/" inode=797104 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL type=CWD msg=audit(1419232708.344:527): cwd="/root" type=SYSCALL msg=audit(1419232708.344:527): arch=40000003 syscall=295 success=yes exit=3 a0=ffffff9c a1=95761e8 a2=98800 a3=0 items=1 ppid=3033 pid=3444 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="ls" exe="/bin/ls" key=(null)

和上一个一样,可以得出 root 账户使用 ls 命令访问了/production/目录,ls 命令的文件目录是 /bin/ls

查看审计报告

一旦定义审计规则后,它会自动运行。过一段时间后,我们可以看看 auditd 是如何帮我们跟踪审计的。

Auditd 提供了另一个工具叫 aureport 。从名字上可以猜到, aureport 是使用系统审计日志生成简要报告的工具。

我们已经配置 auditd 去跟踪/etc/passwd 文件。auditd 参数设置后一段时间后,audit.log 文件就创建出来了。

生成审计报告,我们可以使用 aureport 工具。不带参数运行的话,可以生成审计活动的概述。

$ sudo aureport

如上,报告包含了大多数重要区域的信息。

上图可以看出有 3 次授权失败 。 使用 aureport,我们可以深入查看这些信息。

使用以下命令查看授权失败的详细信息:

$ sudo aureport -au

从上图可以看出,由两个用户在特定的时间授权失败。

如果我们想看所有账户修改相关的事件,可以使用-m 参数。

$ sudo aureport -m

Auditd 配置文件

我们已经添加如下规则:

  • $ sudo auditctl -w /etc/passwd -p rwxa
  • $ sudo auditctl -w /production/

现在,如果确信这些规则可以正常工作,我们可以将其添加到 /etc/audit/audit.rules 中使得规则永久有效。以下介绍如何将他们添加到/etc/audit/audit.rules 中去。

最后,别忘了重启 auditd 守护程序

# /etc/init.d/auditd restart

# service auditd restart

总结

Auditd 是 Linux 上的一个审计工具。你可以阅读 auidtd 文档获取更多使用 auditd 和工具的细节。例如,输入 man auditd 去看 auditd 的详细说明,或者键入 man ausearch 去看有关 ausearch 工具的详细说明。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

千紇

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

安静被遗忘

文章 0 评论 0

喔爱吃橙子

文章 0 评论 0

草莓味的萝莉

文章 0 评论 0

梦里兽

文章 0 评论 0

mb_83J3Cyxa

文章 0 评论 0

时间海

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文