Реєстрація активності «персони» в Linux


11

Тож я прочитав багато публікацій, пов’язаних із цим, і щойно вийшов більш розгубленим, ніж раніше. Існують рекомендації щодо різних інструментів, включаючи ttyrec, snoopy, acct, rooth, sudosh, ttyrpld, аудит Unix та багато іншого.

У моєму випадку я хочу мати можливість записувати всі команди, виконані в системі (наприклад, історія із включеними часовими позначками), але я також хочу знати, хто що робив? Однак ми всі входимо через ssh до того ж невеликого підмножини облікових записів користувачів (залежно від того, що робимо). Як я можу отримати журнал команд, що включає інформацію "хто" дасть мені (щодо з'єднання), щоб я міг прослідкувати дії до конкретної людини як позиції просто загального "користувача"?


Снупі повинен це зробити, і, мабуть, багато інших альтернатив.
3моло

2
Системні виклики, судо, історія оболонки, зміни файлової системи? Не всі користувацькі процеси обов'язково запускаються з оболонок входу.

Відповіді:


9

auditdПакет призначений для цього, ви можете використовувати PAM привласнити кожному Ввійти ідентифікатор сеансу , так що ви можете відслідковувати активність на рахунок назад до первісного входу в систему (а потім перевірте журнал реєстрації , щоб визначити , де ця людина ввійшла в систему с), а також використання ausearchкоманда , щоб знайти події , які ви хочете отримати . ви можете прочитати досить повне керівництво тут , хоча деякі дрібні деталі повинні бути змінені , щоб відповідати вашому розподілу. Redhat має сайт з FAQ і деякими іншими документами тут .

Оскільки це не покладається на спробу ввійти команди, введені в оболонки, або записати історію команд користувачів, він повинен записувати такі речі, як відкриття vi (що, можливо, можна зробити через X або в screen), написання сценарію (можливо, один символ у час з командами vi / cut для вставки та декількома запусками :.!/usr/games/fortuneдля отримання деяких вихідних даних, які ви, можливо, не зможете ввійти), після чого виконайте :%!/bin/bashкоманду.


На це виглядає найперспективніша відповідь ... Аудит дозволяє послідовно відстежувати дії користувача від входу в систему прямо через вихід, незалежно від того, які саме особи цей користувач може прийняти, використовуючи ідентифікатори аудиту, які створюються під час входу та передаються в будь-який дочірній процес оригінальний процес входу. Трохи більше читання з мого боку зараз, щоб розібратися, як реально це реалізувати. Дякуємо, що звузили вибір!
Ашимема

Вибачення за це зайняло так багато часу, щоб позначити цю відповідь прийнятою. Я намагався це випробувати! Працює мрія .. Ура, хлопці!
Ашимема

4

У вашому розпорядженні вже є різноманітні інструменти, які на ваше запитання (і ці відповіді) натякають на зразок історії, snoopy, auditd, журналів sudo тощо тощо, але якщо у вас є "підмножина облікових записів", якими користуються люди, є ніяк на сервері не сказати, хто що робив. Єдиний спосіб конкретно сказати, хто це робив, це якщо користувачі мають власні комп’ютери, які вони спеціально використовують, і використовують кейлоггери, щоб розповісти, що вони фізично набирали на цій клавіатурі.

Щоразу, коли ви ділитесь обліковими записами, ви не можете сказати, що відбувається насправді, тому що вам знадобиться додаткове підтвердження того, хто використовував ваш кореневий або боб-акаунт або що ви робили ваші люди. Якщо ви намагаєтесь розслідувати, що сталося в конкретному випадку, можливо, вам доведеться переглянути політику та процедури доступу, процедури відновлення, а також оцінити своїх працівників та / або взяти участь у перепідготовці, якщо це необхідно (або їх надійності з чутливими обліковими записами). ніж безпосередньо зосереджуватись на тому, щоб шукати того, хто щось зробив, оскільки це може забирати більше ресурсів, ніж ви готові отримати, знайти людину, яка це зробила.

В іншому випадку ви можете вивчити методи судових розслідувань для відстеження того, що трапилось (зображення диска, відстеження журналу тощо). Якщо ви не розслідуєте інцидент, перегляньте свою політику та застосуйте кращу стеження та перевірку облікових записів (тільки у вас є root, тільки Боб використовує свій обліковий запис за допомогою sudo, щоб отримати доступ до вищих привілеїв, встановити та контролювати аудит тощо), і будьте обережні, щоб не довіряти вашому довіреному колу, як вони тримаються під мікроскопом, або ви можете відчужувати людей, які намагаються щоб виконати свою роботу (або перешкодити їм виконувати свою роботу).


2

Linux auditd ( http://people.redhat.com/sgrubb/audit/ ) дасть вам найбільше сил для спостереження, хто що робив. Про це ви дізнаєтесь більше у відповіді ДерфК.

Однак нічого не збирається сказати вам, хто ввійшов як веб-адміністратор, якщо є n людей, які мають доступ до облікового запису webadmin. Я б запропонував використовувати іменовані облікові записи для кожного користувача, а потім або використовувати su - або sudo для запуску команд з облікового запису "функція".

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