Поиск последних успешных входов в систему и неудачных попыток к серверу CentOS

29

Я ищу файл журнала или любую службу, чтобы сообщить о последних попытках входа в систему, которые не удалось из-за несоответствия имени пользователя и пароля. Есть ли такие утилиты для CentOS? (встроенный является предпочтительным)

Мой второй вопрос, и в целом, мне нужен файл журнала попыток проникновения на мой сервер. В идеале этот журнал должен содержать все попытки, включая входы в систему, действия httpd и другие обычные открытые порты.

lashgar
источник
2
ответ на второй вопрос: взгляните на OSSEC .
Кванты
1
Этот поток перемещен из Stackoverflow после того, как я задал вопрос в Serverfault. Вот темы, обсуждающие второй вопрос.
lashgar

Ответы:

61

В 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

ewwhite
источник
17
+1 дляlastb
lashgar
3
Это должен быть выбранный ответ
кодер
@acoder, готово: thumb:
lashgar
14

Вопрос здесь оффтопный, но очень короткий ответ: возможно, вам следует просто проверить / var / log / secure (например, grep для «fail»).

flolo
источник
Это на самом деле ответ на мой первый вопрос. Я спрошу второй в ServerFault. Спасибо.
lashgar
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"

Так что скрипт должен исполняться как

[root@megatron bash1]# ./failedlogin.sh git

ИЛИ более легкий подход

#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"
Прашант Лахера
источник