Як зареєструвати кожну команду, виконану користувачем?


32

Я хочу контролювати всю активність користувача на своєму сервері.

Навіть коли користувач виконує команду оболонки з якогось редактора, наприклад, vim, я хочу бачити їх у файлі журналу.

Я перевірив дію інструмента, але в ньому не вказано повних команд. (Будь ласка, виправте мене, якщо я пропустив деякі варіанти, які вже є).

Який інструмент Linux я повинен шукати, щоб вирішити цю проблему?


1
. man script (1)
адаптор


Приємна довідка 8gwifi.org/docs/linux-monitor-commands.jsp
anish

Відповіді:


32

Додайте цей рядок у ваш конфігурацію пам’яті, відповідальну за входи в систему (її система-авторизація на дистрибутивах, заснованих на redhat)

session    required     pam_tty_audit.so enable=*

Щоб дізнатися, що було зроблено, можна скористатися.

ausearch -ts <some_timestamp> -m tty -i

Це дає такий вихід:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

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

Редагувати: О, і ви можете використовувати aureport для створення списку, який може бути кориснішим.

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

Дякуємо за деталі. Я використовую Ubuntu 10.04 LTS Коли я перевіряю папку / lib / security / модуль відсутній, але для цього модуля є сторінка man. Я думаю, що я потрапив у цю помилку bugs.launchpad.net/ubuntu/+source/pam/+bug/588547 Чи є інший спосіб встановити цей модуль?
Супратик

Звіт про помилку передбачає виправлення та оновлення.
Матвій Іфе

@Mlfe Я скомпілював вихідний код PAM і скопіював файл .so в / lib / security / і він працював. Знову дякую.
Супратик

1
@CameronKerr: проблема з паролем виправлена: redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
Зауважте, варто згадати, що для роботи вище, auditdдемона потрібно активувати спочатку (це не було за замовчуванням у моїй установці CentOS 6.7). Щоб запустити демон, використовуйте: service auditd startта щоб зробити цю зміну стійкою (після перезавантаження), використовуйте chkconfig auditd on Джерело: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/… та access.redhat.com/documentation/en-US/ Red_Hat_Enterprise_Linux /…
jonny

8

Найкращим рішенням вашої проблеми буде вбудована система аудиту Linux . Використовуйте man 8 auditdабо перевірте цю сторінку для отримання додаткової інформації: http://linux.die.net/man/8/auditd .

Також ви можете перевірити цей підручник - хоча він трохи не виходить за рамки вашого питання, він показує, як працює система аудиту.


2

Ви можете використовувати snoopy .

Це проста бібліотека реєстрації команд, а не належне рішення аудиту (легко обійти). Розкриття: Я поточний супровідник снупи.


2

Менш відомий трюк, але легко найдивовижніший - це просто використовувати вбудовані можливості аудиту sudo. Судо поставляється з sudoreplayкомандою, яка спрощує відтворення сеансів просто. Це навіть ретрансляції vimсесій (як ви запропонували).

Ось як його використовувати в декількох простих кроках:

  1. Встановіть sudoshу вашу систему; це оболонка оболонки навколо sudoкоманди, яка робить користувача sudo(не root) і може використовуватися як оболонка входу в систему
  2. Увімкнути sudoведення журналу. Редагувати /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Додайте цю команду, щоб /etc/shellsдозволити логіни використовувати її: /usr/bin/sudosh

    Порада : щоб запобігти використанню інших оболонок для входу в систему, видаліть ці оболонки /etc/shells.

  4. Оновіть користувача foobarдля використання sudoshоболонки. chsh -s /usr/bin/sudosh foobar

Більш детальну інформацію дивіться на веб-сайті : https://github.com/cloudposse/sudosh/


1

ось магічне рішення: http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum встановити psacct (redhat)
  • sudo apt-get install acct

Ви відображаєте статистику щодо команд користувача / з'єднання тощо.

Список усіх команд, на які посилається даний користувач ...

Шукайте журнали обліку за назвою команди: $ lastcomm rm $ lastcomm passwd

тощо, для отримання додаткової інформації відвідайте вище посилання.


3
У запитанні було сказано: "acct це не перелік повних команд".
Путник
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.