Поиск последних успешных логинов и неудачных попыток сервера CentOS
Я ищу файл журнала или любую службу, чтобы сообщить о последних попытках входа в систему, которые потерпели неудачу из-за несоответствия имени пользователя и пароля. Существуют ли такие утилиты для CentOS? (рекомендуется использовать встроенный модуль)
Мой второй вопрос, и в целом, мне нужен файл журнала попыток проникновения на мой сервер. В идеале этот журнал должен содержать все попытки, включая логины, действия httpd и другие обычные открытые порты.
3 ответа
Вопрос здесь оффтопический, но очень короткий ответ: возможно, вам стоит просто проверить /var /log /secure (например, grep для «failed»).
В Linux команда last
показывает успешные попытки входа в систему и отображает информацию о сеансе (точки, источник, дата и длина).
Команда lastb
записывает все неудачные попытки входа в систему. Оба имеют одну и ту же страницу man
, но разница в том, что last
читает двоичный файл /var/log/wtmp
и lastb
по умолчанию читает файл /var/log/btmp
.
Диапазон этих файлов зависит от графика вращения журнала, но он должен охватывать несколько недель. Большинство дистрибутивов будут ежемесячно вращать /var/log/wtmp
, поэтому вы можете прочитать предыдущую запись, обычно указанную как /var/log/wtmp.1
, указав файл с параметром -f
... last -f /var/log/wtmp.1
Это старый поток, но у меня есть аналогичная задача, подобная этой, поэтому в моем случае это запись в журнале
Nov 15 17:14:47 megatron sshd[4768]: Failed password for git from 192.168.122.1 port 49227 ssh2
Итак, мы можем сделать это так, если мы уверены, что пользователь статичен
#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for git"
grep -i "$MESSAGE" "$LOG
В случае, если мы знаем на основе пользователя
#!/bin/bash
LOG=/var/log/secure
if [ -n "$1" ]
then
NEWUSER="$1"
else
NEWUSER="root"
fi
MESSAGE="Failed password for $NEWUSER"
grep -i "$MESSAGE" "$LOG"
Итак, скрипт должен выполняться как
[[email protected] bash1]# ./failedlogin.sh git
ИЛИ более простой подход
#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"