web-dev-qa-db-ja.com

Linuxでの監査

CentOS6.xボックスに堅牢な監査メカニズムをセットアップしようとしています。私は次のようなさまざまな監査ツールを試し、テストしました

  • 監査済み
  • 補佐官
  • psacct

しかし、私の要件を完全に満たすものはありません。私の要件は非常に単純で、1つの監査システムがすべてに対応できるわけではなく、異なる監査システムを一緒に使用しなければならない場合があります。したい

  • ユーザーが実行するすべてのコマンドを監視する

psacctはこれを完全に実行していますが、ユーザーが実行したコマンドのみを通知し、コマンドに渡された引数は通知しません。つまり、ユーザーがvim /erc/passwdを実行した場合、lastcomm <username>はvimコマンドが実行されたことのみを通知し、実際に編集されたファイルは通知しません。

そしてauditdはそれを伝えます例えばvimコマンドが実行され、特定のファイルが編集されましたが、誰がファイルを編集したかはわかりません。

Sudoユーザーとしてコマンドを実行すると、コマンドの出力でgidおよびuidがスーパーユーザーとして10人のSudoユーザーがいる場合、特定のファイルを編集したユーザーはわかりません。

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)
  • ファイルに加えられた実際の変更を追跡したい

補助ツールはファイルが変更されたことを通知しますが、実際に変更されたコンテンツの詳細と、どのユーザーが変更を行ったかを取得するにはどうすればよいですか?

3
thinkingmonster

これは、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ファイル。

次に、有効なユーザーのキーストロークが監査ログに記録されます。

監査レポートを生成するときは、aureportで-iオプションを使用して、ユーザー名を正確に取得します。

例:aureport --tty -i -ts today

この方法の欠点の1つは、端末に入力されたパスワードを含むすべてのキーストロークがログに記録されることです。

追跡ファイルには、変更された補佐官を使用できます。これは、チェックサム検証方法を使用します。ただし、ファイル内で変更された正確な行は追跡できません。