Наиболее надежные методы, как представляется, Auditd:
http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html
Auditd в основном перехватывает все системные вызовы и проверяет их на соответствие вашему набору правил. Таким образом, в вашем /etc/audit/audit.rules
файле у вас будет что-то вроде следующего:
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320
# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION
Последнее правило является единственным правилом не по умолчанию.
Основной недостаток этого подхода (и причина, по которой я нашел этот вопрос при поиске альтернатив) заключается в том, что необработанные файлы журналов довольно загадочны и полезны только после запуска программы запросов к необработанному файлу журнала: ausearch
Пример запроса для этого правила:
ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f
Здравым решением, вероятно, будет создание cron, который будет запрашивать ваши необработанные журналы audd, а затем отправлять их в ваше решение для ведения журналов.
В дистрибутивах Red Hat вы обычно используете
/var/log/secure
журнал, чтобы определить, кто входил в систему или использовал ееsudo
в системе Fedora / CentOS / RHEL.Примеры
пример sudoлог результат:
пример suлог результат:
источник
Если у вас есть взаимодействующие пользователи, вы можете настроить rooth для регистрации всех типов пользователей root в syslog.
http://linux.die.net/man/1/rootsh
ROOPS RMSH доступны в EPEL.
Версия sudo на RHEL6 также может записывать стандартный вывод в файл для каждого сеанса sudo. Загляните в справочную страницу sudo_plugins.
Ни один из этих подходов не является полностью пуленепробиваемым.
источник