Я пытаюсь отправить электронное письмо мне и пользователю, что кто-то пытался войти в систему по ssh и не смог
У меня мало сомнений, связанных с этим подходом, например, из-за определенной «уязвимости», которая может быть вызвана этим - RE <F-USER>\S*</F-USER>
будет соответствовать чему-либо до первого пробела, поэтому, например, если совпало «имя пользователя», будет кто-то@example.com, тест
ваша почта также будет отправлена на кто-то@example.com
, который может быть не пользователем вашего домена.
Я также мог бы представить другие сценарии, поскольку вы пытаетесь использовать сторонний ввод (из журнала) в почтовом действии, поэтому лучше убедитесь, что на это не влияет какая-либо возможность внедрения (также обратите внимание GHSA-m985-3f3v-cwmm Например).
Регулярное выражение, попадающее в SSH, - это...
failregex также должен содержать <F-USER>...</F-USER>
чтобы зафиксировать значение, которое будет сохранено как имя пользователя, и оно должно соответствовать чему-то.
Здесь пример того, как это выглядит в текущей версии (обратите внимание, что это не сбой RE из-за <F-NOFAIL>
тег, это просто помощник для поиска IP для сообщений без IP, см. вопросы/3189#issuecomment-999571654 для подробностей).
Тем самым <F-ALT_USER>
является альтернативным именем пользователя и будет хранить его в F-ПОЛЬЗОВАТЕЛЬ
захваченная группа в билете, если часть <F-USER>...</F-USER>
будет соответствовать пустому значению.
Возможно (как в issue/3189 выше) у вас также неправильный бэкенд, поэтому переключитесь на системад
поможет вам сопоставить его с помощью другого sshd-regex.
Что касается вашего регулярного выражения, его можно изменить, как здесь (обратно перенесено из текущего sshd-фильтра):
- ^pam_unix\(sshd:auth\):\s+ошибка аутентификации;\s*logname=\S*\s*uid=\d*\s*euid=\d*\s*tty=\S*\ s*ruser=<F-USER>\S*</F-USER>\s*rhost=<HOST>\s.*%(__suff)s$
+ ^pam_unix\(sshd:auth\):\s+ошибка аутентификации;(?:\s+(?:(?:logname|e?uid|tty)=\S*)){0,4}\s+ ruser=<F-ALT_USER>\S*</F-ALT_USER>\s+rhost=<HOST>(?:\s+user=<F-USER>\S*</F-USER>)?%( __suff)s$
Но это скорее РЭ pam-универсальный
фильтр/тюрьма, как уже было сказано в выпуски/3189, так что не совсем правильно использовать это для sshd jail (обычно вы увидите разные сообщения в журнале или auth.log).
В любом случае для более глубокого изучения нужен пример сообщения (а лучше выдержка из лога со всеми сообщениями sshd-сессии, вызвавшими бан).