GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL 6,7 で Auditd を使用してマウント ポイントのマウント/アンマウントを監視する方法

ここでの質問は、特定のマウント ポイントをアンマウントまたはマウントしているユーザーまたはシステム プロセスをどのように判断するかということです。マウント ポイントのマウントとマウント解除は、auditd を使用して監視できます。 auditd は、Linux 監査システムのユーザー空間コンポーネントです。これは、システム ユーザーが auditd を実行して、Linux システムで機能を監査するためのルールとアラートを構成できることを意味します。

auditd の最も優れた点の 1 つは、カーネルと緊密に統合されていることです。これにより、必要なほぼすべてを監視することができます。デフォルトでは、構成されているルールはありません。 /etc/audit/rules.d/audit.rules にルールを記述する必要があります 構成ファイルが読み取られ、対応する監査アクションが適用されます。

auditd のインストール

1. auditd パッケージは、デフォルトのインストール RHEL/CentOS 7 システムの一部です。次のコマンドで確認できます:

# rpm -qa | grep audit
audit-libs-2.8.1-3.el7.x86_64
audit-libs-python-2.8.1-3.el7.x86_64
audit-2.8.1-3.el7.x86_64

2. パッケージがシステムの一部でない場合は、先に進んでインストールできます:

# yum install audit

3. 監査デーモンが実行されていることを確認します。次のコマンドを使用します:

# systemctl status auditd
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-06-17 06:56:06 UTC; 2min 37s ago
     Docs: man:auditd(8)
           https://github.com/linux-audit/audit-documentation
  Process: 657 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS)
  Process: 652 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
 Main PID: 653 (auditd)
    Tasks: 2
   CGroup: /system.slice/auditd.service
           └─653 /sbin/auditd

CentOS/RHEL 6 の場合、service コマンドを使用して auditd サービスのステータスを確認できます。

# service auditd status

ファイルシステムのマウント/アンマウントを監視するための auditd ルールの設定

ファイルシステムのマウント/アンマウントを監視するために必要な auditd ルールを設定しましょう。

1. 次のルールをファイル /etc/audit/rules.d/audit.rules 監査マウントおよびアンマウント操作に追加します。 umount SYCALL の名前が umount2 であることに注意してください。

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b64 -S mount,umount2 -k mount_umount
CentOS/RHEL 6 では、構成ファイルは /etc/audit/audit.rules です。 /etc/audit/rules.d/audit.rules の代わりに。

ここで、
-a – リストの末尾にルールをアクションとともに追加します。
always,exit – -a オプションで指定されたアクションです。
-S – SYSCALL を表します (マウントおよび umount2 の場合)
arch=b64 – 64 ビット アーキテクチャのルールを指定します。

2. 「service」コマンドで auditd サービスを再起動します。

# service auditd restart
Stopping logging:                                          [  OK  ]
Redirecting start to /bin/systemctl start auditd.service

確認

1. /data マウント ポイントを例に取り、このマウント ポイントのマウント/アンマウント時に監査ログが生成されるかどうかを確認します。

# df -hP /data
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvdf       976M  2.6M  907M   1% /data

2. このマウント ポイントを手動でアンマウントします。

# umount /data

/var/log/audit/audit.log を監視し、以下のようなメッセージを探します。 uid=gid= セクションと pid= 監査ログの一部は、コマンドを発行したプロセスまたはユーザーを特定するのに役立ちます:

# tailf /var/log/audit/audit.log
...
type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount"
type=CWD msg=audit(1529223527.639:881):  cwd="/root"

サーバーで多くのことが監査されている場合、/var/log/audit/audit.log を調べるのは大変なことです。代わりに、ルールで定義されたキーでコマンド「ausearch」を使用して、マウントとアンマウントに関連するログのみを除外できます。例:

# ausearch -k mount_umount
----
time->Sun Jun 17 08:18:47 2018
type=PROCTITLE msg=audit(1529223527.639:881): proctitle=756D6F756E74002F64617461
type=PATH msg=audit(1529223527.639:881): item=0 name="/data" inode=2 dev=ca:50 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:unlabeled_t:s0 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529223527.639:881):  cwd="/root"
type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount"
/etc/shadow および /etc/passwd ファイルの変更を Auditd で監視する方法は?
auditd を使用して Linux でファイルの削除を監視する方法
auditd を使用したシステム監査について


Cent OS
  1. CentOS / RHEL 7 :マシン ID を変更する方法

  2. CentOS / RHEL 7 :/etc/fstab のマウント順序に従う方法

  3. CentOS / RHEL 7:Samba サービスを開始できない

  1. CentOS/RHEL で「autofs」を使用して NFS ファイル システムをマウントする方法

  2. CentOS/RHEL 7 で「lvm2-lvmetad.socket/service」を無効にする方法

  3. CentOS/RHEL:YUM を使用してファイルが欠落しているパッケージを見つける方法

  1. CentOS8またはRHEL8でネットワークサービスを再起動する方法

  2. CentOS / RHEL :Apache httpd サービスをインストールして開始する方法

  3. CentOS/RHEL 6 で「find_multipaths」ディレクティブを使用してローカル ディスクをブラックリストに登録する方法