抑制来自特定用户的审计事件

我正在试图追踪serverhosting客户的网站上的一个分手的原因。

auditd是一个很好的帮助,告诉我当恶意软件(该网站是一个混乱的东西,但不是我的,即使我想清除)的激活和拧紧的网站,还有一点什么目录看,但审计日志很难阅读,因为它还会logging每两分钟连接一次的监视脚本中的ssh活动以检查各种状态,以及另一个由cron触发的监视系统。

我已经在auditctl中做了几次尝试,告诉它停止报告这些:

 root@zelia:/var/log/audit# auditctl -l -a never,user -F auid=116 -a never,task -F auid=116 -a never,exit -S all -F auid=116 -a never,exit -S all -F uid=116 

(UID 116,用户'meminfo'是我想压制的那个)

但是,每隔几分钟我仍然得到以下内容:

 type=USER_ACCT msg=audit(1491386883.189:462708): pid=1502 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:accounting acct="meminfo" exe="/usr/sbin/sshd" hostname=prtg.systemec.nl addr=89.20.80.149 terminal=ssh res=success' type=CRED_ACQ msg=audit(1491386883.189:462709): pid=1502 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:setcred acct="meminfo" exe="/usr/sbin/sshd" hostname=monitor.company.internal addr=89.20.80.149 terminal=ssh res=success' type=LOGIN msg=audit(1491386883.189:462710): pid=1502 uid=0 old-auid=4294967295 auid=116 old-ses=4294967295 ses=368164 res=1 type=USER_ACCT msg=audit(1491386883.197:462711): pid=1504 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:accounting acct="meminfo" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' type=USER_START msg=audit(1491386883.197:462712): pid=1504 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:session_open acct="meminfo" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' type=SERVICE_START msg=audit(1491386883.213:462713): pid=1 uid=0 auid=4294967295 ses=4294967295 msg=' comm="user@116" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' type=SERVICE_STOP msg=audit(1491386883.365:462714): pid=1 uid=0 auid=4294967295 ses=4294967295 msg=' comm="user@116" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' 

因此,审计日志不断填满,我错过了重要的积压。

另一方面,虽然我不认为通过SSH发生中断事件,但是谁login到服务器的日志可能是有用的方便。

显然,我试图添加保留meminfo抑制的规则无法正常工作。 我究竟做错了什么?

增补程序由于某种原因,添加auditctl -a never,task之后的auditctl -a never,task会导致never,task规则首先被加载,并且所有的东西都被压制,包括我真正想看到的东西。

ADDENDUM#2正如在这个问题中所解释的,我试图压制的消息由PAM子系统默认生成,而不是由audit.rules的附加规则audit.rules ,所以这是一个额外的问题…

在你的日志文件中,这些行上的uid=0表示这些进程是由root启动的,而不是meminfo启动的。

auid=500

auid字段logging审核用户ID,即loginuid。 此ID在login时分配给用户,即使用户身份发生更改(例如,通过使用su - john命令切换用户帐户),每个进程也会inheritance此ID。

uid=500

uid字段logging启动分析过程的用户的用户标识。 可以使用以下命令将用户标识解释为用户名: ausearch -i --uid UID 。 在这种情况下, 500是用户shadowman的用户ID。

这可能是由于从root用户crontab运行程序引起的,或者如果进程调用一个必须首先作为root启动的服务(使用setuid )才能使用特权端口 <1024

也许你不想压制所有的auid=0活动,因为它会压制一些有意义的东西。

如果你的auditd可以通过进程名来过滤,例如exe= ,就像BEL#1135562那样的RHEL7 ,如果你也有PermitRootLogin no ,那么禁止由root启动的sshd应该是安全的。

 auditctl -a never,user -F auid=0 -F exe="/usr/sbin/sshd" -a never,task -F auid=0 -F exe="/usr/sbin/sshd" 

但是,在大多数情况下, -F仅限于msg=' '之外的字段,并且只有不允许正则expression式的运算符: -F [n=v | n!=v | n<v | n>v | n<=v | n>=v | n&v | n&=v] -F [n=v | n!=v | n<v | n>v | n<=v | n>=v | n&v | n&=v] -F [n=v | n!=v | n<v | n>v | n<=v | n>=v | n&v | n&=v]


一个选项是增加max_log_file或者num_logs来保留更多的历史logging,如果日志大小不是问题的话。 您不必直接读取日志格式 ,因为您有aureportausearch