設定パラメータ

コンポーネントは、Dr.Web for UNIX Mail Serversの統合された設定ファイル[MailD]セクションで指定されている設定パラメータを使用します。

セクションには以下のパラメータが含まれています。

LogLevel

{logging level}

コンポーネントのログの詳細レベル

パラメータ値が指定されていない場合は、[Root]セクションDefaultLogLevelパラメータの値が使用されます。

デフォルト値:Notice

Log

{log type}

コンポーネントのロギング方式

デフォルト値:Auto

ExePath

{path to file}

コンポーネントの実行ファイルへのパス。

デフォルト値:<opt_dir>/bin/drweb-maild

GNU/Linuxの場合:/opt/drweb.com/bin/drweb-maild

FreeBSDの場合:/usr/local/libexec/drweb.com/bin/drweb-maild

RunAsUser

{UID | user name}

このパラメータは、コンポーネントを実行するユーザー名を決定します。ユーザー名は、ユーザーのUIDまたはユーザーのログインとして指定できます。ユーザー名が数字で構成されている場合(UIDに似ている場合)は、「name:」というプレフィックスを付けて指定します。次に例を示します。RunAsUser = name:123456

ユーザー名が指定されていない場合、コンポーネント操作は開始後にエラーが発生して終了します。

デフォルト値:drweb

FixedSocketPath

{path to file}

固定コンポーネントコピーのUNIXソケットへのパス。

このパラメータが指定されている場合、Dr.Web ConfigD設定デーモンは、このソケットを介してクライアントが使用可能な実行中のコンポーネントのコピーが常に存在することを確認します。

デフォルト値:(未設定)

DnsResolverConfPath

{path to file}

DNSリゾルバ設定ファイルへのパス。

デフォルト値:/etc/resolv.conf

TemplatesDir

{path to directory}

メールがブロックされた場合にユーザーに返されるメールのテンプレートを含むディレクトリへのパス。

デフォルト値:<var_dir>/templates/maild

GNU/Linuxの場合:/var/opt/drweb.com/templates/maild

FreeBSDの場合:/var/drweb.com/templates/maild

TemplateContacts

{string}

脅威に関するメッセージに挿入されるDr.Web for UNIX Mail Serversの管理者の連絡先(メッセージテンプレートで使用されます)。

連絡先情報は、最初のメッセージから脅威やその他の望ましくないオブジェクトが削除されている、パスワードで保護されたアーカイブを含む添付ファイルを取得した場合にのみ、リパックされたメッセージに追加されます。RepackPasswordパラメータの現在の値(以下参照)に従って添付アーカイブがパスワードで保護されていない場合、連絡先情報は変更されたメッセージに追加されません。

デフォルト値:(未設定)

ReportLanguages

{string}

サービスメールメッセージ(メールがブロックされた場合に送信者に返されるメールメッセージなど)の生成に使用される言語。各言語は2文字の表記(en、ruなど)で識別されます。

リストをパラメータ値として指定できます。リストの値は、コンマ(引用符内の各値)で区切る必要があります。パラメータはセクションで複数回指定できます(この場合、そのすべての値が1つのリストにまとめられます)。

例:言語ruおよびdeをリストに追加します。

1.設定ファイルに値を追加します。

1つの文字列に2つの値

[MailD]
ReportLanguages = "ru", "de"

2つの文字列(文字列ごとに1つの値)

[MailD]
ReportLanguages = ru
ReportLanguages = de

2.コマンドdrweb-ctl cfsetを使用して値を追加します。

# drweb-ctl cfset MailD.ReportLanguages -a ru
# drweb-ctl cfset MailD.ReportLanguages -a de

デフォルト値:en

RepackPassword

{None | Plain(<password>) | HMAC(<secret>)}

メッセージに添付され受信者に送信された悪意のあるオブジェクトのアーカイブのパスワードを生成する方法。以下の方法を使用できます。

なし - アーカイブはパスワードで保護されません(非推奨)。

Plain(<password>) - すべてのアーカイブが同じパスワード<password>で保護されます。

HMAC(<secret>) - <secret>と<message identifier>のペアに基づいてアーカイブごとに一意のパスワードが生成されます。

メッセージIDと既知のシークレットを使用してアーカイブを保護するパスワードを復元するには、drweb-ctl idpassコマンドを使用します。

デフォルトでは、このパラメータには値Noneが設定されています。これはDr.Web for UNIX Mail Serversの設定中に変更することを推奨します。

デフォルト値:なし

ScanTimeout

{time interval}

Dr.Web MailDによって開始された1つのメールメッセージのスキャンのタイムアウトを設定します。

1秒から1時間の範囲の値を指定できます。

デフォルト値:3m

HeuristicAnalysis

{On | Off}

