ここでの質問は、特定のマウント ポイントをアンマウントまたはマウントしているユーザーまたはシステム プロセスをどのように判断するかということです。マウント ポイントのマウントとマウント解除は、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_umountCentOS/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 を使用したシステム監査について