Sendmailの設定

SendmailとDr.Web MailD間の統合をセットアップするにはsendmail.mc設定ファイルおよびsendmail.cf設定ファイルの編集が必要な場合があります。

sendmail.cf設定ファイルを再コンパイルしたくない場合は、以下のラインを挿入または追加することも可能です(該当する定義が既にファイル内に存在する場合)。

バージョン8.14.0以降:

-------------------- cut ------------------

############################

# Input mail filters

############################

O InputMailFilters=drweb-filter

O Milter.LogLevel=6

############################

#      Xfilters

############################

Xdrweb-filter,  S=__ADDRESS__,

F=T, T=C:1m;S:5m;R:5m;E:1h

------------------- cut ---------------------

ローカルで送信されたメッセージ(mailまたはsendmailシステムコールによって)をチェックするには、sendmail.cf設定ファイルに加えられた全ての変更をsubmit.cfファイルおよびsubmit.mcファイルにコピーする必要があります。

submit.cfファイルおよびsubmit.mcファイルはデフォルトで読み取り専用になっているので、編集する前にアクセス権限を変更(書き込み権限を与えます)するようにしてください。また、PrivacyOptionsパラメータにnobodyreturn値を追加する必要もあります。

例:

-------------------- cut ------------------

# privacy flags

O PrivacyOptions=goaway,noetrn,nobodyreturn

-------------------- cut ------------------

Or in {sendmail_src}/cf/cf/feature/msp.m4:

-------------------- cut ------------------

define('confPRIVACY_FLAGS'

'goaway,noetrn,nobodyreturn,restrictqrun')

-------------------- cut ------------------

フィルタを使用できない場合、以下のフラグ(F=)を有効にしてください。

R - 送信失敗
T - 送信遅延

F=RおよびF=Tのどちらも指定されていない場合、メッセージは検査されずに通過します。

sendmail.mcに以下のラインを追加することも出来ます。

バージョン8.14.0以降:

------------------- cut ---------------------

INPUT_MAIL_FILTER('drweb-filter', 'S=__ADDRESS__,

F=T, T=C:1m;S:5m;R:5m;E:1h')

define('confMILTER_LOG_LEVEL','6')

------------------- cut ---------------------

タイムアウトはSendmailに対して設定されたタイムアウトの値に応じて設定してください。

O Timeout.datablock=XX

デフォルト値は1時間です(XX=>1h)。

sendmail.cf設定ファイルを変更した後は、再コンパイルしてください。

__ADDRESS__ストリングは、drweb-milterへの接続に使用するトランスポートアドレスを指定します。書式と値はDr.Web MailD設定ファイル[Milter]セクションのAddressパラメータのものと同じです。

TCPソケットに対しては以下の書式でアドレスを指定してください。

inet:__PORT__@__HOST__

__PORT__ and __HOST__ は確定値を持っている必要があります(例:inet:3001@localhost)。

UNIXソケットに対しては以下の書式でアドレスを指定してください。

local:__SOCKPATH__

__SOCKPATH__ストリングで、フィルタを起動した権限によってアクセスが可能なパスを指定してください(例:local:/var/run/drweb-milter.sock)。

フィルタの設定に関する詳細はSendmailのドキュメントを参照してください。必要なパラメータ全てに値を指定した後、Sendmailを再起動する必要があります。

drweb-maildモジュール内にあるSendmailメッセージID(sendmails message ID)のロギング、および認証成功に関する情報のdrweb-maildへの送信を有効にするには、以下のラインをsendmail.cfに含めてください。

------------------- cut ---------------------

O Milter.macros.envfrom=i,{auth_type}, ...

------------------- cut ---------------------

(省略記号は他のパラメータを表しています)

Dr.Web MailDが送信者のIPアドレスおよびホスト名を定義するため、また受信者のインターフェースアドレスをdrweb-maildモジュールに送信するためには以下のラインをsendmail.cf設定ファイル内に含めてください。

------------------- cut ---------------------

O Milter.macros.connect=_,{if_addr}, ...

------------------- cut ---------------------

(省略記号は他のパラメータを表しています)

syslogへの以下のメッセージの出力を無効にするには、

------------------- cut ---------------------

X-Authentication-Warning: some.domain.com: drweb set sender to DrWeb-DAEMON@some.domain.com using -f

------------------- cut ---------------------

drweb-milterを操作している権限を持ったユーザ(デフォルトではdrwebユーザ)をsubmit.cf内のtrusted-usersリストに加える必要があります。submit.cf設定ファイルおよびsendmail.cf設定ファイル内でユーザを直接リストに加えてください。

------------------- cut ---------------------

#####################

#   Trusted users   #

#####################

Tdrweb

------------------- cut ---------------------

またはsubmit.mcファイルに以下のラインを加えてください。

------------------- cut ---------------------

define('confTRUSTED_USERS', 'drweb')

------------------- cut ---------------------