treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

sambaサーバ監視オプション(使いそうなものだけ)

昨日まででsambaサーバで共有するファイルの監視設定をやってみました。
本日はこのオプションのうち、今後使いそうなところを調べましたので、調べた内容などをご報告します。

具体的な設定方法はこちら

(1/2)Debian Jessieのsambaでファイル監視 - treedown’s Report

(2/2)Debian Jessieのsambaでファイル監視 - treedown’s Report

オプションを調べるために

実際にsamba公式のドキュメントでオプションを調べるといいです。

https://www.samba.org/samba/docs/man/manpages/vfs_full_audit.8.html

ただ英語がちょっと…という方は、旧バージョンであるsamba3系統の日本語ヘルプページが役に立ちます。
http://www.samba.gr.jp/project/translation/3.5/htmldocs/manpages-3/vfs_full_audit.8.html

samba3.0~samba3.5までのドキュメントですが、samba4でも基本は同じなので動作を理解するには十分なドキュメントです。

オプション

「vfs_full_audit is able to record the complete set of Samba VFS operations:」と記述のある個所が実際に指定する監視の種類=オプションとなります。
以下のオプションは、いずれも「full_audit:failure = 」で指定すれば失敗した操作の記録、「full_audit:success =」で指定すれば成功した操作の記録、となります。

接続の確認

「connect」が含まれる単語はアクセスした履歴を収集するオプションになります。

  • connect:共有フォルダへのアクセス
  • disconnect:共有フォルダのアクセスを切断(閉じた)履歴

ディレクトリ(フォルダ)を操作する履歴

基本的に~dirとつくオプションがディレクトリ操作関連です。

  • opendir:共有フォルダや共有フォルダ内のフォルダを開くと記録されます。
    例えばエクスプローラで共有フォルダ内のフォルダを開くと「smbd_audit: USERNAME|opendir|ok|PCデータ」このようなログが一行記録されます。
  • closedir:開いたフォルダを閉じると記録されます。
  • mkdir:フォルダ(ディレクトリ)を作成すると記録
  • rmdir:フォルダ(ディレクトリ)を削除すると記録
  • readdir:フォルダを開いた時に画面に表示されたフォルダが記録されます。
  • telldir:詳細は不明ですが、readdirの後に「translate_name」に続いて出力されるのでフォルダが画面に表示されたのと関係ありそうな…
  • seekdir:検索っぽいけどログに出てこなかったのでちょっとわかりませんでした。そのうち調べとこう

ファイル操作

ファイルを操作するとディレクトリ操作と同様に以下のような記録を指定することができます。

  • open:ファイルを開くと記録されます。
    例えばメモ帳で共有フォルダ内のtest.txtを開くと「smbd_audit: USERNAME|open|ok|w|PCデータ/test.txt」というログが記録されます。
  • close:ファイルを閉じたら記録されます
  • read(pread):ファイルを読み取った時に記録されます。ディレクトリのreaddirと同じ動作でファイルに適用される場合がこちら。
  • write(pwrite):ファイルの書き込みが発生した時に記録されます。上書き対策にはこっちの記録(たぶん)ですね。
  • rename:ファイルのリネームをした時に記録されるログで、例えば共有フォルダに右クリックで作成した「新しいテキスト ドキュメント.txt」ファイルを「test.txt」に変更したら「smbd_audit: USERNAME|rename|ok|PCデータ/新しいテキスト ドキュメント.txt|PCデータ/test.txt」と記録されます。
  • unlink:今回の主役、ファイルの削除を実行した際の記録で、例えばtest.txtを削除すれば「smbd_audit: USERNAME|unlink|ok|test.txt」という記録がログに書き込まれます。

このほかには

「~_acl」という具合に「_acl」を含むオプションだと、ACLの変更を記録するオプションと解釈できます。使っていませんので詳しくは分かりませんが…。

今回の設定

今回は「削除」について監視したいという需要なので
「full_audit:success = rmdir pwrite rename unlink」
としていましたが、これはディレクトリ削除とファイル削除、に加えてファイルの上書き保存とファイルのリネームを収集しています。ファイルの削除は目的なので当然入れますが、使っている人から見ると勝手にリネームされたのも削除と受け取る可能性があるのでリネームは情報収集しておこうというものと、一応ファイルが上書きされた場合には記録をとっておこうというものです。
※試したところではwriteとpwriteの違いがよく分かりませんでしたがファイル上書きだとpwriteがログに記録されていたのでpwriteで指定しました。

もうちょっとこの辺は調べたり、使っていくうえで調整(追加?)が必要になりそうな感じですね。