1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-08-12

目的

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

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

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

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

サーバー情報

・今回利用するサーバーは他の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
  1. メールを受信するネットワークインターフェースを設定
    inet_interfaces = all
  2. 送られてきた(受信した)メールのうち、このサーバーで受け取るべきドメインを指定
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  1. メール格納形式をMaildir形式にする
    home_mailbox = Maildir/
  2. メールサーバーソフト名の隠蔽化
smtpd_banner = $myhostname ESMTP unknown
  1. ipv6を無効にする
inet_protocols = ipv4
  1. postfix再起動
$ systemctl reload postfix.service

10.自動起動状態設定

$ systemctl is-enabled postfix

[4]   エイリアス設定

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

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

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

スクリーンショット 2020-08-11 13.24.05.png

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

 $ firewall-cmd --list-services --zone=public --permanent
 結果:ssh dhcpv6-client samba
  1. 外部に対して SMTP のポートを開放
# firewall-cmd --add-service=smtp --zone=public --permanent
結果:success
  1. ファイアウォールの設定をリロード
$ firewall-cmd --reload	
結果:success	
  1. ファイアウォールが外部に向けて開放しているサービス確認
 $ firewall-cmd --list-services --zone=public --permanent
 結果:ssh dhcpv6-client samba smtp
 smtpが追加されたので25番ポート解放
 
 下記のコマンドでも確認可能
 $ firewall-cmd --list-all
  1. サービスが動いていることを確認
$systemctl list-unit-files | grep firewalld			
結果:	firewalld.service                             enabled		
  1. firewalldを再起動して反映
$ systemctl restart firewalld	
  1. Portチェックテスト【外部からのPort開放確認】
    http://www.cman.jp/network/support/port.html
    ホスト名とポートを入力しチェックすると下記の結果が表示される
ホスト:mail.myhost.com		
ポート:25 にアクセスできました

結果から25番ポートが解放できたぽい

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

  1. 送信テスト
下記のコマンドで送信テスト
$ echo "test_root" | mail -s "test_root"  tester@gmail.com  

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

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

2.転送テスト

tester@gmail.comより「エイリアス設定」で設定した下記のメーリングリストアドレスに送信テスト
develop@myhost.com
下記の転送アドレスに問題なく転送されていることを確認
develop_member1@coname.com,develop_member2@coname.com

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

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


1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?