Linuxサーバー(Redhat)のファイルに加えられたすべての変更を監視したかったのです。調査を行ったところ、次のコマンドを使用して既にインストールおよび構成されているこの監査ツールが見つかりました。
_yum install audit # installation
/etc/init.d/auditd start # started service
auditctl -w /root/file-name -p war -k password-file # configured rule to audit file
ausearch -f /root/file-name # Command to search modifications
_
特定のファイルに加えられたすべての変更が記録されています。次のシナリオに出くわすまで、すべてが順調でした。
ケース1:
前述の監査ツールを使用して監視しているファイルを、次のコマンドを使用してサーバーから削除しました。
_rm -rf /root/file-name
_
次の結果が記録されました。
type=SYSCALL msg=audit(1540222267.321:1057): Arch=c000003e syscall=2 success=yes exit=3 a0=7ffe22abf91a a1=941 a2=1b6 a3=7ffe22abed70 items=2 ppid=21053 pid=42458 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=5 comm="touch" exe="/bin/rm" key="password-file"
ケース2:次のコマンドを使用してリモートサーバーからファイルを削除しました:
_ssh Host "echo 'rm -rf /root/file-name'|Sudo su - root"
_
次の結果が記録されました。
type=SYSCALL msg=audit(1540222588.196:1118): Arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=ce70c0 a2=0 a3=7fff52a6af40 items=2 ppid=42520 pid=42533 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=9 comm="rm" exe="/bin/rm" key="password-file"
ここで私を混乱させるのは、コマンドをリモートで実行したときにtty
がnoneとして記録される理由です。これについてウェブで検索しましたが、残念ながら混乱を明確にするものは見つかりませんでした。
ケース2でtty=(none)
として記録された理由を誰かが説明できますか?
よろしくお願いします。質問が不明な場合や不足している場合はお知らせください。修正いたします。
Sshに実行するリモートコマンドを与えると、インタラクティブttyは必要ないため、割り当てられません。 ttyの割り当てを強制する場合は、-t
を使用します。