Linux安全审计功能的实现—audit命令

1、简介

我们知道在Linux系统中有大量的日志文件可以用于查看应用程序的各种信息,但是对于用户的操作行为(如某用户修改删除了某文件)却无法通过这些日志文件来查看,如果我们想实现监管企业员工的操作行为就需要开启审计功能,也就是audit。

2、安装及查看运行状态

 [root@RedHat_test ~]# yum install audit
 [root@RedHat_test ~]# service auditd status
 Redirecting to /bin/systemctl status auditd.service
 ● auditd.service -Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2020-02-1016:55:56 CST; 29s ago
     Docs: man:auditd(8)
           https://github.com/linux-audit/audit-documentation
 Process: 30174ExecStartPost=/sbin/augenrules --load(code=exited, status=0/SUCCESS)
 Process: 30169ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
 Main PID: 30170(auditd)
   CGroup: /system.slice/auditd.service
           └─30170 /sbin/auditd
           
 # 查看auditd的服务状态的另一种方式
 [root@RedHat_test ~]# auditctl -s
 enabled 1
 failure 1
 pid 30170
 rate_limit 0
 backlog_limit 8192
 lost 0
 backlog 0
 loginuid_immutable 0unlocked
 ----------------------------------------------------------------------------------------
 enabled为1表示开启,0表示关闭

3、auditd的相关的工具

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

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

 [root@RedHat_test ~]# auditctl -l
 No rules

5、Auditd监控文件和目录的更改

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

6、Auditctl对目录进行审计

 [root@RedHat_test ~]# mkdir yunweimao
 [root@RedHat_test ~]# auditctl -w /yunweimao/

7、查看已配置的规则

 [root@RedHat_test ~]# auditctl -l
 -w/etc/passwd -prwxa
 -w/yunweimao -prwxa

8、使用 ausearch 工具查看审计日志

1.用-f 设定ausearch 调出 /etc/passwd文件的审计内容
 [root@RedHat_test ~]# ausearch -f /etc/passwd
 ----
 time->Mon Feb 1012:28:01 2020
 type=PROCTITLE msg=audit(1581308881.667:110795): proctitle=2F7573722F7362696E2F63726F6E64002D6E
 type=PATH msg=audit(1581308881.667:110795): item=0name="/etc/passwd"inode=134782786dev=fd:00 mode=0100644ouid=0ogid=0rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=NORMAL cap_fp=0000000000000000cap_fi=0000000000000000cap_fe=0cap_fver=0
 type=CWD msg=audit(1581308881.667:110795):  cwd="/"
 type=SYSCALL msg=audit(1581308881.667:110795): arch=c000003e syscall=2success=yesexit=3a0=7f817d9f94d2 a1=80000a2=1b6 a3=24items=1ppid=2240pid=26958auid=4294967295uid=0gid=0euid=0suid=0fsuid=0egid=0sgid=0fsgid=0tty=(none) ses=4294967295comm="crond"exe="/usr/sbin/crond"subj=system_u:system_r:crond_t:s0-s0:c0.c1023 key=(null)
 ----
 ----------------------------------------------------------------------------------------
 time : 审计时间。
 name : 审计对象
 cwd : 当前路径
 syscall : 相关的系统调用
 auid : 审计用户ID
 uid 和 gid : 访问文件的用户ID和用户组ID
 comm : 用户访问文件的命令
 exe : 上面命令的可执行文件路径
