Я пытаюсь настроить надежный механизм аудита на своих ящиках с centos 6.x. Я пробовал и тестировал различные инструменты аудита, такие как
Но ни один из них не полностью удовлетворяет мои требования. Мое требование довольно простое, и я знаю, что одна система аудита не будет служить всем, и мне, возможно, придется использовать разные системы аудита все вместе. я бы хотел
psacct делает это отлично, но сообщает только команду, запущенную пользователем, а не аргументы, переданные команде. т.е. если пользователь запускает vim /erc/passwd
, затем lastcomm <username>
сообщит только, что команда vim была запущена, но не скажет, какой файл был фактически отредактирован.
И auditd сообщает, что, например, была запущена команда vim и был отредактирован конкретный файл, но не указано, кто редактировал файл.
Предположим, я запускаю команду как пользователь sudo, тогда он не скажет мне, какой пользователь редактировал конкретный файл, если есть 10 пользователей sudo, поскольку gid и uid будут иметь суперпользователя в выводе команды:
time->Sat Jun 20 15:52:45 2015
type=PATH msg=audit(1434795765.057:54685): item=4 name="/etc/passwd" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
type=PATH msg=audit(1434795765.057:54685): item=3 name="/etc/passwd" inode=152786 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=2 name="/etc/passwd+" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=1 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1434795765.057:54685): item=0 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=CWD msg=audit(1434795765.057:54685): cwd="/etc"
type=SYSCALL msg=audit(1434795765.057:54685): arch=c000003e syscall=82 success=yes exit=0 a0=7fffba897300 a1=7fd7cc94ece0 a2=7fffba8971c0 a3=0 items=5 ppid=14041 pid=14043 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=8494 comm="useradd" exe="/usr/sbin/useradd" key=(null)
Вспомогательный инструмент сообщает, что файл был изменен, но как я могу получить подробную информацию о содержании, которое на самом деле было изменено, и о том, какой пользователь внес изменения?
Вы можете реализовать это с помощью auditd и модуля pam. Вам нужно загрузить модуль pam pam_tty_audit
под сеансом как
session required pam_tty_audit.so disable=testuser1 enable=testuser,root
в обоих /etc/pam.d/password-auth
и /etc/pam.d/system-auth
файлы.
и затем нажатие клавиши включенных пользователей войдет в журнал аудита.
При создании отчета аудита используйте параметр -i с aureport, чтобы получить точное имя пользователя.
например: aureport --tty -i -ts today
Одним из недостатков этого метода является то, что все нажатия клавиш будут регистрироваться, включая пароли, введенные в терминал.
Для отслеживания файлов может использоваться помощник. При этом используется метод проверки контрольной суммы. Но точную строку, измененную в файле, невозможно отследить.