HowTos/SMTP Relay
出典: ScalixWikiJP
Scalix Wiki -> How-Tos -> HowTos/SMTP Relayの設定
目次 |
設定ファイル
SMTP Relayの設定は /var/opt/scalix/XX/s/sys/smtpd.cfg ファイルを編集することのより行うことができます。
設定ファイルの構成は次のようになっています。
全体設定 Catch-allの設定 中継の設定 [SUBMIT] Submission(投稿)の設定 [LMTP] LMTPの設定
編集して保存したら、次のコマンドを実行してSMTP Relayサービスを再起動させてください。
# omoff -d0 smtpd && omon smtpd
全体設定
EXTENSIONS
EHLOの応答で出力するESMTPの機能を記述します。
EXTENSIONS=AUTH,DSN,8BITMIME
DOMAIN_NAME
ローカルのホストのFQDNを記述します(省略可能)。
LOCAL_NAMES
DOMAIN_NAMEの別名を記述します(省略可能)。
MAX_HOP_COUNT
送られてきたメッセージに記述されているReceived:ヘッダの数がこの数を超えていたら中継を拒否します。 デフォルト値は0です。正の値でない場合は無限として解釈されます。 このデフォルト値はループの検出が中継では行われないことを意味します。 しかし、ループの検出はsendmailで行われるでしょう。
GREETING
接続時の220応答の際に表示するグリーティングの文字列です。 次の変数を使うことができます。
- %F - FQDN
- %p - プロトコル
- %N - プログラム名
- %V - バージョン
- %D - 日付
GREETING=%F %P %D
LISTEN
リッスンするIPアドレスとポート番号をコンマ区切りで記述します。
LISTEN=mail.example.com:25,10.100.100.1:smtp
SUBMIT
投稿ポート用のSubmissionリスナーを有効にします。 設定は[SUBMIT]セクションで行います。
SUBMIT=ON
LMTP
LMTPリスナーを有効にします。 設定は[LMTP]セクションで行います。
LMTP=ON
SMTPFILTER
SMTP Relayがメッセージを受け取った後に、ScalixのInternet Mail Gatewayにメッセージを渡さずに、sendmailにメッセージを渡します。Scalixのメールアドレス宛であればsendmailから再度SMTP Relayに再投入され、Scalixのメールボックスに配送されます。
sendmailの機能(MILTERや/etc/aliases)を使いたい場合にこの機能を有効にします。
SMTPFILTER=TRUE
なお、/etc/aliasesを使いたい場合にはsendmailのローカル配送の設定(local-host-name)を行ってください。
MAX_MESSAGE_SIZE
最大メッセージサイズをバイトで指定できます。 指定したサイズを超えると552エラーで拒否します。 0を指定すると無制限になります。デフォルトは0です。
MAX_MESSAGE_SIZE=10000000
Catch-all受信者
Catch-all受信者はあて先不明のメールを配送しない代わりに捕らえるために使います。 複数行のCATCH行を記述することができます。 次の形式で記述します。
CATCH PATTERN RECIPIENT
PATTERNは次の形式です。
- user* - userで始まるあて先不明のメールアドレス
- @example.org - example.orgのあて先不明のメールアドレス
- user*@example.org - example.orgにおけるuserで始まるあて先不明のメールアドレス
RECIPIENTはメールの転送先のメールアドレスです。これはローカルのメールアドレスでもリモートのメールアドレスでもよいです。ただし、リモートの場合は中継できることが条件となります。
中継の設定
次の形式で記述します。
イベント アクション パターン パターン ...
SMTP Relayはこのファイルに記述した順番でイベントやパターンに一致したかを調べます。 最初に一致したアクションが行われます。
イベント
AUTH_SUCCESS
認証に成功している。
AUTH_MISMATCH
認証に成功しているが、送信者名が認証に使われたログイン名と一致しない。
ANONYMOUS
認証無し、あるいは認証に失敗した後にメッセージが投稿されている。
SUBMIT
パターンに一致したホストからメッセージが投稿されている。
RELAY
SMTP Relayでメッセージを中継している。
ORIGINATOR
メールアドレスがパターンに一致しているユーザからメッセージが投稿されている。
RECIPIENT
メールアドレスがパターンに一致しているユーザ宛のメッセージが投稿されている。
アクション
Accept
メッセージを無条件に受け取り、正常処理する。
Defer
メッセージを400コードの一時エラーで拒否する。
Discard
メッセージは受け取るが、破棄する。
Header
メッセージを受け取るが、追加のヘッダを挿入する。
Reject
メッセージを500コードで拒否する。
"Log_"を追加したアクションで始まる場合は、そのアクションはSMTP Relayのログファイルに記録されます。
パターン
ホスト名のパターン
- IPアドレス。例: 123.234.132.231
- IP/サブネットマスク。例: 123.234.200.0/255.255.240.0
- ホスト名。例: bert.example.org
- ドメイン名の一部。例: .spammer.net
- IPアドレスの一部。例: 123.234.
- ALL。キーワードALLは全てのホストに一致する。
- LOCAL。キーワードLOCALは"."を含まない全てのホストに一致する。
メールアドレスのパターン
ORIGINATOR と RECIPIENT で利用されます。"*"はワイルドカードとして使えます。
*@*.spam.example.org
DNSBLパターン
DNSブラックリストで使用するSUBMIT EVENTで使います。 DNSBLについては http://en.wikipedia.org/wiki/DNSBL を見てください。
- DNSBL,host,reply 例: DNSBL,bl.spamcop.net,ALL
初期設定例
中継の設定に関しては次のような設定がデフォルトで行われています。
# NB Authenticated RELAYs are always allowed RELAY accept 127.0.0.1 RELAY accept .example.org RELAY Log_Reject ALL # extra rules added to prevent open relay usage RECIPIENT Log_Reject *@*@* RECIPIENT Log_Reject *%* RECIPIENT Log_Reject *!* RECIPIENT Log_Reject *#*@*
SUBMITセクション
SUBMIT=ONで有効になります。
デフォルトでは次の設定が記述されています。
[SUBMIT] #LISTEN=localhost:587 # Reject all anonymous connections ANONYMOUS Log_Reject ALL
デフォルトでは587番ポートにバインドされています。
LMTPセクション
LMTP=ONで有効になります。
デフォルトでは次の設定が記述されています。
[LMTP] LISTEN=localhost:24 # Use the following line to listen on a unix domain socket #LISTEN=~/tmp/lmtp.unix
