FreeBSD で clamav を使う

#clamav#security

fuji44

FreeBSD で clamav を使いたい

インストールとセットアップ

pkg install clamav
echo 'clamav_clamd_enable="YES"' >> /etc/rc.conf
echo 'clamav_freshclam_enable="YES"' >> /etc/rc.conf

サービスを起動

service clamav-clamd start
service clamav-freshclam start

スキャンする

Scanning

ワンタイムでスキャンするコマンドは clamscanclamdscan がある。

d 付のコマンドは clamd を利用する。ついていないものは利用しない。そのためデータベースのロードを一から行うのでかなり遅い。

基本的に d 付のコマンドを使った方がいいと思う。

clamdscan file_path_or_directory
  • -m : マルチスレッドでスキャンする
  • -z : 検知しても、引き続きスキャンする。
  • --fdpass : ファイルのアクセス権限を clamd に移譲する。 clamd と別ユーザで実行している場合はスキャン速度が改善される場合がある。
  • --move=DIRECTORY : 感染したファイルを DIRECTORY に移動する。
  • --remove : 感染したファイルを削除する。
  • --max-filesize=SIZE : スキャンするファイルの最大サイズを指定する。
  • -l log_file : 指定したファイルにログを出力する。clamdscan の場合は clamd.conf のログ設定に従ってこれとは異なるログが別途出力される。
  • --quiet : 出力を抑える。

応用

複数ファイルを効率的にスキャン

find で検索したディレクトリ配下のすべてのファイルをマルチスレッドでスキャンする。

find scan_directory | xargs clamdscan -z -m --fdpass

サイレントスキャン

標準出力への出力を抑えて、ログに出力する。感染ファイルは .infected/ に移動する。

find scan_directory | xargs clamdscan -z -m --fdpass --move=.infected/ -l /var/log/clamav/scan.log --quiet

検知を試す

EICARテストファイル というアンチウイルスソフトのテスト用のファイルを使って検知を試す。テストファイルは eicar.org で入手する。