メールサーバ(Postfix)を外部公開する

 Postfixを外部公開してメールの送受信が外部と出きるようにします。私の家は、プロバイダーがOP25B対策をしていたのでサブミッションポート(587番)で受信します。OP25B対策についてはこちらのサイトを見てください。

1. 設定をする前に、ポートの開放
 設定をする前に、ポートの開放をします。サーバーのファイアーウォールで、25番と587番を開放します。ルーター側でも同様に25番と587番を開放します。

2. Postfixの設定
ドメイン名 test.jp
ホスト名+ドメイン名 mail.test.jp
として設定していきます。
[root@localhost ~]# vi /etc/postfix/main.cf

「main.cf」変更箇所

ホスト名の設定
#myhostname = virtur.domain.tld

myhostname = test.jp

ホスト名+ドメイン名の設定
# mydomain = domain.tld

mydomain = mail.test.jp

@マーク以下の文字列の指定。今回は、「ドメイン名」に設定
# myorigin = $myhostname

myorigin = $myhostname

メールを受信するインターフェイスの設定
# inet_interfaces = all
inet_interfaces = localhost

inet_interfaces = all
# inet_interfaces = localhost

受信したメールを拒否する設定
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

受信したメールがこのマシーンに登録されていない場合、拒否する設定
# local_recipient_maps = unix:passwd.byname $alias_maps

local_recipient_maps = unix:passwd.byname $alias_maps

メール格納する形式の設定
# home_mailbox =

home_mailbox = Maildir/

設定の反映
[root@localhost ~]# postalias /etc/aliases
[root@localhost ~]# /etc/rc.d/init.d/postfix restart

3. SMTP認証をlinuxユーザーで行う
smtpd.confファイルを作成するのだが、環境によって作成する場所が変わるので注意して下さい。私の場合は下記の様にしました。
[root@localhost ~]# vi /usr/lib/sasl2/smtpd.conf (←32bit)
[root@localhost ~]# vi /usr/lib64/sasl2/smtpd.conf (←64bit)

「smtpd.conf」の作成内容

pwcheck_method: saslauthd
mech_list: plain login

4. メールを保管するデレクトリーの作成
 送信するユーザーに対して、メールを保管するディレクトリーを作成する。
[root@localhost ~]# mkdir -p /home/ユーザー/Maildir/{cur,tmp,new}
[root@localhost ~]# chmod -R 700 /home/ユーザー/Maildir
[root@localhost ~]# chown -R ユーザー:グループ /home/ユーザー/Maildir

5. OP25B対策とサブミッションポートの準備
 プロバイダーがOP25B対策をしている場合に設定してください。
・587番のポートでメールを送信する設定
[root@localhost ~]# vi /etc/postfix/main.cf

「main.cf」変更箇所

#relayhost = [mailserver.isp.tld]
#relayhost = [mailserver.isp.tld]:587 (←ポート番号の指定)

relayhost = [プロバイダーのドメイン名に変更]

最後に追記
smtp_sasl_password_maps = hash:/etc/postfix/isp_account

[root@localhost ~]# vi /etc/postfix/isp_account

「isp_account」ファイルの作成

以下の形式で記入
プロバイダーのドメイン名 ユーザー名:パスワード

[root@localhost ~]# chmod 600 /etc/postfix/isp_account
[root@localhost ~]# postmap /etc/postfix/isp_account
[root@localhost ~]# postfix reload

・587番のポートでメールを受信する設定(サブミッションポートの準備)
[root@localhost ~]# vi /etc/postfix/master.cf

「master.cf」変更箇所

#submission inet n – n – – smtpd

submission inet n – n – – smtpd

 以上の設定が完了したら、Postfixを再起動して、メールを送ってみよう。送信されたメールは、以下のフォルダーに格納されています。
[root@localhost ~]# ls -la /home/ユーザー/Maildir/new/

エラーの場合は、ログを確認してエラーを修復しましよう。
[root@localhost ~]# tail -n 50 /var/log/maillog

(失敗談 
 初めて外部公開したときは、ポートの開け忘れ、IPアドレスの設定ミス、メールのフォルダーのパーミッションの設定忘れなど、メールが受信できるまで大変苦労しました。今、現在も勉強中です。一旦公開し、運用を開始したサーバーの変更は困難なので、できれば運用する前にいろいろ触ってみることをお勧めします。

Be the first to comment on "メールサーバ(Postfix)を外部公開する"

Leave a comment