ClamdOmitScan.pl - 定期スキャン用高速アンチウィルススキャナー

- 名前
- 使用方法
- 説明
- スキャンの必要性とは
- INET ソケット
- STREAM CLAMD コマンド
- オプション

- オリジナルオプション
- CLAMDSCAN オプション
- CLAMSCAN オプション

- 例
- 終了ステータス
- 参照
- 作者

# 名前

ClamdOmitScan.pl - 定期スキャン用高速アンチウィルススキャナー

# 使用方法

ClamdOmitScan.pl [options] [file/directory ...]

ClamdOmitScan.pl --maintain-scan-data [options]

ClamdOmitScan.pl --help|-h

ClamdOmitScan.pl --version|-V

# 説明

ClamdOmitScan.pl は定期スキャン用高速アンチウィルススキャナーです。

file または directory が省略されると、ClamdOmitScan.pl はカレントディレクトリをスキャンします。

ClamdOmitScan.pl は clamdscan のように clamd を用いてファイルやディレクトリをスキャンしますが、clamscan のように振る舞います。clamdscan と clamscan に実装されている全てのオプションを受け付けるようになっています。clamdscan のようにほとんどの clamscan オプションは無視されますが、clamdscan よりも多くのオプションを利用します。

更に、ClamdOmitScan.pl は一度スキャンしたファイルやディレクトリを高速にスキャンします。それはスキャンする必要がないファイルのスキャンを省略するからです。

clamdscan はリモートの clamd に接続することができませんが、ClamdOmitScan.pl は接続できます。LAN でアンチウィルススキャンサーバを使用できるのです。そのために ClamdOmitScan.pl を使用するそれぞれのクライアントに ClamAV をインストールする必要はありません。

注意: clamscan は標準入力のスキャンをサポートしていますが ClamdOmitScan.pl はサポートしていません。

# スキャンの必要性とは

ClamdOmitScan.pl はファイルをスキャンする前に次の条件を調べます。

C1. ファイルタイムスタンプ条件
  そのファイルが最後にスキャンしたときよりも後に更新または作成された。
C2. スキャナーバージョン条件
  現在の ClamAV のバージョンとそのファイルを最後にスキャンしたバージョンが異なる。
C3. 検査期間条件
  そのファイルを最後にスキャンしたときの ClamAV のタイムスタンプよりもそのファイルのタイムスタンプが十分に古くはない。

C1 または (C2 かつ C3) のとき、そのときに限ってそのファイルをスキャンする必要があります。

注意: C3 の充分な期間のデフォルトは四週間です。 --period オプションを参照してください。

# INET ソケット

ClamdOmitScan.pl は次のケースで INET ソケットを使用します。

- --socket が指定されていない。
- なおかつ `clamd.conf` で `LocalSocket` の値が指定されていない。
- なおかつ --port が指定されいるか、あるいは、`clamd.conf` で `TCPSocket` の値が指定されている。

# STREAM CLAMD コマンド

ClamdOmitScan.pl は次のケースで `STREAM` clamd コマンドを使用します。

- ClamdOmitScan.pl が INET ソケット用いて clamd に接続している。
- あるいはスキャン対象のファイルのファイル名に改行が含まれている。

# オプション

## オリジナルオプション

--maintain-scan-data
  スキャンデータの保守。このオプションが指定されると ClamdOmitScan.pl はスキャンをしません。
--data directory | --data=directory
  スキャンデータディレクトリのパス。もし存在しなければ `directory` と `directory.lock` が作成されます。

  デフォルト: `~/.ClamdOmmitScan`

--lock
  スキャンデータのロックに排他的ロックを使用します。これが指定されない場合は、ClamdOmmitSca.pl は共有ロックを使用します。flock(2) を参照してください。
--period seconds | --period=seconds
  ファイルスキャン期間。「スキャンの必要性とは」を参照してください。

  デフォルト: 2419200 (4 週間)

--socket path
  clamd の UNIX ドメインソケットのパス。このオプションが指定されると ClamdOmitScan.pl は UNIX ドメインソケットを使用して clamd に接続します。

  このオプションが指定されていないとき、`clamd.conf` に書かれている `LocalSocket` の値を用います。

  デフォルト: `/tmp/clamd.socket`

--port port | --port=port
  clamd の INET ソケット(ポート番号)。ClamdOmmitSca.pl が INET ソケットを用いて clamd に接続するとき、port をポート番号として使用します。

  このオプションを指定していないとき、`clamd.conf` に書かれている `TCPSocket` の値を用います。

  デフォルト: (なし)

--host address | --host=address
  clamd サーバアドレス。

  このオプションを指定していないとき、`clamd.conf` に書かれている `TCPAddr` の値を用います。

  デフォルト: `127.0.0.1`

--stream-max-length length | --stream-max-length=length
  clamd.conf(5) の StreamMaxLength の項を参照してください。

  このオプションを指定していないとき、`clamd.conf` に書かれている `StreamMaxLength` の値を用います。

  警告: length が clamd が実際に使用している値よりも大きいと、 ClamdOmmitSca.pl が唐突に落ちることがあります。それは次のようなケースです。

  - ClamdOmmitSca.pl が `STREAM` clamd コマンドを使用している。
  - なおかつ、スキャン対象のファイルのサイズが length より大きい。

  「STREAM CLAMD コマンド」を参照してください。

  デフォルト: 10M

