我如何使sec忽略正确的时间戳

我有这样一个规则,

在/etc/sec/rules.d我有;

type=SingleWithSuppress ptype=regexp pattern=(\S+) sshd\[\d+\]: PAM \d+ more authentication failures\; logname=.* uid=.* euid=.* tty=ssh ruser=.* rhost=(.*) user=(.*) desc=Login Failure: $0 action=pipe '%s ' /bin/mail -s "login failure $2 to $3@$1" [email protected] window=300 

所以如果这是通过系统日志;

 Nov 21 11:24:10 servername.server.com sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost= user=kloggins 

它应该匹配这个(这是根据我的正则expression式编辑器)根据模式;

 servername.server.com sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost= user=kloggins 

我们遇到了垃圾邮件问题,因为时间戳正在改变。 所以我重写了模式以匹配主机名后的所有内容。

但是,这似乎并没有工作,每次用户“身份validation失败”,我仍然收到一封电子邮件。

我一直在使用以下来testing;

 logger -p syslog.err 'sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost= user=' 

有任何想法吗? 我可能只是误解了一下。 这是我第一次使用它! 任何帮助将不胜感激。 谢谢!

    那么,经过几乎整整一天的拉扯之后,我终于明白了a)如何做到这一点,以及b)我对于sec的误解。

    在阅读sec man页面,它描述了desc =基本显示匹配。 所以在我看来,这意味着它应该显示任何匹配的模式。 那么,是的,这是真的,在这种情况下,这种模式的匹配是; 主机名,rhost和用户。

    所以当我做desc =login失败:$ 0时,我正在closures整条线。 那很糟。

    所以相反,我改变它的关键字的用户名和主机名,然后导致它遵守窗口= 300规则,因为时间戳(整行)没有改变; 又名,下面的破败;

    /etc/sec/rules.d/ssh.sec

     type=SingleWithSuppress ptype=regexp pattern=(\S+) sshd\[\d+\]: PAM \d+ more authentication failures\; logname=.* uid=.* euid=.* tty=ssh ruser=.* rhost=(.*) user=(.*) desc=Login Failure: $3@$1 action=pipe '%s $0' /bin/mail -s "Login Failure: $3@$1" [email protected] window=300 

    错误行

     Nov 21 01:58:10 test.test.com sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=test.test.com user=kloggins 

    它会注意到用户[email protected],除非它在300秒后再次发生,否则将不会报告,因为它closures了[email protected]

    我已经testing过几次了,这是一个'werkin'。