Як зробити так, щоб сек ігнорував часову позначку належним чином


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='

Будь-які ідеї? Я можу просто нерозуміти сек. Я вперше працюю з цим! Будь-яка допомога буде дуже вдячна. Спасибі!

Відповіді:


11

Ну, після майже щоденного натягування волосся я нарешті розумію а) як це зробити і б) помилкове уявлення, про яке я маю приблизно сек.

Читаючи сторінку sec man, вона описує desc = як фактично відображає збіг. Отже, на мій погляд, це означало, що він повинен показувати все, що відповідає шаблону. Що ж, так, це правда, у цьому випадку відповідність у цій схемі є; ім'я хоста, пристрасть та користувач.

Тож коли я роблю desc = Невдача входу: $ 0, я відключаю весь рядок. Це погано.

Тож замість цього я змінив його, щоб відключити ім'я користувача та ім'я хоста, що призвело до того, що він дотримувався правила вікна = 300, оскільки часова марка (весь рядок) не змінювалася; aka, наступний пробіг;

/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
Приємна робота над цим.
Магеллан

4
Почуйте, ось. +1 від мене як за відмінне, добре написане, добре досліджене та чітке запитання, так і за повернення та розміщення детальної відповіді після того, як вам потрібна епіфанія! Дякую.
MadHatter
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.