У меня есть такое правило;
В /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
Итак, если это произошло через системный журнал;
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='
Любые идеи? Возможно, я просто недопонимаю сек. Я впервые с этим работаю! Любая помощь будет принята с благодарностью. Спасибо!
Что ж, после почти дня выдергивания волос я наконец понял а) как это сделать и б) у меня есть заблуждение насчет сек.
При чтении страницы руководства sec описывается, что desc = по существу показывает совпадение. На мой взгляд, это означало, что он должен отображать все, что соответствует образцу. Ну да, это правда, в этом случае совпадение в этом шаблоне - это; имя хоста, хост и пользователь.
Поэтому, когда я делаю desc = Ошибка входа: $ 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.
Я уже несколько раз тестировал, это веркин.