Я ищу файл журнала или любую службу, чтобы сообщить о последних неудачных попытках входа в систему из-за несоответствия имени пользователя и пароля. Доступны ли такие утилиты для CentOS? (предпочтительно встроенный)
Мой второй вопрос, и в более общем плане, мне нужен файл журнала попыток проникновения на мой сервер. В идеале этот журнал должен содержать все попытки, включая вход в систему, действия httpd и другие стандартные открытые порты.
В 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
Вопрос здесь оффтопный, но ответ очень короткий: может, стоит просто проверить / var / log / secure (например, grep на "failed").
Это старый поток, но у меня была аналогичная задача, поэтому в моем случае это запись в журнале
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"
Итак, скрипт должен выполняться как
[root@megatron bash1]# ./failedlogin.sh git
ИЛИ более простой подход
#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"