Dr.Web MailDによって開始されたメールメッセージのスキャン中に未知の脅威を検出するためにヒューリスティック解析を使用するかどうかを指定します。

ヒューリスティック解析における検出の信頼性は高いのですが、ウイルススキャンに時間がかかります。

使用可能な値:

On - スキャン時にヒューリスティック解析を使用するように指示します。

Off - ヒューリスティック解析を使用しないように指示します。

デフォルト値:On

PackerMaxLevel

{integer}

圧縮されたオブジェクトスキャン時の最大ネストレベルを設定します。Dr.Web MailDによって開始されたスキャン中に、より深いネストレベルにあるすべてのオブジェクトがスキップされます。

0から60までの範囲の値を指定できます。値を0に設定すると、ネストしたオブジェクトはスキャンされません。

デフォルト値:8

ArchiveMaxLevel

{integer}

パックされたオブジェクトをスキャンする際の最大ネストレベルを指定します。Dr.Web MailDによって開始されたスキャン中に、より深いネストレベルにあるすべてのオブジェクトがスキップされます。

0から60までの範囲の値を指定できます。値を0に設定すると、ネストしたオブジェクトはスキャンされません。

デフォルト値:8

MailMaxLevel

{integer}

メールメッセージとメールボックスのスキャン時の最大ネストレベルを指定します。Dr.Web MailDによって開始されたスキャン中に、より深いネストレベルにあるすべてのオブジェクトがスキップされます。

0から60までの範囲の値を指定できます。値を0に設定すると、ネストしたオブジェクトはスキャンされません。

デフォルト値:8

ContainerMaxLevel

{integer}

他のコンテナ(HTMLページなど)のスキャン時の最大ネストレベルを指定します。Dr.Web MailDによって開始されたスキャン中に、より深いネストレベルにあるすべてのオブジェクトがスキップされます。

0から60までの範囲の値を指定できます。値を0に設定すると、ネストしたオブジェクトはスキャンされません。

デフォルト値:8

MaxCompressionRatio

{integer}

圧縮/パックされたオブジェクトの最大許容圧縮率(非圧縮サイズと圧縮サイズの比率)を設定します。オブジェクトの比率が制限を超えると、そのオブジェクトはDr.Web MailDによって開始されたスキャン中にスキップされます。

圧縮率には2よりも小さい値は指定できません。

デフォルト値:500

MilterSocket

{path to file | IP address:port}

メールのMilterフィルターとしてMTAに接続するためのソケット(Dr.Web MailDを対応するフィルターとして使用しているときに、MTAはこのソケットに接続します)。UNIXソケットまたはネットワークソケットを使用できます。

Milter経由で送信されるメッセージの処理ルールは、MilterHookパラメータで指定します(以下を参照)。

デフォルト値:(未設定)

MilterDebugIpc

{Boolean}

Milterプロトコルメッセージをデバッグログに出力します(LogLevel = Debug)。

デフォルト値:No

MilterTraceContent

{Boolean}

Milterプロトコルインターフェースを介してスキャン用に受信したメールメッセージの本文をデバッグログに出力します(LogLevel = Debug)。

デフォルト値:No

MilterHook

{path to file | Lua function}

Milterインターフェース経由で受信したメールメッセージを処理するLuaスクリプト、またはスクリプトを含むファイルへのパス(Luaでのメール処理セクションを参照)。

使用できないファイルを指定すると、コンポーネントを読み込む際にエラーが表示されます。

デフォルト値:

local dw = require "drweb"

local dwcfg = require "drweb.config"

function milter_hook(ctx)

 -- Reject the message if it is likely spam

 if ctx.message.spam.score >= 100 then

   dw.notice("Spam score: " .. ctx.message.spam.score)

   return {action = "reject"}

 else

   -- Assign X-Drweb-Spam headers in accordance with spam report

   ctx.modifier.add_header_field("X-DrWeb-SpamScore", ctx.message.spam.score)

   ctx.modifier.add_header_field("X-DrWeb-SpamState", ctx.message.spam.type)

   ctx.modifier.add_header_field("X-DrWeb-SpamDetail", ctx.message.spam.reason)

   ctx.modifier.add_header_field("X-DrWeb-SpamVersion", ctx.message.spam.version)

 end

  -- Check if the message contains viruses, repack if so
  for threat, path in ctx.message.threats{category = {"known_virus", "virus_modification", "unknown_virus", "adware", "dialer"}} do
    ctx.modifier.repack()
    dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
  end

  -- Repack if unwanted URL has been found
  for url in ctx.message.urls{category = {"infection_source", "not_recommended", "owners_notice"}} do
    ctx.modifier.repack()
    dw.notice("URL found: " .. url .. "(" .. url.categories[1] .. ")")
  end

 -- Assign X-AntiVirus header

 ctx.modifier.add_header_field("X-AntiVirus", "Checked by Dr.Web [MailD version: " .. dwcfg.maild.version .. "]")

 -- Accept the message with all scheduled transformations applied
  return {action = 'accept'}
