LinuxでSSHを介したファイル修正の監査

LinuxでSSHを介したファイル修正の監査

Linuxサーバー上のファイルに対するすべての修正を監視したいと思います。

いくつかの研究では、次のコマンドを使用して監査ツールをインストールして構成したことがわかりました。

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 cl14470 "echo 'rm -rf /root/chaithu'|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がないと記録される理由です。

この問題に関する情報をオンラインで検索しましたが、残念ながら混乱を解消するための情報が見つかりませんでした。

ケース2でtty =(none)として記録されている理由を誰かが説明できますか?

答え1

これは制御ttyなしでコマンドが実行される方法だからです。

あなたの場合と同様に、引数を使用して呼び出すとオプションが渡されず、擬似-t端末sshはデフォルトで割り当てられません。sshssh cl14470 "echo ...")。

これはマンページで説明されているデフォルトの動作ですssh(1)

サーバーがユーザーの身元を承認すると、サーバーは次のいずれかを実行します。非対話型セッションで指定されたコマンドを実行します。あるいは、コマンドが指定されていない場合は、システムにログインし、対話型セッションとして一般的なシェルをユーザーに提供します。リモートコマンドまたはシェルとのすべての通信は自動的に暗号化されます。

対話型セッションが要求された場合デフォルトでは、sshはクライアントに対話型セッションがある場合にのみptyを要求します。 -Tおよび-tフラグを使用してこの動作を置き換えることができます。

したがって、ssh疑似端末のみが割り当てられます。離れて次のような場合、メインマシンㅏ)「コマンド」引数なしで実行されます。そしてb)SSHクライアントの標準入力地元のマシンはttyです。

この-tオプションはssh仮想端末を強制的に割り当て、この-Tオプションは仮想端末を強制的に割り当てます。いいえ他の要素に関係なく、1 つの項目を割り当てます。

関連情報