今回はセカンダリメールサーバの簡単作成方法のご紹介です!
セカンダリメールサーバの役割とは
プライマリメールサーバが障害やメンテナンス等でダウンしている時にメールを受信してストックし、プライマが復旧した時に、セカンダリはプライマリにメールを再送することで、問題を軽減したりメンテナンスをしやすくするストレージの役割を担う凄いやつ、普段はぼけーと仕事をしませんがあると便利です。
まずはDNSレコード設定
バリュードメインの無料DNSを利用して下記のように設定します。
1 2 3 4 |
a mail1 150.xxx.yyy.186 a mail2 150.zzz.aaa.172 mx mail1.example.net 10 mx mail2.example.net 20 |
プライマリの優先度は10, セカンダリは20としています。
- ドメイン
example.net - プライマリメールサーバ
mail1.example.net - セカンダリメールサーバ
mail2.example.net
セカンダリメールサーバ設定
設定はこれだけ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /etc/postfix/main.cf #inet_interfaces = all #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost #inet_interfaces = localhost inet_interfaces = all transport_maps = hash:/etc/postfix/transport relay_domains = example.net maximal_queue_lifetime = 20d bounce_queue_lifetime = 20d |
存在しないメールアドレスに対する対処をする場合はもう少し設定が必要です。
1 2 3 |
# vi /etc/postfix/transport example.net smtp:[mail1.example.net] |
1 |
# postmap /etc/postfix/transport |
1 2 |
# postfix check # systemctl postfix restart |
不正中継テスト
悪用されないように確認しよう
http://www.antispam-ufrj.pads.ufrj.br/test-relay.html
大丈夫ですね。
動作テストをしようね
疑似的にプライマリメールサーバに障害を起こして、セカンダリメールサーバが機能するかチェックします。
プライマリ―メールサーバ側作業
Postfixの停止
1 |
# systemctl stop postfix |
メールクライアント側作業
PCのメーラからプライマリサーバにメールを送ります。
セカンダリメールサーバ側作業
メールキューをチェックします。
1 2 3 4 5 6 |
# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 5CEF91214A5 605 Tue Jun 25 22:36:39 root@hoge.com (connect to mail1.yuutest.space[150.xxx.yyy.186]:25: Connection refused) yuu@example.net |
きちんとメールが届いてますね
プライマリ―メールサーバ側作業
Postfixの起動
1 |
# systemctl start postfix |
セカンダリメールサーバ側作業
強制再送
1 |
# postfix flush |
メールキューの確認
1 2 |
# mailq Mail queue is empty |
キューをすべて吐き出していることがわかるね!
プライマリ―メールサーバ側作業
メールログの確認
1 2 3 |
# tail -f /var/log/maillog Jun 26 11:42:50 150-95-129-186 postfix/local[6799]: 9632C1214AB: to=<hoge@example.net>, relay=local, delay=0, delays=0/0/0/0, dsn=2.0.0, status=sent (delivered to maildir) |
受信出来ていることがわかります。
快適なメールライフを送って下さいね!
お疲れ様です。