メールサーバー調整 (Mail Server COnfiguration)

 sendmail 8.9.x 以降のバージョンでは sendmail.mc ファイルの LOCAL_CONFIG の下へ以下の項目を記入します。

# dynamic relay authorization control map
Kdrac btree /etc/mail/dracd
また、LOCAL_RULESETS の下にも項目を追加します。
SLocal_check_rcpt
# allow recent POP/IMAP mail clients to relay
R$*				$: $&{client_addr}
R$+				$: $(drac $1 $: ? $)
R?				$@ ?
R$+				$@ $#OK
(※左右の文字列にあるのは空白ではなくタブ[TAB]です。空白では動作しません。mc ファイルへの記入時にはご注意下さい。)

もし DUL*1によってダイヤルアップ接続時に弾かれるようであれば、DRAC で認証されたユーザが接続できるように .mc ファイルに SLocal_check_relay ルールセットの追加が必要となります。

 各ルールの両サイド間にはタブが挿入されています!

 .cf フィルを再構築後に sendmail.cf をセットして sendmail の SMTP デーモンを再起動します。直接 sendmail.cf ファイルを編集しないでください。.mc ファイルから構築する方法が、より安全な手法です。

 Mike McHenry?氏に調整を行った sendmail.mc を提供して頂きました。

 sendmail はバージョン 8.11.0 に適合するように書き加えてありますが、場合によっては正しく動作しない場合もあるかもしれません。これらのルールはメールサーバとして中継の確認とスパムフィルタリング機能を正しく機能するように調整してあります。まずはじめに、sendmail.mc ファイルの例を示しますので、drac を用いた sendmail.cf ファイルを作るために sendmail.mc を手動調整する箇所が分かるでしょう。

EXAMPLE MC FILE:
OSTYPE(`linux')dnl
define(`confAUTO_REBUILD')dnl
define(`confCONNECTION_RATE_THROTTLE',40)dnl
define(`confMAX_HOP',30)dnl
define(`confMAX_MESSAGE_SIZE',10000000)dnl
define(`confPRIVACY_FLAGS',`authwarnings,needmailhelo')dnl
define(`confQUEUE_LA',5)dnl
define(`confREFUSE_LA',10)dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTO_IDENT',0s)dnl
define(`confTO_QUEUEWARN', `12h')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`STATUS_FILE',`/etc/mail/sendmail.st')dnl
define(`ALIAS_FILE',`/etc/mail/aliases')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
MAILER(`smtp')dnl
FEATURE(`local_procmail', `/usr/bin/procmail')dnl
FEATURE(`always_add_domain')dnl
define(`MASQUERADE_NAME',`domain.com.')dnl
FEATURE(`limited_masquerade')dnl
define(`confCW_FILE',` /etc/mail/sendmail.cw')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`redirect')dnl
FEATURE(`virtusertable',` hash -o /etc/mail/virtusertable')dnl
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(dnsbl, `rbl.maps.vix.com', `Rejected - see
http://www.mail-abuse.org/rbl/')dnl
FEATURE(dnsbl, `dul.maps.vix.com', `Dialup - see
http://www.mail-abuse.org/dul/')dnl
FEATURE(dnsbl, `relays.mail-abuse.org', `Open spam relay - see
http://www.mail-abuse.org/rss/')dnl

LOCAL_CONFIG
# dynamic relay authorization control map
Kdrac btree -o /etc/mail/dracd
 sendmail.cf に調整を行うため、手作業で以下の項目を入力します。

 SLocal_check_rcpt の最後では DRAC によって認証できなかったメールを排除する指定です。

# POP/IMAP を許可する直近のクライアント
R$*                     $: $&{client_addr}
R$+                     $: $(drac $1 $: ? $)
R?                      $:
R$+                     $@ RELAYFROM

# それ以外は偽装
R$*                     $#error $@ 5.7.1 $: "550 Relaying denied"
 もし MAPS DUL リストを利用しているのであれば、SBasic_check_relay にダイヤルアップ接続でも中継できるように許可を与える必要があります。
# POP/IMAP を許可する直近のクライアント
R$*                     $: $&{client_addr}
R$+                     $: $(drac $1 $: ? $)
R?                      $:
R$+                     $@ RELAYFROM

# DNS を元にした IP アドレスのスパムリスト rbl.maps.vix.com
R$*                     $: $&{client_addr}
 以上で終わり! 調整を終えたら sendmail を再起動して設定を反映させます。

 Postfix 向けに Jeff Johnson 氏から中継をする設定方法を提供して頂きました。

myhostname = mail.________.com
mydomain = ________.com
mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain,
ns1.$mydomain
relay_domains = $mydestination
smtpd_recipient_restrictions = permit_mynetworks, check_client_access
btree:/etc/mail/dracd, check_relay_domains

*1 ORCA Dial-up User List = ダイヤルアップユーザからのメール送信を制御するもの