drweb plug-inのセットアップ

プラグインの動作に関する主要なパラメータは全て%etc_dir/plugin_drweb.conf設定ファイル内で設定します。設定ファイルの構造やパラメータの種別についての説明は設定ファイルを参照してください。パラメータは設定ファイル内での順番のとおりに説明します。

[anti-virus]セクションではdrwebプラグインの一般設定が定義されています。

[Antivirus] セクション

Address = {socket address}

アンチウイルスプラグインとdrwebd間の連携の為のソケットの指定です。異なるサーバ上にあるDaemonsとの連携に複数のソケットを指定することが可能です。リストの先頭にあるアドレスが主要なアドレスと見なされ、残りは予備となります。このパラメータは、標準アドレスタイプの他にPIDにも対応しています。これを使用する場合、daemonの本当のアドレスはそのPIDファイルから取られます。

例:

PIDファイルへのパスを指定する場合。

Address = pid:%var_dir/run/drwebd.pid

複数のアドレスを指定する場合。

Address = pid:%var_dir/run/drwebd.pid, inet:3000@srv2.example.com

デフォルト値:

Address = pid:%var_dir/run/drwebd.pid

Timeout = {time value}

drwebdがコマンドを実行する際のタイムアウトの指定です。値が0に設定されている場合、時間の制限はありません。

デフォルト値:

Timeout = 30s

HeuristicAnalysis = {Yes | No}

ヒューリスティック解析によってdrwebdが未知のウイルスを検出できるようにする設定です。ヒューリスティック解析が無効になっている場合、よく知られたウイルス(ウイルスデータベースに情報があるウイルス)のみが検出されます。ヒューリスティック解析を有効にした場合、正式なプログラムの動作とウイルスの動作の類似性によって誤検出が発生する可能性があり、また検査にかかる時間が少し長くなる場合があります。

デフォルト値:

HeuristicAnalysis = Yes

TCP_NODELAY = {Yes | No}

Yes は、TCP_NODELAY オプションが有効なソケットを使用します。

ネットワークに問題が無い限り、デフォルトのNoを変更しないでください。

デフォルト値:

TCP_NODELAY = No

ReportMaxSize = {size}

drwebdログファイルの最大サイズの指定です。ReportMaxSize = 0の場合、サイズに制限はありません。マルウェアやメール爆弾を検出した際にログファイルのサイズが数メガバイトを超えてしまう可能性があるので、パラメータ値をnullに設定することは推奨できません。

デフォルト値:

ReportMaxSize = 50k

AddXHeaders = {Yes | No}

Yesが指定された場合、検査するメッセージにヘッダのX-Anti-VirusX-Anti-Virus-Codeを追加します。

デフォルト値:

AddXHeaders = Yes

Paranoid = {Yes | No}

Yesが指定された場合、メッセージをパラノイドモードで検査します。このモードではメッセージをセグメント単位でDaemonに送信するため、ウイルス検出率は向上しますが検査にかかる時間は長くなります。

passが適用されたオブジェクトがメッセージに含まれている場合、このオブジェクトに関する統計情報の重複が起こる可能性があるので注意してください(添付ファイル、およびメッセージそのものが処理された際にウイルスが検出された場合)。また、いくつかの追加アクション(notifyredirect)も2回適用される場合があります。

デフォルト値:

Paranoid = No

RegexsForCheckedFilename = {list of regular expressions}

メッセージ検査後にdrwebdによって提供されたレポート内のファイル名を検査する為に、アンチウイルスプラグインが使用する正規表現のリストです。アーカイブされたファイルの名前は">"記号で始まります(">"記号の数はアーカイブのネストレベルによって決まります)。ファイル名のいずれかの部分がリスト内の正規表現にマッチした場合、BlockByFilenameパラメータで指定されたアクションが適用されます。この検査は、ウイルスが検出されなかったファイルに対してのみ実行されます。

:

RegexsForCheckedFilename = "^>.*?\\s{5\\,}"

