設定パラメータ

このコンポーネントは、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設定デーモンは、このソケットを介してクライアントが使用可能な実行中のコンポーネントのコピーが常に存在することを確認します。

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

IdleTimeLimit

{time interval}

コンポーネントの最大アイドル時間。指定された時間が経過すると、コンポーネントはシャットダウンします。

FixedSocketPath, MilterSocket, SpamdSocket, RspamdHttpSocket, RspamdSocket, SmtpSocket, BccSocketのうち、いずれかのパラメータの値が設定されている場合、IdleTimeLimitの設定は無視されます(指定した時間を経過しても、コンポーネントはその動作を終了しません)。

指定可能な値:10秒(10s)から30日(30d)まで。
None値が設定されている場合、コンポーネントは永続的に機能します。コンポーネントがアイドル状態になると、SIGTERMシグナルは送信されません。

デフォルト値:30s

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文字の表記(enruなど)で識別されます。

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

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

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

1行に2つの値:

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

2行(1行に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>)}

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

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

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

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

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

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

デフォルト値:None

ScanTimeout

{time interval}

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

指定可能な値:1秒(1s)から1時間(1h)まで。

デフォルト値:3m

HeuristicAnalysis

{On | Off}

未知の脅威を検出するためのヒューリスティック解析を有効/無効にします。

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

使用可能な値:

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

Off - ヒューリスティック解析を使用しません。

デフォルト値:On

PackerMaxLevel

{integer}

圧縮されたオブジェクトの最大ネスティングレベル。圧縮されたオブジェクトは、特別なソフトウェア(UPX、PELock、PECompact、Petite、ASPack、Morphineなど)で圧縮された実行コードです。そのようなオブジェクトには、圧縮されたオブジェクトなども含む他の圧縮されたオブジェクトが含まれる場合があります。このパラメータの値はネスティングの上限を指定します。この上限を超えると、他の圧縮されたオブジェクト内の圧縮されたオブジェクトはスキャンされません。

このパラメータの値は、0より大きい任意の整数に設定できます。値を0に設定すると、ネストされたオブジェクトはスキャンされません。

デフォルト値:8

ArchiveMaxLevel

{integer}

他のアーカイブが含まれる可能性のあるアーカイブ(zip、rarなど)の最大ネスティングレベル(これらのアーカイブには他のアーカイブなどが含まれる場合もあります)。このパラメータの値はネスティングの上限を指定します。この上限を超えると、他のアーカイブに含まれるアーカイブはスキャンされません。

このパラメータの値は、0より大きい任意の整数に設定できます。値を0に設定すると、ネストされたオブジェクトはスキャンされません。

デフォルト値:8

MailMaxLevel

{integer}

他のファイルが含まれる可能性のあるメーラーのファイル(pst、tbbなど)の最大ネスティングレベル(これらのファイルには他のファイルなどが含まれる場合もあります)。このパラメータの値は、ネスティングの上限を指定します。この上限を超えると、他のオブジェクト内のオブジェクトはスキャンされません。

このパラメータの値は、0より大きい任意の整数に設定できます。値を0に設定すると、ネストされたオブジェクトはスキャンされません。

デフォルト値:8

ContainerMaxLevel

{integer}

他のオブジェクトが含まれる他のタイプのオブジェクト(HTMLページ、jarファイルなど)の最大ネスティングレベル。このパラメータの値はネスティングの上限を指定します。この上限を超えると、他のオブジェクト内のオブジェクトはスキャンされません。

このパラメータの値は、0より大きい任意の整数に設定できます。値を0に設定すると、ネストされたオブジェクトはスキャンされません。

デフォルト値:8

MaxSizeToExtract

{size}

アーカイブに含まれるファイルの最大サイズ。このパラメータの値よりサイズが大きいファイルは、スキャン時にスキップされます。デフォルトでは、アーカイブ内のファイルのサイズ制限はありません。

このパラメータの値は、サフィックス(bkbmbgb)を付けた数値で指定します。サフィックスが指定されていない場合、値はバイト単位のサイズとして扱われます。

値を0に設定すると、アーカイブ内のファイルは全くチェックされません。

デフォルト値:None

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}

デバッグログ(LogLevel = Debug)にMilterプロトコルメッセージを保存するかどうかを示します。

デフォルト値: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 URL found 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プロトコルのレガシーオプションで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

SpfCheckTimeout

{time interval}

SPFチェックの最大合計時間。

デフォルト値:20s

SpfVoidLimit

{integer}

SPFチェック中に許可される空の回答の最大数。

デフォルト値:2

SmtpSocket

{path to file | IP address:port}

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

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

SmtpSenderRelay

{path to file | IP address:port}

SMTPモードでスキャンされるメッセージのメールフィルターとしてMTAに接続するためのソケット(Dr.Web MailDを外部フィルターとして使用しているときに、MTAはこのソケットに接続します)。UNIXソケットまたはネットワークソケットを使用できます。

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

BccSocket

{path to file | IP address:port}

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

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

BccReporterAddress

{string}

