nfs共有のファイルを監査しています。監査ログを表示するためにコマンドを使用すると、次ausearch -f /var/nfs/general
のログが表示されます。
time->Tue Jun 12 16:23:34 2018
type=PROCTITLE msg=audit(1528800814.660:2782): proctitle=636174002F7661722F6E66732F67656E6572616C2F6E6673312E747874
type=PATH msg=audit(1528800814.660:2782): item=0 name="/var/nfs/general/nfs1.txt" inode=4063539 dev=08:01 mode=0100664 ouid=1001 ogid=1001 rdev=00:00 nametype=NORMAL
type=CWD msg=audit(1528800814.660:2782): cwd="/home/test"
type=SYSCALL msg=audit(1528800814.660:2782): arch=c000003e syscall=2 success=yes exit=3 a0=7ffc2c53c824 a1=0 a2=20000 a3=69d items=1 ppid=31104 pid=7295 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts18 ses=4294967295 comm="cat" exe="/bin/cat" key=(null)
これで、nfs共有ファイルにアクセスするクライアントのIPアドレスとホスト名をどのように取得できますか?
これらの詳細を見つける他の方法はありますか?
時間、日付、クライアントのIPアドレス、クライアントのホスト名、発生したイベント(読み取り、書き込み、名前変更、ファイルの所有権の変更、nfsフォルダからファイルを削除または作成するなど)などの詳細を収集したいと思います。
収集された詳細は別々のファイルに保存され、将来の目的で使用される可能性があります。
どうすればいいですか?
答え1
残念ながら、標準のカーネルNFSサーバーを使用すると、これを行うことはできません。監査サブシステムはシステム呼び出し(ユーザー空間からカーネルへの呼び出し)を監査し、NFSサーバーはカーネル内で直接実行されるため、NFSはこれらのI / O操作に対してシステム呼び出しを実行しません。
NFS ジョブログを取得するいくつかの可能な方法は次のとおりです。
rpcdebug
NFSデバッグログを使用して結果ログを有効にして処理します。- このフレームワークを使用して、興味深いNFSタスクを追跡します
ftrace
。 - GaneshaなどのユーザースペースNFSサーバーに切り替えます。 (アクセスログが可能かどうかはわかりません。そうでない場合は、自分で実装する必要があります。)
ご質問がある場合は、上記の監査ロギングはNFSとは無関係で、cat /var/nfs/general/nfs1.txt
NFSをローカルで実行するだけです。