ウイルススキャン
受け取れるようになる前に、アップロードをスキャナーに渡す。デフォルトはオフ
アップロードは、配られる前に外部のスキャナーで確認できます。デフォルトはオフで、scan.url を設定すると有効になります。
clamd://clamav:3310
https://scanner.example.com/scanclamd:// のアドレスは ClamAV と直接話します。http(s):// のアドレスは、スキャナーの前に置いた任意のサービスです。認可ヘッダーが必要なら、ほかと同じく封印した認証情報として保存されます。
訪問者に見えるもの
スキャンが終わるまで、共有は開けますが受け取れません。試しても何も減りません。コマンドラインのクライアントは自分で待ちます。最長 5 分です。
感染が見つかったファイルがあると、共有全体が無効になります。管理者が無効にしたときとまったく同じです。脅威の名前は保存され、管理画面の共有一覧に表示されます。
アップロードした人には、アップロード後の画面と自分の共有一覧で、スキャンの進み具合と結果が見えます。脅威で無効になった共有は、期限切れのようには見えず、そのことが表示されます。
スキャナーが止まっているとき
スキャンは失敗すると通す
スキャナーに届かない、タイムアウトする、エラーを返すといった場合、待っているファイルは止めずに通します。30 秒ごと、または新しいアップロードが来るたびに再スキャンし、あとで感染が見つかればその時点で無効にします。それまでに受け取られたファイルは、スキャンされずに受け取られたことになります。
管理画面には、スキャナーが前回の呼び出しに応答したか、失敗した理由、待っているファイルとスキャンなしで通したファイルの数が出ます。アイドル中のスキャナーには 15 分ごと、失敗中のスキャナーには 5 分ごとに空のファイルを送るので、誰もアップロードしていなくても最新の状態です。
スキャンをオフにすると、待っているものはすべて通ります。
スキャンされないもの
- エンドツーエンド暗号化した共有。 スキャナーに見えるのは封をしたバイト列だけです。
- スキャナーの上限より大きなファイル。 ClamAV には独自のサイズ上限があります。超えたファイルは断らずに通し、大きすぎると記録します。
- リンク共有。 アドレスだけで、ファイルがありません。
HTTP アダプターを書く
ClamAV 以外のスキャナーを使う場合、HTTP サービスはファイルを POST の本体としてストリーミングで受け取り、次のように答えます。
| 応答 | 意味 |
|---|---|
200 {"clean": true} | 問題なし |
200 {"clean": false, "threat": "…"} | 感染あり |
413 | 大きすぎてスキャンできない |
| それ以外、または応答なし | スキャナーが止まっている |
同時にスキャンするのは 4 ファイルです。