以前の記事がCentOS4.4環境という古い情報だったので、CentOS7環境での設定方法に情報を更新しました。
以前の記事はこちらになります。
イメージ図
今回構築しようとしているメールサーバ(mail.server-memo.net)の構成イメージ図です。
SMTPサーバ(postfix)とIMAP/POPサーバ(dovecot)を一つにまとめた、シンプルで基本的な構成となっています。
ルーターまたはファイアウォールに割り当てられているグローバルIPをDNSに登録して、そこの25番(SMTP)ポート宛にきた通信を内部のネットワークにある「mail.server-memo.net」にポートフォワーディングさせるという構成をイメージしています。
DNSへの名前登録
DNSの設定が終わっていることが、「postfix」を動かす前の前提条件となりますので、下記レコードの設定が完了していることを確認してください。
- Aレコード
- MXレコード
- PTR(逆引き)レコード
PTR(逆引き)レコードが設定できなくてもメールの送受信は可能ですが、スパム対策の一環としてPTR(逆引き)レコードに登録されているサーバ名と、メールサーバの名前(Aレコード)が一致していない場合スパムと判定する設定を行っているメールサーバが一部にありますので注意してください。
postfix設定
CentOS7の環境ではデフォルトのメールサーバとして「postfix」が採用されているため、特にインストール作業は必要ありません。
ですので、今回は設定方法についてのみ説明をしていきます。
設定ファイル
「/etc/postfix/main.cf」が「postfix」の設定ファイルとなりますので、 設定ファイルのバックアップを行ってから編集を行っていきます。
# cd /etc/postfix # cp -p main.cf main.cf_yyyymmdd # vi main.cf
設定項目
「postfix」には数多くの設定項目がありますが、今回はとりあえず動作させるために必要な基本の設定項目を説明していきます。
設定項目 | 説明 |
---|---|
myhostname | ホスト名をFQDN形式(ホスト名+ドメイン名)で設定 |
mydomain | ドメイン名を設定 |
myorigin | ローカルから送信されたメールのメールアドレス@以下の内容を指定 |
inet_interfaces | メールの送受信を行うインターフェイスを指定 |
mydestination | ローカルユーザに配信するメールアドレスを設定 |
mynetworks | メール送信を許可するクライアントのIP情報を設定 |
home_mailbox | 受信メールのデータ形式を指定 mbox形式ならばMailbox Maildir形式ならばMaildir/を指定 |
設定例
今回は以下のような設定を行っていきます。
設定項目 | 設定箇所 | 設定内容 |
---|---|---|
ホスト名 | myhostname | mail.server-memo.net |
ドメイン | mydomain | server-memo.net |
メールアドレスの@以下ドメイン名 | myorigin | $mydomain (mydomainで設定した値) |
メール受付NIC | inet_interfaces | all (すべてのNICでメール受付可能とする) |
ローカル配送するメール指定 | mydestination | 「localhost.server-memo.net」「localhost」「server-memo.net」 |
メール送信許可ネットワーク | mynetworks | 「192.168.1.0/24」と「127.0.0.1/8(ローカルホスト)」ネットワークに属しているクラインアントからはメール送信を無条件許可 |
ローカルユーザに配送したメールデータの保存形式 | home_mailbox | Maildir/ (Maildir形式) |
設定変更部分抜粋
「main.cf」から上記の設定を行った部分を抜粋しました。
myhostname = mail.server-memo.net mydomain = server-memo.net myorigin = $mydomain inet_interfaces = all mydestination = localhost.$mydomain, localhost, $mydomain mynetworks = 192.168.1.0/24, 127.0.0.0/8 home_mailbox = Maildir/
設定反映
設定が完了しましたら、「postfix」を再起動して設定を反映させます。
# systemctl restart postfix
dovecot設定
「pop/imap」サーバとして「dovecot」をインストール・設定していきます。
インストール
「yum」を使用して「dovecot」をインストールします。
# yum install dovecot
設定
とりあえずPOPサーバとして動作させるために最低限、下記3ファイルを編集する必要があります。
- /etc/dovecot/conf.d/10-auth.conf
- /etc/dovecot/conf.d/10-mail.conf
- /etc/dovecot/conf.d/10-ssl.conf
なお、今回はSSLには対応させていません。
10-auth.conf
「SSL」を使用せず「POP」(110番ポート)で接続する場合は、暗号化されていない認証(plaintxt)を許可する設定を行う必要があります。
# cd /etc/dovecot/conf.d # cp -p 10-auth.conf 10-auth.conf_yyyymmdd # vi 10-auth.conf
変更前
#disable_plaintext_auth = yes
変更後
disable_plaintext_auth = no
10-mail.conf
postfixから配送されたメールの格納場所と保存形式を指定します。
# cp -p 10-mail.conf 10-mail.conf_yyyymmdd # vi 10-mail.conf
今回は「postfix」で「home_mailbox = Maildir/」と設定してあるので、「mail_location」でメールデータの形式を「maildir」格納場所を「~/Maildir」(各ユーザのホームディレクトリにあるMaildirディレクトリ)を指定します。
変更前
#mail_location =
変更後
mail_location = maildir:~/Maildir
10-ssl.conf
「dovecot」はデフォルトで「SSL」を使用するように設定されていますが、110番ポートで接続できるようにして「SSL」を使用しないように設定します。
# cp -p 10-ssl.conf 10-ssl.conf_yyyymmdd # vi 10-ssl.conf
今回は「SSL」での通信は行わないという設定を行っていきます。
変更前
ssl = required
変更後
ssl = no
起動
設定が完了しましたら「dovecot」を起動させます。
# systemctl start dovecot
自動起動設定
自動起動の設定も忘れずに行っておきます。
# systemctl enable dovecot
動作確認
「postfix」と「dovecot」の設定反映が完了しましたら、次に動作試験を行っていきます。
メール送受信試験
メーラーの設定を行って、メールの送受信試験を行ってください。
メーラーが用意できない場合は、telnetを使用して動作試験を行うことが出来ます。
メール送信試験(telnetでの実施方法)
telnetで25番(smtp)ポートを指定して接続してあげると「postfix」に接続することができるので、「SMTP」コマンドを実行して、メール送信試験を行います。
- 「telnet メールサーバ 25」 25番ポートを指定してtelnetで接続
- 「HELO メールサーバ名」
- 「MAIL FROM: 差出メールアドレス」
- 「RCPT TO: 送信先メールアドレス」
- 「DATA」 メール本文を入力
「DATA」と入力したあとに「Enter」キーを押下してから、メール本文を入力します。
入力が終わったら「Enter」キーを押下して改行後「.」を入力して「Enter」キーを押下することでメールが送信されます。
メールが送信されたら「quit」と入力をして切断します。
実行例
# telnet mail.server-memo.net 25 Trying xxx.xxx.xxx.xxx... Connected to mail.server-memo.net. Escape character is '^]'. 220 mail.server-memo.net ESMTP Postfix HELO mail.server-memo.net 250 mail.server-memo.net MAIL FROM: test@server-memo.net 250 2.1.0 Ok RCPT TO: user@example.com 250 2.1.5 Ok DATA 354 End data with. Test mail from test@server-memo.net . 250 2.0.0 Ok: queued as A5205C3127A2 quit 221 2.0.0 Bye Connection closed by foreign host.
メールPOP受信試験(telnetでの実施方法)
メールの受信試験も「telnet メールサーバ 110」で接続することで可能ですので、そちらの方法も説明させていただきます。
- 「telnet メールサーバ 110」で110番ポートを指定してtelnetで接続
- 「user ユーザ名」メールを受信するユーザ名を入力
- 「pass パスワード」パスワードを入力
- 「list」受信したメールを番号で表示
- 「retr メール番号」表示したいメールの番号を入力
- 「quit」切断する場合に入力
実行例
# telnet mail.server-memo.net 110 Trying xxx.xxx.xxx.xxx... Connected to mail.server-memo.net. Escape character is '^]'. +OK Dovecot ready. user test +OK pass xxxxxxxxxx +OK Logged in. list +OK 917 messages: 1 839 2 839 3 839 4 839 5 839 6 839 7 839 8 839 9 839 10 839 . retr 1 +OK 839 octets ##### メールが表示されます ##### quit +OK Logging out. Connection closed by foreign host.
不正中継試験
メールの送受信が問題なくできることが確認できたら、次に不正中継されないかどうかの試験を行いましょう。
試験には下記のサイトを使用すると良いでしょう。
http://www.rbl.jp/svcheck.php
不正中継の試験も問題がなければ、「postfix」と「dovecot」の基本的な設定は完了となります。
コメント