end

SpamdSocket

{path to file | IP address:port}

メールメッセージのSpamdフィルターとしてMTAに接続するためのソケット(Dr.Web MailDを対応するフィルターとして使用しているときに、MTAはこのソケットに接続します)。UNIXソケットまたはネットワークソケットを使用できます。

Spamd経由で送信されるメッセージの処理ルールは、SpamdReportHookパラメータで指定します(以下を参照)。

デフォルト値:(未設定)

SpamdDebugIpc

{Boolean}

Spamdプロトコルメッセージをデバッグログに出力します(LogLevel = Debug)。

デフォルト値:No

SpamdReportHook

{path to file | Lua function}

Spamdインターフェース経由で受信したメールメッセージを処理するLuaスクリプト、またはスクリプトを含むファイルへのパス(Luaでのメール処理セクションを参照)。

使用できないファイルを指定すると、コンポーネントを読み込む際にエラーが表示されます。

デフォルト値:

local dw = require "drweb"

function spamd_report_hook(ctx)
  local score = 0
  local report = ""

  -- Add 1000 to the score for each threat found in the message
  for threat, path in ctx.message.threats{category = {"known_virus", "virus_modification", "unknown_virus", "adware", "dialer"}} do
      score = score + 1000
      report = report .."Threat found: " .. threat.name .. "\n"
      dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
  end

  -- Add 100 to the score for each unwanted found URL in the message
  for url in ctx.message.urls{category = {"infection_source", "not_recommended", "owners_notice"}} do
      score = score + 100
      report = report .."Url found: " .. url .. "\n"
      dw.notice("URL found: " .. url .. "(" .. url.categories[1] .. ")")
  end

  -- Add the spam score
  score = score + ctx.message.spam.score
  report = report .."Spam score: " .. ctx.message.spam.score .. "\n"
  if ctx.message.spam.score >= 100 then
      dw.notice("Spam score: " .. ctx.message.spam.score)
  end

  -- Return the check result
  return {
     score = score,
     threshold = 100,
     report = report
     }
end

SpoolDir

{path to directory}

スキャンされたメールメッセージの一時ストレージディレクトリ。

デフォルト値:/tmp/com.drweb.maild

RspamdHttpSocket

{path to file | IP address:port}

メールのRspamdフィルターとしてMTAに接続するためのソケット(このソケットは、RspamdプロトコルのHTTPオプションでDr.Web MailDを対応するフィルターとして使用している間、MTAによって使用されます)。UNIXソケットまたはネットワークソケットを使用できます。

Rspamdを介して送信されるメッセージの処理ルールは、RspamdHookパラメータで指定されます(以下を参照)。

デフォルト値:(未設定)

RspamdSocket

{path to file | IP address:port}

メールのRspamdフィルターとしてMTAに接続するためのソケット(このソケットは、RspamdプロトコルのHTTPオプションでDr.Web MailDを対応するフィルターとして使用している間、MTAによって使用されます)。UNIXソケットまたはネットワークソケットを使用できます。

デフォルト値:(未設定)

RspamdDebugIpc

{Boolean}

Rspamdプロトコルメッセージをデバッグログに出力します(LogLevel = Debug)。

デフォルト値:No

RspamdHook

{path to file | Lua function}

Rspamdインターフェース経由で受信したメールメッセージを処理するLuaスクリプト、またはスクリプトを含むファイルへのパス(Luaでのメール処理セクションを参照)。

使用できないファイルを指定すると、コンポーネントを読み込む際にエラーが表示されます。

デフォルト値:

local dw = require "drweb"

function rspamd_hook(ctx)
  local score = 0
  local symbols = {}

  -- Add 1000 to the score for each threat found in the message
  for threat, path in ctx.message.threats{category = {"known_virus", "virus_modification", "unknown_virus", "adware", "dialer"}} do
      score = score + 1000
      table.insert(symbols, {name = threat.name, score = 1000})
      dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
  end

  -- Add 100 to the score for each unwanted URL found in the message
  for url in ctx.message.urls{category = {"infection_source", "not_recommended", "owners_notice"}} do
      score = score + 100
      table.insert(symbols, {name = "URL " .. url, score = 100})
      dw.notice("URL found: " .. url .. "(" .. url.categories[1] .. ")")
  end

  -- Add the spam score
  score = score + ctx.message.spam.score
  table.insert(symbols, {name = "Spam score", score = ctx.message.spam.score})
  if ctx.message.spam.score >= 100 then
      dw.notice("Spam score: " .. ctx.message.spam.score)
  end

  -- Return the check result
  return {
     score = score,
     threshold = 100,
     symbols = symbols
  }
end