Вопрос или проблема
Я использую CentOS 7 на хосте. Ранее при входе в систему через SSH отображался отчет о количестве неудачных попыток входа. Полный баннер выглядел примерно так:
Последний неудачный вход: Пт Май 24 03:58:45 EDT 2019 с x.x.x.x по ssh:notty
С момента последнего успешного входа было 121 неудачных попыток входа.
Последний вход: Чт Май 23 15:52:24 2019 с x.x.x.x
Затем я установил fail2ban, чтобы предотвратить эти попытки, и после этого строка, сообщающая о количестве неудачных входов, исчезла. Сначала я подумал, что, может быть, эти боты решили больше не пытаться входить в мою машину, поэтому сообщения больше нет. Но затем я осознал, что lastb
показывает много недавних попыток. Я попытался посмотреть на /var/log/secure
, но этого файла больше нет.
Насколько я понимаю, /etc/pam.d/postlogin
отвечает за отображение этого сообщения при входе. Вот содержание этого файла:
#%PAM-1.0
# Этот файл сгенерирован автоматически.
# Изменения пользователя будут уничтожены при следующем запуске authconfig.
session [success=1 default=ignore] pam_succeed_if.so service !~ gdm* service !~ su* quiet
session [default=1] pam_lastlog.so nowtmp showfailed
session optional pam_lastlog.so silent noupdate showfailed
Как мне узнать, что вызвало это изменение? И как мне вернуть это сообщение?
Моя Fedora имеет страницу справки для pam_tally2
, которая говорит, что она считает попытки доступа. Наряду с модулем, существует команда с тем же названием для просмотра текущих значений в /var/log/tallylog
, но я не вижу там никаких записей. Однако вы можете попробовать
sudo pam_tally2 -u myusername
Неудачные попытки входа можно найти в /var/log/secure
Ниже приведен пример
host-1-193 sshd[1644]: pam_succeed_if(sshd:auth): требование "uid >= 1000" не выполнено для пользователя "root"
Май 24 18:23:46 host-1-193 sshd[1644]: Неудачный пароль для root с 10.200.0.1 порт 29021 ssh2
Май 24 18:23:49 host-1-193 sshd[1644]: Принят пароль для root с 10.200.0.1 порт 29021 ssh2
Май 24 18:23:49 host-1-193 sshd[1644]: pa
Ответ или решение
Чтобы восстановить отображение информации о количестве неудачных попыток входа при успешном SSH-входе на CentOS 7, сначала необходимо убедиться, что у вас установлены все необходимые пакеты и модули в PAM (Pluggable Authentication Modules).
-
Проверка конфигурации PAM: Откройте файл
/etc/pam.d/postlogin
и убедитесь, что строки, отвечающие за отображение информации о неудачных попытках входа, прописаны правильно. Ваш файл уже выглядит корректно:#%PAM-1.0 session [success=1 default=ignore] pam_succeed_if.so service !~ gdm* service !~ su* quiet session [default=1] pam_lastlog.so nowtmp showfailed session optional pam_lastlog.so silent noupdate showfailed
Обратите внимание, что
showfailed
в строкахpam_lastlog.so
отвечает за вывод информации о неудачных попытках. -
Проверка наличия модуля PAM для подсчета неудачных попыток: Убедитесь, что установлен модуль
pam_faildelay
и он правильно настроен, если вы хотите дополнительно контролировать успешные и неуспешные входы. -
Проверка логов для Failed Attempts: Проверьте, доступен ли файл
/var/log/secure
, так как именно в этом файле, как правило, записываются все попытки входа и неудачные попытки. Если файла нет, убедитесь, что служба rsyslog запущена и правильно настроена, чтобы записывать логи аутентификации.Для проверки статуса rsyslog выполните:
systemctl status rsyslog
Если оно не запущено, выполните следующую команду:
sudo systemctl start rsyslog
-
Подсчет неудачных попыток: Чтобы получить текущее количество неудачных попыток входа с использованием
pam_tally2
, вы можете выполнить следующую команду:sudo pam_tally2 -u ваш_пользователь
Заметьте, что если вы не видите записи в
/var/log/tallylog
, вам нужно будет проверить конфигурацию PAM, чтобы убедиться в наличии модуля для учета неудачных попыток, обычно указанного какpam_tally2.so
. -
Проверка конфигурации
fail2ban
: Убедитесь, что вашfail2ban
правильно настроен и не блокирует законные попытки входа. Вы можете временно отключитьfail2ban
, чтобы проверить, не он ли причина отсутствия информации о неудачных попытках.Чтобы остановить fail2ban, выполните:
sudo systemctl stop fail2ban
-
Перезагрузка системы: После всех изменений перезагрузите систему или службу SSH, чтобы убедиться, что новые настройки применены.
Используя эти шаги, вы сможете восстановить вывод информации о количестве неудачных попыток входа при успешном SSH-входе на CentOS 7.