ServersMan@VPS(CentOS7) メールサーバの設定方法(SMTP:Postfix)

ServersMan@VPS(CentOS7) メールサーバの設定方法(SMTP:Postfix)

ServersMan@VPS(CentOS7) メールサーバの設定方法(SMTP:Postfix)

DTI ServersMan@VPS(CentOS7)のメールサーバの設定方法(SMTP:Postfix)です。
Postfixとは、メールサーバ(MTA、メール転送エージェント)です。CentOSでは
sendmailが標準ですが、postfixの方を使用する事が多々有ります。


root宛のメールの転送方法や、main.cfの設定、ログの見方については
以下のページに記載しました。


本ページの目次



postfixの設定


■postfixのインストール

yum install postfix


■設定ファイル(main.cf)の編集

vi /etc/postfix/main.cf


編集箇所は以下です。mynetworksにて、このサーバ自体からしか
外部へメール送信出来ないようにしています。


postconf -n

home_mailbox = Maildir/


inet_interfaces = all


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


mydomain = example.com


myhostname = mail.example.com


mynetworks = 127.0.0.0/8


myorigin = $mydomain


root宛にメールを送信しtail -f /var/log/maillog
でログを見ていると「mail for ドメイン名 loops back to myself」
となってしまいました。そのため、「mydestination」項目に
「$mydomain」を入れると正常に送信できました。


postfixの起動


■sendmailの停止

systemctl stop sendmail


■sendmailの自動起動停止

systemctl disable sendmail


■使用するMTA(メールトランスファーエージェント)の変更

alternatives --config mta

There are 2 programs which provide 'mta'.


Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix


Enter to keep the current selection[+], or type selection number: 2


■postfixを起動します。

systemctl start postfix


■postfixを自動起動と指定します。

systemctl enable postfix


※自動起動と指定されたかの確認は

systemctl is-enabled postfix


■ファイアウォール(firewalldやiptables)でのtcp/25の開放

ファイアウォールでtcp/25を開けます。


・firewalldの場合

■ゾーンにサービスを追加する
firewall-cmd --zone=ゾーン名(publicやdmzなど) --add-service=smtp --permanent


※またはゾーンにポートを追加する

firewall-cmd --zone=ゾーン名(publicやdmzなど) --add-port=25/tcp --permanent


■動的に反映する
firewall-cmd --reload


■全ゾーンの設定値の確認
firewall-cmd --list-all-zones


・iptablesの場合

■iptablesを編集します。
vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT


■iptablesサービスを再起動します。
systemctl restart iptables

または

service iptables restart




オープンリレーになっていないかの確認


第三者中継チェック RBL.JPにてチェックします。
全てのテストにおいて「relay NOT accepted!!」と表示されました。




メール送受信確認


■mailコマンドで送信する場合


echo 本文 | mail -s 件名 送信先メールアドレス(このメールサーバ宛のメールアドレス)


この場合は送信時には、このメールサーバを使わない形(メール受信のみの確認)になりますかね。



■telnetで送信する場合

この場合は、このメールサーバを送信サーバとして利用し、外部のメールサーバのメールアドレスへ
送信、も出来ますね。


[root@dti-vps-srv94 ~]# telnet localhost 25

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix

helo 任意の文字列(自分のドメイン名など)

250 mail.example.com

mail from: 送信元メールアドレス

250 2.1.0 Ok

rcpt to: 送信先メールアドレス

250 2.1.5 Ok

data

354 End data with .

from: 任意の文字列(送信元メールアドレス)
subject: 件名
本文
.

250 2.0.0 Ok: queued as ***

quit



正しく送信できました。
その後、POP/IMAPメールサーバをインストールして、インターネット側のメールアドレス
(Yahoo!のフリーメールアドレスなど)とのメール送受信が出来ることを確認しましょう。



メールのログ確認


■パケットで見る

メール受信(SMTPでのセッション接続)が
行われるかどうかはパケットで見る

tcpdump -X port 25


■メールのログで見る
/var/log/maillog


■systemdのログで見る

journalctl -u postfix


journalctl -r

※新しい順に表示




↓現在、この467円のServersManのVPSを使用しています。
サーバを色々操作できてこの安さは凄いと思います。
色々なサーバ(メール、DNS等)を作りましたが、結構快適です。