У нас є кілька серверів, якими керує велика група адміністраторів. Зазвичай вони входять як користувачі сервісів (скажімо hudson
), а потім переходять на root
невеликі виправлення. Це означає, що ми часто не можемо відобразити зміни, внесені до людини.
Хтось має сценарій для Unix / Linux, який може мені сказати, який користувач увійшов як root? Логін можна здійснювати з усіх комп’ютерів локальної локальної мережі. Віддалений доступ з-за меж локальної мережі як root не можливий; Адміністратори спочатку повинні увійти в систему з користувачем локальної мережі, а потім можуть просувати себе до root (всі вони використовують SSH).
Мені б хотілося, щоб це сценарій, який слідкує за віддаленими входами (у локальній локальній мережі) та друкує ім'я користувача протягом певного часу. Ви можете припустити, що сценарій може зайти через ssh на будь-який комп'ютер у локальній локальній мережі як root, не запитуючи пароль.
Передумови: У мене є сценарій, який зберігає резервні копії всіх файлів, відредагованих root. Проблема полягає у тому, щоб з’ясувати, хто насправді змінив.
Безпека - це не проблема; це не знайти хакерів, які, можливо, очистили wtmp
, це з’ясувати, хто помилився, щоб дати відгуки.
[EDIT] Деякі вказівники: Команда last
допомагає:
> last -t 20101029174200 root
root pts/26 :0.0 Wed Oct 20 15:36 - 15:03 (23:27)
wtmp begins Fri Oct 1 16:34:36 2010
Тож root
увійшли через via pts/26
. Хто ще сидів на цій псевдо TTY?
> last -t 20101029174200 pts/26
adigulla pts/26 :0 Mon Oct 25 09:45 still logged in
adigulla pts/26 :0 Fri Oct 22 14:00 - 17:29 (03:29)
adigulla pts/26 :0 Thu Oct 21 15:04 - 16:05 (01:01)
root pts/26 :0.0 Wed Oct 20 15:36 - 15:03 (23:27)
adigulla pts/26 :0.0 Fri Oct 15 15:57 - 15:57 (00:00)
wtmp begins Fri Oct 1 16:34:36 2010
Хм ... треба бути я. Тож я можу стежити за змінами користувачів на локальній машині. Якщо я входжу на віддалену машину:
$ last -1 hudson
hudson pts/0 192.168.0.51 Fri Oct 29 17:52 still logged in
Тож я отримую PTY та IP-адресу, звідки я прийшов. Як я можу здійснити з'єднання з виводу програми last
для hudson
користувача 192.168.0.51
?
[EDIT2] Будь ласка, зауважте, що ми зазвичай змінюємо користувача на ssh
, не sudo
або su
. Це дозволяє ввімкнути єдиний вхід і уникає необхідності вказувати адміністраторам будь-які паролі. Якщо ми хочемо надати / відкликати доступ до чогось, ми просто додаємо / видаляємо відкритий ключ із облікового запису послуги. Я також знаю, що ssh записує в syslog, але повідомлення не кажуть мені, хто користувач перейшов на root:
sshd[7460]: Accepted publickey for root from ::1 port 36689 ssh2
sudo
(або подібному елеватору привілеїв) дозволу кореневих логінів.