Как я могу отследить, кто такие SSH на моей машине с Linux?

23

Я использую Ubuntu 10.04. Есть ли способ, которым я могу получить ежедневный отчет о том, кто вошел в ящик, в какое время и даже - может быть, слишком много - отчет об используемых ими командах? Это окно с низким уровнем использования, и поэтому я думаю, что это был бы хороший способ увидеть, что происходит на нем.

В том же духе я слышал, что было невозможно отследить, когда что-то делается на коробке с помощью неинтерактивных оболочек, таких как rsync, или просто удаленно выполнять отдельные команды через ssh. Это правда, или есть способ регистрировать и отслеживать это также?

УХО
источник

Ответы:

21

Информация о том, кто вошел в систему, когда доступен /var/log/auth.log(или другие файлы журналов в других дистрибутивах). Существует несколько программ мониторинга журналов, которые могут извлекать информацию, которую вы настраиваете как соответствующую. В любой здравомыслящей системе каждая аутентификация пользователя регистрируется.

Чтобы регистрировать все вызовы команд (но не их аргументы), используйте учет процессов , предоставляемый acctпакетом Установить acct в Ubuntu. Если подсистема учета запущена и работает, lastcommотображается информация о завершенных процессах.

Жиль "ТАК - перестань быть злым"
источник
3
/var/log/secure.log - еще один распространенный файл журнала
Адриан Корниш,
9

Вы также можете использовать whoили, wчтобы увидеть, кто в данный момент вошел в систему, включая пользователей SSH.

Тим
источник
10
lastможет быть лучшим вариантом для того, что ищет ОП ...
jasonwryan
1
верно. «last» - это команда, которую вы хотите.
Sirex
1
Это НАМНОГО лучший ответ, чем выбранный.
PaulBGD
0

Обычно, когда кто-то входит в систему пользователя, то в / var / log / messages он печатается как:

sshd[18468]: Accepted keyboard-interactive/pam for root from 134.64.66.666 port 49867 ssh2

Так что просто смотри сообщения как:

grep -E "Accepted keyboard-interactive/pam for" /var/log/messages
RKum
источник
0

Вы также можете изменить оболочку bash, чтобы сделать rsylog.

По сути, вы настраиваете rsyslog на удаленном хосте для приема определенных соединений. Затем измените оболочку хоста, которую вы хотите отслеживать, скомпилировав свою версию, в которой включена следующая версия:

vi config-top.h
#define SYSLOG_HISTORY
#if defined (SYSLOG_HISTORY)
#  define SYSLOG_FACILITY LOG_USER
#  define SYSLOG_LEVEL LOG_INFO
#endif

После компиляции с включенным, вы можете заменить bash на эту версию ИЛИ войти в нее пользователей, перенаправив свои логины на нее.

Для получения дополнительной информации:

https://www.pacificsimplicity.ca/blog/remote-logging-using-syslog-and-logging-shell-commands-remotely

mcdoomington
источник
Хорошо. Я обновлю это.
Макдумингтон