Hatena::ブログ(Diary)

fuzzy Weblog@hatena (更新終了) RSSフィード Twitter

2011-08-14

メモ: 自宅サーバー(Ubuntu)のPostfix設定方法(OP25BSMTP-AUTH、送信元ドメイン確認対応)

自宅でUbuntuを動かしているとき、cronで定期的に処理を実行した結果をGmail等で受け取れると便利です。そこで、自分自身で送信するメールをプロバイダーに送信する設定を行うことにします(外部からのメールの中継は行いません)。


現在、日本のプロバイダー(ISP)の多くは個人向けの接続サービスではメールの配送に制限があります。そこで、OP25B対策とSMTP-AUTH対応、送信元ドメイン確認対策が必要です。


必要な手順のポイントは次のページにも書かれています。


Ubuntu Documentation > Ubuntu 11.04 > Ubuntu Server Guide > Email Services > Postfix

https://help.ubuntu.com/11.04/serverguide/C/postfix.html


Postfixでのリレー設定方法

http://www.uetyi.mydns.jp/wordpress/postfix-setting/entry-456.html


今回行った手順は次のとおりです。

1. Postfixdovecotインストールします

sudo apt-get install postfix
(Enter)
サテライトシステム ←今回はリレー方式で運用するため
www2.YOUR.DOMAIN ←このサーバードメイン名(FQDN)を指定※
(空) ←SMTPリレーホストは後で指定するので空にします

sudo apt-get install dovecot-common

サーバー用のドメイン名がない場合は、接続サービスのプロバイダーのドメインを利用することになるでしょう。

2. postfixの設定を行います

postfixの設定ファイル /etc/postfix/main.cf を編集します。

1行目がOP25B対策、2-4行目がSMTP-AUTH対応、(5-)6行目が送信元ドメイン確認対策です。

(/etc/postfix/main.cf を編集するか、最後に追加する)

relayhost = [smtp.XXXX.XXX.XX.jp]:587 ←接続サービスのプロバイダーのSMTPサーバーを指定します
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
sender_canonical_maps = hash:/etc/postfix/sender_canonical
SMTP-AUTH対応のため、SMTP認証情報ファイルを作成します。
sudo echo [smtp.XXXX.XXX.XX.jp]:587 USER@XXXX.XXX.XX.jp:PASSWORD > /etc/postfix/authinfo ←接続サービスのプロバイダーのSMTPサーバー、接続ユーザー名、接続パスワードを指定します
sudo chmod 604 /etc/postfix/authinfo
sudo postmap /etc/postfix/authinfo
送信元ドメイン確認対応のため、送信元アドレスの書き換えを設定します。

まず、デフォルトの送信元アドレスを確認します。

この前の設定よりホスト名が www2.YOUR.DOMAIN で、またこのサーバーの一般ユーザーが USER の場合、

  • root 権限で実行された cron → 送信元「root@www2.YOUR.DOMAIN」
  • USER 権限で実行された cron → 送信元「USER@www2.YOUR.DOMAIN」

となります。

プロバイダーの送信元ドメイン確認にはおそらく何種類かのレベルがあるのですが、確実な対応は「メールを受け取れるアドレス」を送信元にすることです。

例えば、独自ドメイン YOUR.DOMAIN を持っているとき、

  • USER@YOUR.DOMAIN はメール受信できる
  • USER@www2.YOUR.DOMAIN はメール受信できない

ならば、送信元が「USER@www2.YOUR.DOMAIN」の場合に受信拒否されます。

さらに、USER@YOUR.DOMAIN がメール受信できるとき、

ならば、送信元が「USER2@www2.YOUR.DOMAIN」の場合に受信拒否される場合があります。

そこで、送信元アドレスをメール受信可能なアドレスに書き換えます。

  • root@www2.YOUR.DOMAIN → USER@YOUR.DOMAIN
  • USER@www2.YOUR.DOMAIN → USER@YOUR.DOMAIN
(/etc/postfix/sender_canonical ファイルを作成して次の内容を書く。

root@www2.YOUR.DOMAIN   USER@YOUR.DOMAIN
USER@www2.YOUR.DOMAIN   USER@YOUR.DOMAIN
@www2.YOUR.DOMAIN      @YOUR.DOMAIN

送信元ドメイン確認対応ではありませんが、ここで同様に受信メールアドレスも書き換えます。ここでは実際に受信するメールアドレスを指定します。

(/etc/postfix/recipient_canonical)

root@www2.YOUR.DOMAIN USER@gmail.com
USER@www2.YOUR.DOMAIN USER@gmail.com

独自ドメインを持っていない場合は、利用可能なプロバイダーのアドレスを利用することになるでしょう。

設定ファイルを作成したら、postmap コマンドで変換します。

sudo postmap /etc/postfix/recipient_canonical
sudo postmap /etc/postfix/sender_canonical

また、ユーザーのメール転送先を指定します。

echo USER@gmail.com > /home/USER/.forward
sudo newaliases

すべての設定が完了したら、postfix再起動して設定を反映させます。

sudo /etc/init.d/postfix restart

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/fuzzy2/20110814/p7
リンク元