2.修改监控文件添加一个用户,看看auditd如何记录文件 /etc/passwd的改动的
 [root@RedHat_test ~]# useradd ywm
 [root@RedHat_test ~]# ausearch -f /etc/passwd
 ----
 time->Mon Feb 1012:38:43 2020
 type=PROCTITLE msg=audit(1581309523.266:111048): proctitle=757365726164640079776D
 type=PATH msg=audit(1581309523.266:111048): item=0name="/etc/passwd"inode=134782786dev=fd:00 mode=0100644ouid=0ogid=0rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=NORMAL cap_fp=0000000000000000cap_fi=0000000000000000cap_fe=0cap_fver=0
 type=CWD msg=audit(1581309523.266:111048):  cwd="/root"
 type=SYSCALL msg=audit(1581309523.266:111048): arch=c000003e syscall=2success=yesexit=4a0=7fc97e4cd4d2 a1=80000a2=1b6 a3=24items=1ppid=25306pid=27066auid=0uid=0gid=0euid=0suid=0fsuid=0egid=0sgid=0fsgid=0tty=pts0 ses=11383comm="useradd"exe="/usr/sbin/useradd"subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
 ----------------------------------------------------------------------------------------
 在指定的时间,/etc/passwd 被root用户(uid=0, gid=0)在/root目录下修改。/etc/passwd 文件是使用/usr/sbin/useradd 访问的

9、监控目录是否有变动

1.ausearch去查看日志的时候会发现什么都没有
 [root@RedHat_test /]# mkdir test
 [root@RedHat_test /]# auditctl -w /test/
 [root@RedHat_test /]# ausearch -f /test/
 <no matches>
2.使用root账户修改目录权限
 [root@RedHat_test /]# chmod -R 777 /test/
 [root@RedHat_test /]# ausearch -f /test/
 ----
 time->Mon Feb 1016:34:51 2020
 type=PROCTITLE msg=audit(1581323691.872:117185): proctitle=63686D6F64002D5200373737002F746573742F
 type=PATH msg=audit(1581323691.872:117185): item=0name="/test/"inode=268886168dev=fd:00 mode=040777ouid=0ogid=0rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=NORMAL cap_fp=0000000000000000cap_fi=0000000000000000cap_fe=0cap_fver=0
 type=CWD msg=audit(1581323691.872:117185):  cwd="/"
 type=SYSCALL msg=audit(1581323691.872:117185): arch=c000003e syscall=257success=yesexit=3a0=ffffffffffffff9c a1=1020100a2=10900a3=0items=1ppid=29678pid=29913auid=0uid=0gid=0euid=0suid=0fsuid=0egid=0sgid=0fsgid=0tty=pts0 ses=11716comm="chmod"exe="/usr/bin/chmod"subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
 ----

10、查看审计报告

aureport 是使用系统审计日志生成简要报告的工具。我们已经配置auditd去跟踪/etc/passwd文件。auditd参数设置后一段时间后,audit.log 文件就创建出来了。生成审计报告,我们可以使用aureport工具。不带参数运行的话,可以生成审计活动的概述。

 [root@RedHat_test ~]# aureport 
 
 Summary Report
 ======================
 Range of time inlogs: 1970年01月01日 08:00:00.000 -2020年02月10日 16:40:10.014
 Selected time forreport: 1970年01月01日 08:00:00 -2020年02月10日 16:40:10.014
 Number of changes inconfiguration: 10
 Number of changes to accounts, groups, or roles: 6
 Number of logins: 3779
 Number of failed logins: 0
 Number of authentications: 978
 Number of failed authentications: 486
 Number of users: 2
 Number of terminals: 12
 Number of host names: 6
 Number of executables: 18
 Number of commands: 18
 Number of files: 5
 Number of AVC's: 0
 Number of MAC events: 490
 Number of failed syscalls: 0
 Number of anomaly events: 0
 Number of responses to anomaly events: 0
 Number of crypto events: 16226
 Number of integrity events: 0
 Number of virt events: 0
 Number of keys: 0
 Number of process IDs: 16294
 Number of events: 134330
 ----------------------------------------------------------------------------------------
 看出有 486次授权失败。使用aureport,我们可以深入查看这些信息

