В нескольких словах
Используйте логи ssh на обеих машинах: он дает PID порожденной оболочки. Это должно позволить вам связать PID оболочки с выполнением программы и иметь определенное совпадение с tty. Для более глубокого аудита вы можете использовать инструмент аудита.
Другими словами
last
С помощью простого last
вы можете получить список соединений, связанных с используемым tty.
У вас может быть два списка: один с вашего прокси-сервера (я бы хотел назвать его Gateway, GW), а другой - с вашего сервера.
last
команда по умолчанию дает вам имя пользователя, pts/tty, IP/hostname. войти в дата-время, срубы из дата-время. Вы можете изменить в формате, и т.д. И т.д.
Тогда вам придется поработать над оверлеями того периода и угадать, кто был.
Проблема, которую я вижу, заключается в том, что таким образом вы должны создать инструмент (скрипт), который даст вам все возможные совпадения и очистить их, в то время как вы найдете хорошие совпадения. Тем не менее, у вас могут быть странные ситуации.
Давайте сделаем тематическое исследование. Первый пользователь, скажем Nicolas, может войти в GW. Затем он идет, чтобы взять кофе или отвечает на звонок. Тем временем второй пользователь, скажем, Hastur, входит в GW и быстрее, чем первый пользователь, входит на сервер. Как раз в этот момент ваш двойной журнал запутан. Теперь Хастур чувствует потребность в кофе, и Николас заходит на сервер. Кто будет первым, кто закончит кофе и первым подключится к программе?
/var/log/auth
(или другой файл журнала ssh)[ 1 ]..
Существуют файлы журналов, используемые для контроля входа и выхода из системы в каждой системе. Ищите правильный путь и имя, те, которые зависят от системы. С
sudo grep TheUsername /var/log/auth.log
вы получите строки, похожие на
May 1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May 1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)
где у вас есть правильное время входа в систему, и даже PID ([9024]
) и IP. На этот раз вы можете сопоставить данные этого файла с last
командой, которая знает tty, или вы могли как-то зарегистрировать внутри программы PID оболочки, которая вызвала саму программу (это можно сделать с помощью системного вызова). в оболочку).
Работая с этими файлами, вы можете иметь уникальное соответствие для каждой сессии. Для аналогичного файла журнала на шлюзе у вас будет оригинальный IP-адрес и имя пользователя.
audit tools
[ 2 ], [ 3 ]
Если у вас есть авторизация, и она является законной, вы можете использовать инструмент аудита и вести полный журнал оболочки на хост-машине.
Рекомендации
- [ 1 ] Регистрация попыток доступа по SSH
- [ 2 ] shell / ssh / tty logger
- [ 3 ] Журнал сессии BASH на удаленном хосте.