Я пытаюсь проверить автоматизированную задачу, которая подключается к моему серверу и выполняет некоторые команды.
Я хотел бы знать все, что он делает.
В настоящее время я пробую эти правила в своем файле audit.rules.
-a exit,always -F arch=b64 -S execve
-a exit,always -F arch=b32 -S execve
Эти строки подходят для аудита бинарных команд. Но если я выполняю что-то еще, например «foo», это не регистрируется. Мне нужно правило, которое может регистрировать также необоснованные команды или попытки команд. Является ли это возможным ?
Леандро
Нет, вы не хотите, чтобы auditd регистрировал «абсолютно все». Каждый системный вызов - это огромное количество записей журнала, занимающих много места для хранения. И очень мало интересных событий в шуме.
По крайней мере, отфильтруйте auditd для конкретного пользователя, запускающего эту автоматизацию.
Да, auditd хорош для ведения журнала execve, но не для сбора всего, что введено в оболочку. Перспектива ядра auditd делает плохую видимость того, что оболочка делает в пользовательском пространстве. Для этого вам понадобится инструмент автоматизации с более надежным ведением журнала или трюки с оболочкой.
При отладке сценариев оболочки bash учитывайте, что установить встроенные функции улучшит опыт. set -e
для немедленного выхода при ненулевом коде возврата. set -o xtrace
распечатать все команды.
Также вы можете включить историю в неинтерактивных оболочках путем экспорта соответствующих переменных среды и set -o history
.