Centos 6.5 auditd 无法通过服务或 /etc/init.d/audit start 启动

Centos 6.5 auditd 无法通过服务或 /etc/init.d/audit start 启动

失败:

# service auditd start
Starting auditd:                                           [FAILED]

失败:

# /etc/init.d/auditd start
Starting auditd:                                           [FAILED]

令人沮丧的是 - 有效:

# bash /etc/init.d/auditd start
Starting auditd:                                           [  OK  ]

我在 bash /etc/init.d/auditd 中的各个位置添加了类似 echo 1 echo 2 的内容,因此查看脚本采用的路径,但无济于事。

最终运行并失败的命令是

env -i PATH=/sbin:/usr/sbin:/bin:/usr/bin TERM=xterm /etc/init.d/auditd start

为什么添加 bash 就能让它工作?正在寻找故障排除思路。

根据 Michaels 使用 run_init 的建议,我可以从 bash 中获得一些有意义的调试:

# run_init bash -x /etc/init.d/auditd start
[...]
+ /bin/bash -c 'ulimit -S -c 0 >/dev/null 2>&1 ; auditd '
+ '[' 6 -eq 0 ']'
+ failure 'auditd startup'

在 /var/log/messages 中我有

Dec  8 14:54:06 aws-sonar-01 kernel: type=1100 audit(1418050446.762:250): user pid=7196 uid=0 auid=500 ses=6 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="user" exe="/usr/sbin/run_init" hostname=? addr=? terminal=pts/0 res=success'
Dec  8 14:54:06 aws-sonar-01 kernel: type=1101 audit(1418050446.777:251): user pid=7196 uid=0 auid=500 ses=6 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:accounting acct="user" exe="/usr/sbin/run_init" hostname=? addr=? terminal=pts/0 res=success'
Dec  8 14:54:06 aws-sonar-01 kernel: type=1400 audit(1418050446.795:252): avc:  denied  { read } for  pid=7200 comm="auditd" name="audit" dev=xvda1 ino=393285 scontext=system_u:system_r:auditd_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=lnk_file
Dec  8 14:54:06 aws-sonar-01 kernel: type=1300 audit(1418050446.795:252): arch=c000003e syscall=2 success=no exit=-13 a0=7fa0660a42a0 a1=90800 a2=4000 a3=19 items=0 ppid=7196 pid=7200 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=6 comm="auditd" exe="/sbin/auditd" subj=system_u:system_r:auditd_t:s0 key=(null)
Dec  8 14:54:06 aws-sonar-01 auditd: Could not open dir /var/log/audit (Permission denied)
Dec  8 14:54:06 aws-sonar-01 auditd: The audit daemon is exiting.

我尝试使用以上内容作为输入来生成策略

cat messages_above | grep awc | audit2allow -M audit
semodule -i audit.pp

尝试创建 selinux 策略 - 是否正确?或者遗漏了什么?

semanage permissive -a auditd_t
service auditd start
tail -n 20 messages  |grep auditd | audit2allow -M auditd
semodule -i auditd.pp
semanage permissive -d auditd_t

还是同样的问题

答案1

在 EL(7 之前的版本)上,在启用 SELinux 的系统上启动服务,以run_init确保 SELinux 上下文和域转换正确。

run_init service auditd start

或者只是允许它们在启动时启动,这是首选。


您的日志条目表明/var/log/audit存在错误的安全上下文。要解决此问题:

  1. 更新您的系统。有新的 SELinux 策略包,其中包含许多修复程序,以及您落后的其他更新。
  2. 运行restorecon -r -v /var/log/audit以修复安全上下文,或者更好的是,restorecon -r -v /重新标记整个系统(这也可以修复许多其他潜在问题)。

答案2

  • 无效选项/etc/init.d/auditd.conf将导致失败
  • 键入ausearch -m DEAMON_END以获取哪一行有错误

答案3

检查 /var/log/audit 目录的权限。在某些发行版中,它们看起来如下:

0 drw-------.  2 root root     29 Apr 21 13:19 audit

注意,该目录不可执行!一个简单的

sudo chmod u+x /var/log/audit

为我解决了这个问题

相关内容