Intereting Posts
Заменить «_» на «|» в файле только на 5-ом поле Установка времени linux Как настроить службу systemd для выполнения команды simple / bin / echo «Hello world», чтобы показать вывод на консоли? Подавить «Будильник: 14» от пинга Как выбрать строки из файла CSV на основе разных значений столбцов? timestamping history file вызывает ошибочные строки в команде history Ubuntu 14.04 – Несколько ручек Powermate для технологии Griffin Использование двухточечного VPN не похоже на правильный сетевой интерфейс bash – флаги разбора и ожидаемый (необязательный) аргумент Рекомендуемый максимальный процент для заполнения большого диска данных ext4 screen & xterm: как выбрать текст с помощью мыши в одной панели, когда окно разделено по вертикали Как я могу получить доступ к приводу цифровой камеры через USB после безопасного ее удаления? Как включить клавиши Fn на Samsung 900X в Arch Linux? expr help – управление строками Эволюция колес Evdev на T431s

Как определить IP-адрес того, кто зарегистрировался в Root?

Есть несколько человек с корневым доступом к определенной виртуальной машине, которой я занимаюсь. Я хотел бы узнать, какой IP-адрес использовался для входа в root.

Это зависит от вашего дистрибутива или ОС. 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 .

Вы можете использовать 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 

Как вы, без сомнения, видите, третий столбец покажет удаленный IP-адрес в случае входа SSH.

last использует файл /var/log/wtmp , поэтому этот метод похож на ответ G-Man (просто немного проще, так как вам не нужно указывать путь к файлу).

Вы не должны позволять людям использовать ssh , войдя в систему напрямую с правами root (используя пароль root или сертификат в /root/.ssh/authorized_keys ), если вы хотите провести аудит, кто зарегистрирован в качестве пользователя root. Вместо этого используйте одну учетную запись для каждого человека и позвольте им использовать sudo для получения прав root. Таким образом, вы найдете в соответствующем журнале (позиция файла журнала зависит от того, какой у вас дистрибутив, вы даже можете настроить демона журнала для отправки сообщений на другой компьютер), user john ran the command 'sudo rm -rf /' сообщения user john ran the command 'sudo rm -rf /' . Ну, может быть, вы не найдете легко одной команды в журналах.

Команда

 who /var/log/wtmp 

должен показать информацию, как то who что показывает, но вернуться во времени.

Из краткого описания, которое вы указали, кажется, было бы лучше, если бы вы создали систему мониторинга журналов. Это поможет вам следить за входами, создавать оповещения, сравнивать данные за несколько дней и давать все графики курса.

Но если вам нужно временно контролировать его, вы можете использовать last команду.

 last | grep root | grep -v tty | awk '{print $3}' 

Это даст вам список IPs или Hostnames откуда пользователь root выполнил вход в систему.