Логгируем все команды на сервере
Иногда надо из соображений безопасности логировать все дейстия пользователей на сервере.
Очень полезно для того, чтоб потом исследовать кто и что делал и как получилось, что у нас что-то упало. Ну или это могут быть требования сертификации, например.
Итак, что нам надо сделать для полного логгирования действий:
Логгер в окружении пользователя
Добавляем следующую строку в файл /etc/bash.bashrc:
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
Таким образом вся история пользователя будет попадать в rsyslog с уровнем local6.
Отдельный файл для лога команд
Создаем файл /etc/rsyslog.d/bash.conf с содержимым:
local6.* /var/log/commands.log
Рестартуем rsyslog и проверяем, что лог у нас пишется. Для этого нужно перезайти на сервер и выполнить несколько команд. Все они должны появиться в логе.
Комментарии: