Є кілька людей з кореневим доступом до конкретного ВМ, яким я керую. Я хотів би дізнатися, яка IP-адреса використовувалася для входу в root.
Є кілька людей з кореневим доступом до конкретного ВМ, яким я керую. Я хотів би дізнатися, яка IP-адреса використовувалася для входу в root.
Відповіді:
Ви можете скористатися lastкомандою для отримання цієї інформації
# last|head
phemmer ssh 192.168.0.24 Wed Aug 20 21:08 - 21:08 (00:00)
phemmer pts/13 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:07 - 23:07 (00:00)
phemmer pts/15 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer ssh 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer :0 Wed Jul 30 20:06 still logged in
reboot system boot 3.13.2-gentoo Wed Jul 30 20:05 still running
Як ви можете без сумніву бачити, 3-й стовпець покаже віддалену IP-адресу у випадку входу в SSH.
lastвикористовує /var/log/wtmpфайл, тому цей спосіб схожий на відповідь G-Man (лише трохи простіше, оскільки вам не потрібно вказувати шлях до файлу).
Це залежить від вашого розповсюдження чи ОС. sshdдесь увійде кожен логін і включить відповідну IP-адресу у формат для входу у такий формат:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
Ця частина є послідовною, але те, як ви потрапите, може відрізнятися. У системах на основі systemd, використовуйте journalctl:
journalctl /usr/bin/sshd
щоб перелічити всі повідомлення журналу з sshdвиконуваного файлу. Ви можете визначити це з кореневими логінами або іншими критеріями та обмежити його датою за допомогою --sinceта --until(див. man journalctl).
Як альтернативно, так і історично, повідомлення будуть входити (як правило) десь у /var/log. sshdПовідомлення зазвичай надходять /var/log/auth.log, але точний файл може істотно відрізнятися. Що б це не було:
grep sshd /var/log/auth.log
дасть вам широко еквівалентний вихід до journalctlверсії.
Команда
who /var/log/wtmp
повинна показувати інформацію, як те, що whoпоказує, але повертаючись у часі.
last
Ви не повинні дозволити людям використовувати, використовуючи sshбезпосередньо логін у корі (використовуючи пароль корінця або сертифікат /root/.ssh/authorized_keys), якщо ви хочете перевірити, хто ввійшов як root. Натомість використовуйте один обліковий запис для кожної людини та дозвольте їм використовувати sudoдля отримання кореневих прав. Таким чином ви знайдете у відповідному журналі (положення файлу журналу залежить від того, який розподіл у вас є, ви навіть можете налаштувати демона журналу для надсилання повідомлень на іншу машину) повідомлення user john ran the command 'sudo rm -rf /'. Ну, можливо, ви не знайдете легко одну команду в журналах.
sudoпотужність. Ніколи не існує реальної причини ділитися рахунком між двома людьми, але людина може мати два акаунти, якщо потрібно.
rootобліковим записом.
З короткого опису, який ви надали, здається, було б краще, якщо ви налаштували систему моніторингу журналу. Це допоможе вам відстежувати входи, створювати сповіщення, порівнювати дані за кілька днів і так, звичайно, графіки для всього цього.
Але якщо вам потрібно контролювати це тимчасово , ви можете скористатися lastкомандою.
last | grep root | grep -v tty | awk '{print $3}'
Це дасть вам список IPsабо Hostnamesзвідки, корінний користувач увійшов у систему.
sudo less /root/.bash_historyя все ще намагаюся дослідити це, здається, справді хорошим питанням :)