Получить историю команд, выполненных третьими лицами через ssh

Вопрос или проблема

Я предоставляю доступ к стороннему сервису через ssh, который устанавливает некоторые пакеты и выполняет другую конфигурацию на моем сервере. Я хочу узнать, какие команды или скрипты выполняются этим сервисом, есть ли способ это выяснить.

Сторонний сервис — это автоматическая система, которая выполняет все эти установки пакетов и конфигурацию.

Отредактируйте файл .bashrc пользователя вашего (стороннего сервиса).

histappend

Если установлено, список истории добавляется в файл истории при выходе из оболочки,
вместо перезаписи файла истории.

shopt -s histappend

Чтобы добавлять каждую строку в историю по отдельности, установите:

PROMPT_COMMAND='history -a'

С этими двумя настройками новая оболочка получит строки истории из всех предыдущих оболочек вместо значения по умолчанию 'последнее закрытое окно'>история
(файл истории называется по значению переменной HISTFILE)

.

Ответ или решение

Как отследить командную историю, выполняемую третьей стороной через SSH

Доступ к вашему серверу через SSH может быть необходим для сторонних служб, занимающихся установкой пакетов и конфигурацией. Однако важно понимать, какие команды или скрипты выполняются для обеспечения безопасности и контроля. Ниже приведены шаги, которые помогут вам отслеживать выполнение команд на вашем сервере.

1. Настройка истории команд в .bashrc

Чтобы обеспечить запись истории вводимых команд для пользователя, которому предоставлен доступ, вам нужно внести изменения в файл конфигурации .bashrc этого пользователя. При этом важно настроить так, чтобы история команд не перезаписывалась при каждой выходе из сессии, что обеспечивается следующими параметрами:

# Включаем возможность добавления новых команд в файл истории
shopt -s histappend

# Каждую строку команды добавляем в историю сразу
PROMPT_COMMAND='history -a'

Эти команды делают следующее:

  • shopt -s histappend: включает режим добавления, который позволяет дополнять файл истории вместо его перезаписи.
  • PROMPT_COMMAND='history -a': каждый раз, когда пользователь вводит команду в сессии, она немедленно сохраняется в файл истории.

2. Позиционирование файла истории

Файл истории по умолчанию называется .bash_history, и он находится в домашнем каталоге пользователя. Убедитесь, что у вас есть доступ к этому файлу, чтобы просматривать историю после того, как сторонний сервис завершит свою работу. Вы можете просматривать историю с помощью следующих команд:

cat ~/.bash_history | less

или

tail -f ~/.bash_history

Теперь вы сможете контролировать, какие именно команды были выполнены во время сессий SSH.

3. Логирование с помощью auditd

Еще один способ отслеживать активность на сервере — это использование инструмента auditd, который ведет журнал действий пользователей и может фиксировать все вызовы команд. Для его установки и настройки выполните следующие шаги:

  1. Установите auditd:

    sudo apt-get install auditd
  2. Настройте правило для отслеживания команд:

    Добавьте правило в файле конфигурации audit.rules для отслеживания всех вызовов команды. Например:

    -a always,exit -F arch=b64 -S execve -k command-execution
  3. Просмотр журналов:

    Журнал можно просмотреть с помощью команды:

    ausearch -k command-execution

Это позволит вам отслеживать не только команды, но и их параметры, а также пользователей, которые их выполняли.

4. Использование psacct или acct

Инструмент psacct может быть полезен для ведения учета команд, выполняемых пользователями. Для его установки выполните:

sudo apt-get install psacct

После этого можно использовать команду lastcomm, чтобы просматривать историю выполненных команд:

lastcomm

Заключение

Отслеживание команд, выполняемых через SSH, является важной частью поддержания безопасности вашего сервера. Настройка файла истории команд, использование инструментов аудита, а также логирование команд — это способы, которые помогут вам точно понимать, что происходит на вашем сервере во время выполнения сторонними услугами. Убедитесь, что конфиденциальность и безопасность ваших данных остаются приоритетными в вашей инфраструктуре.

Таким образом, систематическое применение перечисленных методов позволит вам полностью контролировать и отслеживать действия третьих сторон на вашем сервере.

Оцените материал
Добавить комментарий

Капча загружается...