PostfixでCentOS7に転送用メールサーバーを構築


目的

・面倒で時間がかかるメール申請をせずに、短時間で開発用のメーリングリストを自由に発行したい
・自メールサーバー内にメールを保存しないで転送したい

構築するメールサーバーの概要

メールサーバーを構築する場合、送信メールサーバー(SMTPサーバー)と受信メールサーバー(POP/IMAPサーバー)の構築が必要となるが、
今回は、メーリングリストにメールを転送する機能だけでいいのでPostfixで送信メールサーバー(SMTPサーバー)のみを構築する。

・ メールサーバーのメールアドレスは、 [email protected](myhost.comはドメイン)
・メールサーバーのホスト名は mail.myhost.com とし、DNS の MX レコードに登録
[email protected]で受信したメールは、全て下記の転送先のメーリングリスト宛に転送
[email protected]>[email protected], [email protected]

サーバー情報

・今回利用するサーバーは他のPJが入っているCentOS7のサーバーを利用
・もらった権限はrootユーザーではないので、ログイン後suでrootユーザーに切り替えてから構築

構築の手順

[1]  DNS の MX レコードを設定
[2]  Postfix をインストール
[3]  Postfix の設定を変更
[4]  エイリアス設定
[5]  ファイアウォール(firewalld)の設定を変更
[6]  メール送信/転送の動作確認

[1]  DNS の MX レコードを設定

  1. メールアドレスのドメインは myhost.com ですが、実際のメールサーバーは mail.myhost.com というサーバー

①myhost.com. IN MX 10 mail.myhost.com.

 この設定はDNS の MX レコードを設定

②mail.myhost.com IN A 10.x.x.xxx

この設定はmail.myhost.com をサーバーのIPアドレスと紐づける A レコードも登録

  1. DNS の MX レコードを設定確認方法

方法1:digでMXレコードを確認

$ dig any xxxxx.jp


XXXXXX.jp. 3600 IN TXT "v=spf1 +ip4:123.123.12.12 include:_spf.google.com ~all"
XXXXXX.jp. 300 IN MX 10 mail.XXXXXX.jp.
XXXXXX.jp. 60 IN A 123.123.12.12
XXXXXX.jp. 86400 IN SOA 01.dnsv.jp. hostmaster.dnsv.jp. 1618993752 3600 900 604800 300

方法2:nslookupでMXレコードを確認

$ nslookup
$ server 10.x.x.xxx
$ set q=MX
$ myhost.com

方法3:MX レコード を確認してくれるサービス
http://mxtoolbox.com/

smtp、dns、mxの設定エラーがないので問題なく設定できたことが分かる。

[2]    Postfix をインストール

CentOS 7 には Postfix がデフォルトでインストールされているはずなので下記のコマンドで確認
$ yum list installed | grep postfix
結果:
postfix.x86_64 2:2.10.1-7.el7 @base

コマンドで何も表示されなかった場合、 下記のコマンドで Postfix をインストール
$ yum install postfix

[3]   Postfix の設定を変更

Postfix 設定の変更は、main.cfの変更(/etc/postfix/main.cf)
1. バックアップ取る

main.cf.org

2. ホスト名を設定

myhostname = mail.myhost.com

3. メールアドレスのアットマーク以降に現れるドメイン名を設定

mydomain = myhost.com

4. メールサーバーから送信されるメールで利用されるドメイン名を設定

myorigin = $mydomain


5. メールを受信するネットワークインターフェースを設定

inet_interfaces = all

6. 送られてきた(受信した)メールのうち、このサーバーで受け取るべきドメインを指定

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


7. メール格納形式をMaildir形式にする

home_mailbox = Maildir/

8. メールサーバーソフト名の隠蔽化

smtpd_banner = $myhostname ESMTP unknown

9. ipv6を無効にする

inet_protocols = ipv4


10. postfix再起動


$ systemctl reload postfix.service


10.自動起動状態設定

$ systemctl is-enabled postfix

[4]   エイリアス設定

  1. バックアップ取る(/etc/postfix/aliases)
    aliases.org
  2. aliases設定をする
    /etc/aliases ファイルの末尾に下記を追加する
    develop: [email protected],[email protected]
  3. /etc/aliasesファイルを変更したら、newaliasesコマンドを実行
    /etc/aliases.db(エイリアスデータベース)を更新すると、Postfixは/etc/aliases.dbを参照して転送を行う。
    設定が反映されると、[email protected]メールを送信した際に、[email protected],[email protected]に転送される

[5]  ファイアウォール(firewalld)の設定を変更

  1. アウォール機能(firewalld)が有効確認
 $systemctl status firewalld

コマンドの実行結果の Active の値が active (runnning) となっていれば、ファイアウォールが有効
2. ファイアウォールが外部に向けて開放しているサービス確認

$ firewall-cmd --list-services --zone=public --permanent
結果:ssh dhcpv6-client samba

3. 外部に対して SMTP のポートを開放

# firewall-cmd --add-service=smtp --zone=public --permanent
結果:success

4. ファイアウォールの設定をリロード

$ firewall-cmd --reload
結果:success

5. ファイアウォールが外部に向けて開放しているサービス確認
```
$ firewall-cmd --list-services --zone=public --permanent
結果:ssh dhcpv6-client samba smtp
smtpが追加されたので25番ポート解放

下記のコマンドでも確認可能
$ firewall-cmd --list-all

6. サービスが動いていることを確認

$systemctl list-unit-files | grep firewalld

結果: firewalld.service enabled


7. firewalldを再起動して反映

$ systemctl restart firewalld


8. Portチェックテスト【外部からのPort開放確認】
http://www.cman.jp/network/support/port.html
ホスト名とポートを入力しチェックすると下記の結果が表示される

ホスト:mail.myhost.com

ポート:25 にアクセスできました
```
結果から25番ポートが解放できたぽい

[6]   メール送信/転送の動作確認

  1. 送信テスト
 下記のコマンドで送信テスト
$ echo "test_root" | mail -s "test_root"  [email protected]  

Postfix のログファイル /var/log/maillog          
$ tail -f /var/log/maillog  

送信されてログも正しく出ているのを確認できた

2.転送テスト

 [email protected]より「エイリアス設定」で設定した下記のメーリングリストアドレスに送信テスト
[email protected]
下記の転送アドレスに問題なく転送されていることを確認
[email protected],[email protected]

下記のログからも正しく転送されていることが確認できる

Postfix のログファイル /var/log/maillog

$tail -f /var/log/maillog

status=sent (250 2.0.0 OK...)
```

参考サイト:
https://weblabo.oscasierra.net/postfix-centos7-install-1/
http://centossrv.com/postfix.shtml