Sambaの汚物(ウイルス)は消毒だ。哀愁のsamba-virusfilter編である。
virusfilterはsambaのvfs。
samba上ファイルを開くときにclamavでスキャンしてくれる。
そういうタイプのvfsはvscan-clamavが有名だが、FreeBSDのportsやpkgには見当たらない。
そこでvirusfilterで試してみた。
試してみた、というのは、ファイルの開け閉めの際にスキャンするのはどうもいただけなく感じるので、本運用には至らなかったから。
なお、clamav、sambaはインストール済みの前提。

samba-virusfilterのインストール

security/samba-virusfilterからインストールできる。
設定ファイルの説明は以下を参照。ただしclamdが動いている前提。
https://github.com/fumiyas/samba-virusfilter/blob/master/etc/smb.svf-clamav.conf.tmpl

設定例

vfs objects = svf-clamav
  svf-clamav:socket path = /var/run/clamav/clamd.sock # clamavのソケット
  svf-clamav:can on open = yes # ファイルを開くときにスキャンする
  svf-clamav:can on close = no # ファイルを閉じるときにもスキャンする
  svf-clamav:max file size = 100000000 # スキャンするファイルのサイズ上限
  svf-clamav:min file size = 0 # スキャンするファイルのサイズ下限
  ## What to do with an infected file
  ## nothing: Do nothing (default)
  ## quarantine: Try to move to quantine directory
  ## delete: Delete infected file
  svf-clamav:infected file action = nothing
  ## Where to move infected files
  svf-clamav:quarantine directory = @SAMBA_LOCKDIR@/svf/quarantine
  ## Prefix for files in quarantine directory
  svf-clamav:quarantine prefix = svf.

ウイルスを見つけたき「何もしない」を選択した場合、感染ファイルはそのまま共有ディレクトリ上に残るし見える。
しかしユーザは当該ファイルを開くことはできない。
ウイルスを発見したとき、ログとしては/var/log/samba下のログに、以下のように記録される。

[2014/03/22 22:51:19.578805,  0] ../include/svf-vfs.h:668(svf_scan)
  Scan result: Infected: /usr/home/vanilla/share/testvirus.txt: Eicar-Test-Signature