Пошук останніх успішних входів та невдалих спроб на сервері CentOS


29

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

Друге моє запитання, і загалом, мені потрібен файл журналу спроб проникнення на мій сервер. В ідеалі цей журнал повинен містити всі спроби, включаючи вхід, активність httpd та інші звичайні відкриті порти.


2
відповідь на друге запитання: погляньте на OSSEC .
кванта

1
Цю нитку переміщують із Stackoverflow після того, як я задав питання на сервісі Defaultfault. Ось теми, які обговорюють друге питання.
лашгар

Відповіді:


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


17
+1 дляlastb
lashgar

3
Це має бути обрана відповідь
кодер

@acoder, зроблено: thumb:
lashgar

14

Питання тут оффтопічне, але дуже коротка відповідь: можливо, вам слід просто перевірити / var / log / secure (наприклад, grep для "не вдалося").


Це насправді відповідь на моє перше запитання. Я запитаю другий у ServerFault. Спасибі.
лашгар

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"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.