Вопрос или проблема
Я предоставляю доступ к стороннему сервису через 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
, который ведет журнал действий пользователей и может фиксировать все вызовы команд. Для его установки и настройки выполните следующие шаги:
-
Установите
auditd
:sudo apt-get install auditd
-
Настройте правило для отслеживания команд:
Добавьте правило в файле конфигурации
audit.rules
для отслеживания всех вызовов команды. Например:-a always,exit -F arch=b64 -S execve -k command-execution
-
Просмотр журналов:
Журнал можно просмотреть с помощью команды:
ausearch -k command-execution
Это позволит вам отслеживать не только команды, но и их параметры, а также пользователей, которые их выполняли.
4. Использование psacct
или acct
Инструмент psacct
может быть полезен для ведения учета команд, выполняемых пользователями. Для его установки выполните:
sudo apt-get install psacct
После этого можно использовать команду lastcomm
, чтобы просматривать историю выполненных команд:
lastcomm
Заключение
Отслеживание команд, выполняемых через SSH, является важной частью поддержания безопасности вашего сервера. Настройка файла истории команд, использование инструментов аудита, а также логирование команд — это способы, которые помогут вам точно понимать, что происходит на вашем сервере во время выполнения сторонними услугами. Убедитесь, что конфиденциальность и безопасность ваших данных остаются приоритетными в вашей инфраструктуре.
Таким образом, систематическое применение перечисленных методов позволит вам полностью контролировать и отслеживать действия третьих сторон на вашем сервере.