
Я только что зашел на свой небольшой домашний сервер и увидел это сообщение:
Last failed login: Sun Jan 14 17:08:42 CET 2024 from 192.168.1.111 on ssh:notty
There were 4 failed login attempts since the last successful login.
Я переключился на пользователя root и запустил
root@homeserver ~]# egrep "Failed|Failure" /var/log/secure
Jan 14 17:08:42 homeserver sshd[4906]: Failed password for invalid user podman from 192.168.1.111 port 59183 ssh2
Почему в первом запросе сообщается о 4 неудачных попытках входа, тогда как команда egrep возвращает только 1 запись из secure
журнала? Мне нужно grep на чем-то другом?
решение1
Из ваших строк логов после успешного входа и того факта, что вы проверили /var/log/secure
, я предполагаю, что вы используете Redhat/CentOS на своей машине. На самом деле, первое приглашение, которое вы упомянули в своем вопросе, вероятно, может быть выводом pam_lastlog
, чья страница руководства гласит:
PAM_LASTLOG(8)
... (omitted for brevity)
OPTIONS
... (omitted for brevity)
showfailed
Display number of failed login attempts and the date of the last failed attempt from btmp. The date is not displayed when nodate is specified.
... (omitted for brevity)
Обратите внимание, что на странице руководства ясно указано, что номер извлекается из btmp
, то есть /var/log/btmp
, другого файла журнала для записи неудачных входов. К сожалению, это двоичный файл, и вы не можете проверить его с помощью команд cat
и grep
. В качестве обходного пути вы можете использовать last -f /var/log/btmp
команду , чтобы проверить, что записано в файле, согласноэтот ответ.
Кстати, вам может быть полезно проверить страницу руководства pam_lastlog
иэтот вопросдля дальнейшего чтения.