Аудит в Linux

Я пытаюсь настроить надежный механизм аудита на своих коробках centos 6.x. Я пробовал и тестировал различные инструменты аудита, такие как

  • auditd
  • помощник
  • psacct

Но ни одно из них не полностью отвечает моим требованиям. Мое требование довольно простое, и я знаю, что одна система аудита не будет обслуживать все, и мне, возможно, придется использовать разные системы аудита вместе. я бы хотел

  • Контролировать все команды, выполняемые пользователем

psacct делает это отлично, но сообщает только команду, выполненную пользователем, а не аргументы, переданные команде. т.е. если пользователь запускает vim /erc/passwd, затем lastcomm <username> только скажет, что команда vim была выполнена, но не скажет, какой файл был фактически отредактирован.

И audd говорит, что, например, команда vim была запущена и конкретный файл был отредактирован, но не сообщают, кто редактировал файл.

Предположим, что я запускаю команду от имени пользователя sudo, тогда он не скажет мне, какой пользователь отредактировал конкретный файл, если в выводе команды будет 10 пользователей sudo, и gid будет иметь права суперпользователя:

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)
  • Хотел бы отследить фактические изменения, внесенные в файл

Вспомогательный инструмент сообщает, что файл был изменен, но как я могу получить подробную информацию о контенте, который действительно был изменен, и о том, какой пользователь сделал изменение?

1 ответ

Вы можете реализовать это, используя audd и модуль 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

Недостатком этого метода является то, что все нажатия клавиш регистрируются, включая пароли, введенные в терминале.

Для отслеживания файла может быть изменен помощник. Это использует метод проверки контрольной суммы. Но точная строка, измененная в файле, не прослеживается.

Другие вопросы по тегам