web-dev-qa-db-ja.com

Linuxでsshを介してファイルの変更を監査する

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)として記録された理由を誰かが説明できますか?

よろしくお願いします。質問が不明な場合や不足している場合はお知らせください。修正いたします。

1
chaitanya gudur

Sshに実行するリモートコマンドを与えると、インタラクティブttyは必要ないため、割り当てられません。 ttyの割り当てを強制する場合は、-tを使用します。

2
Don Simon