--no-warn-unsupported
  サポートしていない clamscan のオプションが指定されるとデフォルトでは ClamdOmmitSca.pl は警告を出力します。このオプションを指定するとその警告が抑制されます。
--error-unsupported
  サポートしていない clamscan のオプションが指定されるとデフォルトでは ClamdOmmitSca.pl は警告を出力します。このオプションを指定すると警告ではなくエラーとなります。
--timeout seconds | --timeout=seconds
  clamd 接続タイムアウト。

  デフォルト: 10

--scan-timeout seconds | --scan-timeout=seconds
  1MB 当りのスキャンタイムアウト。

  デフォルト: 40

--bufsiz length | --bufsiz=length
  ファイルの読み書きのバッファーのサイズ。ClamdOmmitSca.pl が STREAM clamd コマンドを使用しているか感染ファイルをコピーするときにこの値を使用します。

  デフォルト: 4096

--no-contscan
  このオプションが指定されると、ClamdOmmitSca.pl は `CONTSCAN` clamd コマンドの代わりに `SCAN` コマンドを使用します。clamd(8) の SCAN の項と CONTSCAN の項を参照してください。
--perm-root octet | --perm-root=octet
  スキャンデータのルートディレクトリのパーミッション。

  デフォルト: 0700

--perm-dir octet | --perm-dir=octet
  スキャンデータの中のディレクトリのパーミッション。

  デフォルト: 0700

--perm-file octet | --perm-file=octet
  スキャンデータの中のファイルのパーミッション。

  デフォルト: 0600

--perm-lock octet | --perm-lock=octet
  スキャンデータのロックファイルのパーミッション。

  デフォルト: 0600

--limit-timeout num | --limit-timeout=num
  連続タイムアウト回数制限。clamd タイムアウトが連続して num+1 回以上起きたとき、num が 0 以上ならば ClamdOmitScan.pl が停止します。

  clamd が正常に動作しているのにこの制限で ClamdOmitScan.pl が停止するときは、--timeout や --scan-timeout の値を増やしてください。

  デフォルト: 3

--scan-rsrc
  HFS ファイルシステム上の各ファイルのリソースフォークをスキャンします。

  システムが Darwin(Mac OS X) でないときは、このオプションには perl モジュール Sys::Filesystem が必要です。

  デフォルト: (no)

--scan-dmg
  ディスクイメージファイルをディレクトリとして扱います。ClamdOmitScan はディスクイメージファイルを dir の下の一時ディレクトリにマウントしてから、その下のファイルをスキャンします。このオプションは Darwin(Mac OS X)、Linux、FreeBSD でサポートされています。

  Linux の場合、カーネルのバージョンが 2.4 もしくはそれ以上でなければなりません。 FreeBSD の場合 /sbin/mdconfig がインストールされていなければなりません。 Linux も FreeBSD も perl モジュール Sys::Filesystem が必要です。

  サポートされているディスクイメージファイルのタイプは次のとおりです。

          Darwin(Mac OS X): .iso, .dmg, .img, .cdr, .vhd(Virual PC disk image)
          他の OS: .iso

  注意: ライセンスへの同意が必要なディスクイメージファイルや暗号化されたディスクイメージファイルは TTY 環境でのみサポートされています。

  DEFALUT: (no)

## CLAMDSCAN オプション

clamdscan の全てのオプションが有効です。詳細は clamdscan(1) を参照してください。

## CLAMSCAN オプション

次の clamscan のオプションが有効です。

--recursive | -r
--max-dir-recursion
--exclude pattern | --exclude=pattern
--exclude-dir pattern | --exclude-dir=pattern
--include pattern | --include=pattern
--include-dir pattern | --include-dir=pattern
--infected
--copy directory | --copy=directory
--bell

詳細は clamscan(1) を参照してください。

# 例

(0) 単一のファイルをスキャンする:
  `ClamdOmitScan.pl file`
(1) カレントディレクトリをスキャンする:
  `ClamdOmitScan.pl`
(2) /home の全てのファイル(とサブディレクトリ)をスキャンする:
  `ClamdOmitScan.pl -r /home`
(3) カスタムのスキャンデータディレクトリを指定する:
  `ClamdOmitScan.pl --data=/var/ClamdOmitScan/scanData`
(4) カスタムのスキャンデータディレクトリを保守する:
  `ClamdOmitScan.pl --data=/var/ClamdOmitScan/scanData --maintain-scan-data`

# 終了ステータス

0: ウィルスなし。

1: ウィルス発見。

2: エラー発生。

40: 未知のオプション。

41: 間違ったオプションの値。

42: 間違った引数。

43: サポートされないオプション。

50: スキャンでエラー。

51: スキャンデータの保守でエラー。

# 参照

clamd(8), clamdscan(1), clamscan(1), flock(2), clamd.conf(5), Sys::Filesystem

# 作者

OKAMURA Yuji <https://sourceforge.jp/users/okamura/>