Centos 6.5 auditd无法以服务或/e​​tc/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之类的东西,所以看看脚本需要什么path,无济于事。

最终运行的命令失败了

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

为什么添加bash使其工作? 寻找故障排除的想法。

基于Michaelsbuild议使用run_init,我可以从bash中获得一些有意义的debugging:

 # 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. 

我试图用上面的input来生成一个策略

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

去了selinux政策创build – 这是正确的吗? 或缺less任何东西?

 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 

还是一样的问题

    在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 /重新标记整个系统(这也修复了很多其他的潜在问题)。

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

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

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

    sudo chmod u + x / var / log / audit

    为我解决了这个问题

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