BlockByFilenameパラメータで指定されたアクションが、名前に5つ以上空白のあるアーカイブまたはファイルを含んだ全てのメッセージに対して適用されます。

デフォルト値:

RegexsForCheckedFilename =

LicenseLimit = {actions}

ライセンス制限によって検査が行われなかった際に適用するアクションの指定です。基本処理はpasstempfaildiscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

LicenseLimit = pass

Infected = {actions}

既知のウイルスに感染したメッセージに対するアクションを指定します。基本処理はcureremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Infected = cure, quarantine

Suspicious = {actions}

未知のウイルスに感染した疑いのあるメッセージに対するアクションを指定します。基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Suspicious = reject, quarantine, notify

Incurable = {actions}

修復不可能なメッセージに対するアクションを指定します。基本処理はremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Incurable = reject, quarantine, notify

Adware = {actions}

アドウェア感染メッセージに対するアクションを指定します。基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Adware = reject, quarantine, notify

Dialers = {actions}

ダイアラー感染メッセージに対するアクションを指定します。基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Dialers = reject, quarantine, notify

Jokes = {actions}

ジョークソフト感染メッセージに対するアクションを指定します。基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Jokes = reject, quarantine, notify

Riskware = {actions}

リスクウェア感染メッセージに対するアクションを指定します。基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Riskware = reject, quarantine, notify

Hacktools = {actions}

侵入用ツール感染メッセージに対するアクションを指定します。基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

Hacktools = reject, quarantine, notify

SkipObject = {actions}

以下の理由により、デーモンが検査出来ないオブジェクトを含んだメッセージに対するアクションを指定します。

パスワード保護されているかアーカイブが壊れている。シンボリックリンク、または通常ファイルではないファイルがメッセージに添付されている。
タイムアウトで検査が中断された(詳細はメイン設定ファイルdrweb32.ini内のSocketTimeoutおよびFileTimeoutパラメータに関する記述を参照してください)。

基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

SkipObject = pass

ArchiveRestriction = {actions}

メイン設定ファイルdrweb32.iniで設定されたアーカイブ検査制限に抵触したため、daemonによって検査出来ないアーカイブを含んだメッセージに対するアクションを指定します。

アーカイブ圧縮率が設定ファイルdrweb32.ini内のMaxCompressionRatioパラメータの値を超えている。
パックされたオブジェクトのサイズが設定ファイルdrweb32.ini内のMaxFileSizeToExtractパラメータの値を超えている。

アーカイブのネストレベルが設定ファイルdrweb32.ini内のMaxArchiveLevelパラメータの値を超えている。

基本処理はpassremovediscardrejectで、追加処理はquarantineredirectnotifyです。

同時に複数の値を指定することが出来ます。

デフォルト値:

ArchiveRestriction = reject, quarantine, notify

ScanningErrors = {actions}

検査中にdrwebdにエラーを生じさせたメッセージに対するアクションを指定します(例えばDaemonが、メモリが足りない状態で動作していた、または先の処理へ進むために必要な権限を持っていなかったなど)。基本処理はpassremoverejecttempfailで、追加処理はquarantineredirectnotifyです。同時に複数の値を指定することが出来ます。

デフォルト値:

ScanningErrors = reject, quarantine

ProcessingErrors = {actions}

検査中にプラグインにエラーを生じさせたメッセージに対するアクションを指定します(例えばアンチウイルスプラグインが、メモリが足りない状態で動作していた、またはdaemonに接続できなかったなど)。基本処理はpassdiscardrejecttempfailで、追加処理はquarantineredirectnotifyです。同時に複数の値を指定することが出来ます。

デフォルト値:

ProcessingErrors = reject

BlockByFilename = {actions}

RegexsForCheckedFilenameパラメータで指定した正規表現にマッチするファイルをアーカイブ内に検出した際に適用するアクションを指定する。基本処理はpassdiscardrejecttempfailで、追加処理はquarantineredirectnotifyです。同時に複数の値を指定することが出来ます。