BCCモードでメールの添付ファイルをスキャンした後にDr.Web MailDレポートを送信する送信元メールアドレス。

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

BccReporterPassword

{None | Plain(<password>)}

BCCモードでメールの添付ファイルをスキャンした後にDr.Web MailDレポートを送信する送信元メールアドレスのパスワード。

使用可能な値:

None - メールはパスワードで保護されません。

Plain(<password>) - 指定されたパスワードでメールが保護されます。

デフォルト値:None

BccReportRecipientAddress

{string}

BCCモードでメールの添付ファイルをスキャンした後にDr.Web MailDレポートを送信する送信先メールアドレス。

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

BccSmtpServer

{string}

SMTPおよびBCCモードでメールメッセージを送信するためのMTAアドレス。ドメイン、IPアドレス、またはUNIXソケットを使用できます。

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

VxcubePlatforms

{platform, … | All}

Dr.Web vxCubeを外部フィルターモード(SMTPまたはBCC)でメールメッセージスキャンツールとして使用する場合に、メール添付ファイルを実行するためのOSプラットフォームのリスト。

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

使用可能な値:

<platform> - Dr.Web vxCubeのplatforms API呼び出しのos_codeフィールドの値(ビット数指定のOS名)(詳細は、Dr.Web vxCubeのユーザーマニュアルにあるプラットフォームのセクションを参照)。

All - 利用可能なすべてのプラットフォーム。

デフォルト値:All

VxcubeFileFormats

{format, … | All}

Dr.Web vxCubeを外部フィルターモード(SMTPまたはBCC)でメールメッセージスキャンツールとして使用する場合に解析のために送信される、メール添付ファイルを実行するためのOSプラットフォームのリスト。

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

使用可能な値:

<format> - Dr.Web vxCubeのformats API呼び出しのnameフィールドの値(ファイルフォーマット名)(詳細は、Dr.Web vxCubeのユーザーマニュアルにあるフォーマットのセクションを参照)。

All - 利用可能なすべてのフォーマット。

デフォルト値:All

VxcubeSampleRunTime

{time interval}

Dr.Web vxCubeを外部フィルターモード(SMTPまたはBCC)でメールメッセージスキャンツールとして使用する場合に解析のために送信される、メール添付ファイルを実行する時間。

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

SmtpHook

{path to file | Lua function}

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

設定ファイルの[Root]セクションでUseVxcube=Yesパラメータの値が指定されている場合、Dr.Web vxCubeでメール添付ファイルをスキャンするアクションがデフォルトでLuaスクリプトに追加されます。

デフォルト値:

local dw = require "drweb"

function smtp_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 = "discard"}
  else
      -- Добавить заголовки X-Drweb-Spam с отчетом о спаме
      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
  threat_categories = {"known_virus", "virus_modification", "unknown_virus", "adware", "dialer"}
  if ctx.message.has_threat({category = threat_categories}) then
      for threat, path in ctx.message.threats({category = threat_categories}) do
        dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
      end
      ctx.modifier.repack()
      return {action = "accept"}
  end

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

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

SmtpRetryInterval

{time interval}

SMTPモードで動作する場合に、エラー発生時のメッセージのスキャンや送信の再試行のタイムアウト。

デフォルト値:5m

SmtpRequireTls

{Always | IfSupported | Never}

SMTPモードでSTARTTLS拡張機能を使用して動作するときのSMTPプロトコルポリシーを定義します。

使用可能な値:

Always - 常に保護された接続を使用します。サーバー自体が保護をサポートしていない場合は、接続を中断します。

IfSupported - サーバーがサポートしている場合は、保護された接続を優先します。それ以外の場合は、保護されていないチャネルでメッセージを送信します。

Never - 保護されていない接続を使用しません。

デフォルト値:Always

SmtpDebugIpc

{Boolean}

デバッグログ(LogLevel = Debug)にSMTPモードのSMTPコマンドを保存するかどうかを示します。

デフォルト値:No

SmtpTraceContent

{Boolean}

デバッグログ(LogLevel = DEBUG)にSMTPモードのメールコンテンツを保存するかどうかを示します。

デフォルト値:No

CaPath

{path to file or directory}

信頼できるルート証明書のリストを含むディレクトリまたはファイルへのパス。

デフォルト値:信頼できる証明書のリストへのパス。パスはGNU/Linuxディストリビューションに依存します。

Astra Linux、Debian、Linux Mint、SUSE Linux、Ubuntuの場合、通常はパス/etc/ssl/certs/です。

CentOSとFedoraの場合はパス/etc/pki/tls/certs/ca-bundle.crtです。

他のディストリビューションでは、コマンドopenssl version -dの実行結果によってパスを定義できます。

コマンドが使用できない場合、またはOSディストリビューションを特定できない場合は、値/etc/ssl/certs/が使用されます。

Hostname

{string}

送信者のホスト名(FQDN)。SMTPクライアントから受信したウェルカム文字列HELO/EHLOの他、タイトルAuthentication-Resultssrvnameのデフォルト値にも表示されます。

デフォルト値:現在のホスト名