SSブログ

OpenBSD本家でOpenSMTPDを動かす その2(OpenBSD 6.6R、2019/11/06) [OpenBSD]

ここからはOpenBSD上のOpenSMTPDのお話です。
私はFreeBSDに移植された5.9系から本家最新の6.6系に乗り換えたのですが、前回私が「セキュリティのためなら死ねる」と書いたように、ものの見事に下位互換性をぶった切ってくれています。取りようによっては、粛正ともとれる潔さがありますね。

マニュアル整備もセキュリティ向上の一環、という思想から公式マニュアルが完備されているのは良いのですが、世界的に見て6.6系の情報やサンプルコンフィグが圧倒的に不足しており、かなり茨の道になるのではないかと思います。

文法の変更点として、従来はaccept構文の中にマッチ条件とアクションの双方を記載していた訳ですが、新しい文法ではマッチ条件(match構文)とアクション(action構文)が分離され、異なる複数のマッチ条件から同一のアクションに遷移させることが可能となりました。

うちのメールサーバは自立している純粋なメールサーバという訳ではなく、so-netのメールサーバに金魚のフンのようにぶら下がっています。基本的には、自分自身で保有している独自ドメイン上に無限のメールアドレスを作成し、以下の動作をさせています。
 (1)独自ドメイン上に作成したオリジナルメールアドレス(aliasメールアドレス)の受付
 (2)前述のaliasメールアドレスは、自分の保持している実メールアドレス(yahooやgmailなど)に宛先を置換(書き換え)
 (3)自分の実メールアドレスへの転送は、so-netメールサーバへリレーを依頼

もっと簡単に書くと、独自ドメイン上に作成したダミーメールアドレス宛にメールを送ると、gmail等の実体に変換され、自分に届くというものです。
私のsmtpd.confでは、こんな感じで実現しています。説明がないと困ると思うので/* ~ */でコメントを付記しています。
openbsd# cat /etc/mail/smtpd.conf
#       $OpenBSD: smtpd.conf,v 1.12 2019/07/24 15:31:53 kmos Exp $

# This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.

# my table
table aliases file:/etc/mail/aliases   /* OpenBSDのシステムaliasを読み込み */
table mymail_mydomain db:/etc/mail/my_aliases_mydomain.db   /* 独自ドメインにおけるダミーアドレスと実体のマッピング */
table mymail_recipient db:/etc/mail/my_recipient.db   /* so-netメールサーバにリレーを許可するメールアドレス(=実メールアドレス) */
table mymail_auth db:/etc/mail/my_auth.db   /* リレー先としてso-netメールサーバを利用するためのクレデンシャル情報(認証情報)*/
table mymail_blacklist db:/etc/mail/my_blacklist.db   /* ブラックリスト */


# global config
listen on lo0
listen on vio0
smtp limit max-mails  20   /* この辺はお好みで */
smtp limit max-rcpt   100   /* この辺はお好みで */
smtp max-message-size 10M   /* この辺はお好みで */


# my action
action "act_local" mbox alias <aliases>   /* ローカルへの配送 */
action "act_aliases" expand-only alias <mymail_mydomain>   /* aliasメールアドレスと実体をマッピングさせるだけの処理 */
action "act_relay" relay host smtp+tls://so-net@mail.so-net.ne.jp:587 auth <mymail_auth>   /* so-netメールサーバへのリレー */


# my match
# match from local !for local reject   /* aliasメールアドレスを実体にマッピングさせるとfrom localとして再評価されるため、これが存在するとリレー処理が失敗する */
match from src <mymail_blacklist> for any reject   /* ブラックリストに該当する送信元は拒否 */
match from local for local action "act_local"   /* ローカルへの配送用 */
match from any for domain "mydomain.com" action "act_aliases"   /* 独自ドメインのダミーアドレスを受理するための条件 */
match from local for any rcpt-to <mymail_recipient> action "act_relay"   /* 実体メールをso-netにリレーさせるための条件 */





タグ:OpenSMTPD
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。