Є кілька людей з кореневим доступом до конкретного ВМ, яким я керую. Я хотів би дізнатися, яка 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
я все ще намагаюся дослідити це, здається, справді хорошим питанням :)