drwebdとの通信がTCPソケット経由で実行された場合、異なるファイル名のフォーマットが使用されるので注意してください。

:

127.0.0.1 [17078] >/var/drweb/msgs/db/6/00007976/.msg/1.part - Ok

ここでは">"記号で始まらず、IPアドレスと検査プロセスの数で始まります。そのため RegexsForCheckedFilenameパラメータ値の正規表現は、その違いを考慮して作成する必要があります。

デフォルト値:

BlockByFilename = reject, quarantine, notify

メッセージがアンチウイルスプラグインによってブロックされると、Dr.Web MailDからのSMTP応答はエラーコード550 5.7.0、および以下に記載するパラメータの値によって定義されるテキストメッセージになります。これらのパラメータの値は引用符で囲む必要があります。

UseCustomReply = {Yes | No}

メッセージを拒否した際にSMTPが返すカスタムエラーメッセージの設定です。

デフォルト値:

UseCustomReply = No

ReplyInfected = {text value}

Infected = rejectまたはIncurable = rejectアクションが適用され、UseCustomReply = yesの場合にSMTPが返すメッセージの指定です。指定することが出来るのは文字列内のテキストの部分のみで、空白を含む場合は引用符で囲む必要があります。

例:

550 5.7.0 "Text part of reply"

デフォルト値:

ReplyInfected = "DrWEB anti-virus: Message is rejected because it contains a virus."

ReplyMalware = {text value}

AdwareDialersJokesRiskwareHacktools = rejectアクションが適用され、UseCustomReply = yesの場合にSMTPが返すメッセージの指定です。指定することが出来るのは文字列内のテキストの部分のみで、空白を含む場合は引用符で囲む必要があります。

例:

550 5.7.0 "Text part of reply"

デフォルト値:

ReplyMalware = "DrWEB anti-virus: Message is rejected because it contains a malware."

ReplySuspicious = {text value}

Suspicious = rejectアクションが適用され、UseCustomReply = yesの場合にSMTPが返すメッセージの指定です。指定することが出来るのは文字列内のテキストの部分のみで、空白を含む場合は引用符で囲む必要があります。

:

550 5.7.0 "Text part of reply"

デフォルト値:

ReplySuspicious = "DrWEB anti-virus: Message is rejected because it contains suspicious content."

ReplySkipObject = {text value}

SkipObject = rejectアクションが適用され、UseCustomReply = yesの場合にSMTPが返すメッセージの指定です。指定することが出来るのは文字列内のテキストの部分のみで、空白を含む場合は引用符で囲む必要があります。

例:

550 5.7.0 "Text part of reply"

デフォルト値:

ReplySkipObject = "DrWEB anti-virus: Message is rejected because it cannot be checked."

ReplyArchiveRestriction = {text value}

ArchiveRestriction = rejectアクションが適用され、UseCustomReply = yesの場合にSMTPが返すメッセージの指定です。指定することが出来るのは文字列内のテキストの部分のみで、空白を含む場合は引用符で囲む必要があります。

例:

550 5.7.0 "Text part of reply"

デフォルト値:

ReplyArchiveRestriction = "DrWEB anti-virus: Message is rejected because it contains archive which violates restrictions."

ReplyError = {text value}

ScanningErrorsProcessingErrorsアクションが適用され、UseCustomReply = yesの場合にSMTPが返すメッセージの指定です。指定することが出来るのは文字列内のテキストの部分のみで、空白を含む場合は引用符で囲む必要があります。

例:

550 5.7.0 "Text part of reply"

デフォルト値:

ReplyError = "DrWEB anti-virus: Message is rejected due to software error."

ReplyBlockByFilename = {text value}

BlockByFilename = reject アクションが適用され、UseCustomReply = yesの場合にSMTPが返すメッセージの指定です。指定することが出来るのは文字列内のテキストの部分のみで、空白を含む場合は引用符で囲む必要があります。

例:

550 5.7.0 "Text part of reply"

デフォルト値:

ReplyBlockByFilename = "DrWEB MailD: Message is rejected due to filename pattern"