如何使秒正确忽略时间戳


13

我有一个这样设置的规则;

在/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" team@team.com
window=300

因此,如果这是通过syslog来的;

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

它应该根据模式与之匹配(根据我的正则表达式编辑器来做到)。

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

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

但是,这似乎不起作用,并且每次用户“身份验证失败”时,我仍然会收到一封电子邮件。

我一直在使用以下内容进行测试;

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

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

Answers:


11

好吧,经过将近一天的拔头发,我终于明白了a)如何做到和b)我大约有几秒钟的误解。

在阅读sec手册页时,它描述desc =本质上表示匹配。所以在我看来,这意味着它应该显示出与模式匹配的任何内容。好吧,是的,这是对的,在这种情况下,该模式中的匹配项是 主机名,rhost和用户。

因此,当我执行desc = Login Failure:$ 0时,我要取消整行。那很糟。

因此,我改为将其更改为取消用户名和主机名,这使它遵循window = 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@email.com
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

它将注意到用户kloggins@test.test.com,除非在300秒后再次发生,否则它不会报告该消息,因为它锁定了kloggins@test.test.com。

我已经对其进行了几次测试,这是一个'werkin。


1
在这方面做得很好。
麦哲伦2014年

4
听到这里 从我这里+1既是一个出色的,写得很好,经过研究和确定范围的问题,也可以在您拥有必要的顿悟后再回来并发布详细答案!谢谢。
MadHatter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.