11、查看授权失败的详细信息

 [root@RedHat_test ~]# aureport -au
 
 Authentication Report
 ============================================
 # date time acct host term exe success event
 ============================================
 1. 2020年01月09日 19:04:38 root 10.101.0.194 ssh/usr/sbin/sshd no 550
 2. 2020年01月09日 19:04:38 root 10.101.0.194 ssh/usr/sbin/sshd yes551
 3. 2020年01月09日 19:04:38 root 10.101.0.194 ssh/usr/sbin/sshd yes554
 4. 2020年01月09日 21:05:17 root 10.101.0.194 ssh/usr/sbin/sshd no 816
 5. 2020年01月09日 21:05:17 root 10.101.0.194 ssh/usr/sbin/sshd yes817
 6. 2020年01月09日 21:05:17 root 10.101.0.194 ssh/usr/sbin/sshd yes820
 7. 2020年01月09日 22:04:57 root 10.101.0.194 ssh/usr/sbin/sshd no 991

12、查看所有账户与修改相关的事件

 [root@RedHat_test ~]# aureport -m
 
 Account Modifications Report
 =================================================
 # date time auid addr term exe acct success event
 =================================================
 1. 2020年02月10日 11:47:18 0? ? /usr/sbin/groupadd ? yes110357
 2. 2020年02月10日 11:47:18 0? ? /usr/sbin/groupadd ? yes110358
 3. 2020年02月10日 11:47:18 0? ? /usr/sbin/useradd ? yes110359
 4. 2020年02月10日 12:38:43 0RedHat_test pts/0 /usr/sbin/useradd ywm yes111051
 5. 2020年02月10日 12:38:43 0RedHat_test pts/0 /usr/sbin/useradd ? yes111053
 6. 2020年02月10日 12:38:43 0RedHat_test pts/0 /usr/sbin/useradd ? yes111056

13、清空定义的规则

 [root@RedHat_test ~]# auditctl -D
 No rules
 [root@RedHat_test ~]# auditctl -l
 No rules

如果文章有任何错误欢迎不吝赐教,其次大家有任何关于运维的疑难杂问,也欢迎和大家一起交流讨论。关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。群主还经营一家猫小铺饰品店,喜欢的小伙伴欢迎????前来下单。

扫描二维码

获取更多精彩

运维猫公众号

有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:

扫描二维码

添加私人微信

运维猫博主

扫码加微信

最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源,知识星球主要致力于即将入坑或者已经入坑的运维行业的小伙伴。

点击阅读原文  查看更多精彩内容!!!

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux安全审计和数据保护是Linux系统中非常重要的一部分,以下是一些相关的方法和步骤: 1. SELinuxLinux系统中的一个强制访问控制(MAC)系统,它可以限制进程只能访问它被授权的资源。可以通过以下命令来检查SELinux是否开启: ```shell sestatus ``` 如果SELinux处于enforcing模式,则表示它正在强制执行安全策略。如果SELinux处于permissive模式,则表示它只记录违规行为而不强制执行安全策略。如果SELinux处于disabled模式,则表示它已被完全禁用。 2. 可以使用Linux Audit框架来记录系统上发生的安全事件。可以使用以下命令来检查Linux Audit是否已安装: ```shell rpm -q audit ``` 如果未安装,则可以使用以下命令安装: ```shell yum install audit ``` 安装完成后,可以使用以下命令来启用Linux Audit: ```shell systemctl enable auditd.service systemctl start auditd.service ``` 然后,可以使用以下命令来查看Linux Audit日志: ```shell ausearch -m USER_AUTH ``` 这将显示所有与用户身份验证相关的事件。 3. 可以使用Linux系统中的加密文件系统来保护敏感数据。可以使用以下命令来创建一个加密文件系统: ```shell cryptsetup luksFormat /dev/sdb1 cryptsetup luksOpen /dev/sdb1 my_encrypted_fs mkfs.ext4 /dev/mapper/my_encrypted_fs mount /dev/mapper/my_encrypted_fs /mnt/my_encrypted_fs ``` 这将创建一个名为my_encrypted_fs的加密文件系统,并将其挂载到/mnt/my_encrypted_fs目录中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值