
サイオステクノロジーの小川です。研修でメールサーバを構築したのでそれについて執筆したいと思います。
今回はSMTP/POP3 over SSLを利用したメールを送受信できるメールサーバをAzure VMで構築しました。
OS環境 | Cent OS 7.5 |
使用ソフトウェア | バージョン |
postfix | 2.10.1 |
dovecot | 2.2.36 |
また、このメールサーバのMXレコードはDNSサーバに登録済みであるとします。以下は今回の概要図です。
SMTPサーバの構築
まずはSMTPサーバを構築するために、postfixをインストールします。
1 |
$ sudo yum install postfix |
postfixの設定ファイルである/etc/postfix/main.cfを編集していきます。
メールサーバの名前を設定します。
1 |
myhostname = mainmx.example.com |
メールを受信するドメインの指定をします。
1 |
Mydomain = example.com |
すべての送信元からのメールを受け付ける指定をします。
1 |
inet_interfaces = all |
受信アドレスの指定をします。デフォルトの設定に$mydomainを追加します。これにより、メールのループを防ぎます。
1 |
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain |
送信先のアドレス検索に内部ネットワーク内に既に構築したDNSサーバを参照する設定を行います。
1 |
smtp_host_lookup = dns |
ここからTLSの設定をしていきます。
1 |
smtp_tls_security_level = may |
証明書を発行し、そのパスを記載します。
1 2 |
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.crt smtpd_tls_key_file = /etc/pki/tls/private/postfix.key |
TLSの詳細を設定をします。
1 2 3 4 |
smtpd_tls_session_cache_timeout = 3600s smtpd_tls_received_header = yes smtpd_tls_loglevel = 1 smtp_tls_loglevel = 1 |
次に、/etc/postfix/master.confを編集します。
以下をコメントアウトします。
1 |
smtp inet n - n - - smtpd |
SMTP over SSL/TLSポートに関する設定で以下のコメントアウトを外します。
1 2 3 4 |
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject |
postfixを再起動して設定を反映させます。
pop3サーバの構築
今回はメールの読み出しを行うサーバとしてPOPサーバを利用します。
dovecotをインストールします。
1 |
$sudo yum install dovecot |
/etc/dovecot/dovecot.confでプロトコルの設定を行います。
1 |
protocols = pop3 |
次に/etc/dovecot/conf.d配下のファイルを編集していきます。
10-master.confでdovecotのポートを設定します。
1 2 3 4 5 6 7 8 9 |
service pop3-login{ inet_listener pop3{ port = 0 ←0を指定することで暗号化していないものは受信できないようにしています。 } inet_listener pop3s{ port = 995 ssl = yes } } |
10-ssl.confでsslの利用設定をします。
1 |
ssl = required |
証明書を発行しパスを指定します。(この時に<をつけ忘れるとエラーが起こります。)
1 2 |
ssl_cert = </etc/pki/tls/certs/dovecot.crt ssl_key = </etc/pki/tls/private/dovecot.key |
10-auth.confを編集しプレインテキスト認証を許可します。
1 |
disable_plaintext_auth = no |
10-mail.confを編集しMaildirの設定をします。
1 |
Mail_location = maildir.~/Maildir |
Dovecotを再起動し、設定を反映します。
これでSMTP over SSL/TLS, POP3 over SSL/TLSを用いたメールサーバができました。
実際にメールの送受信する
Thunderbirdを利用してメールユーザのsenderからreciever宛にメールを送信してみます。
reciever側で受信することができました。
メールの送受信のログを確認してみます。
赤線部分のログで送受信にSMTP,POP3 over SSL/TLSが適用されていることが確認できます。
Azureでメール送信を実運用する場合は、SendGridが必要になります。次のブログを参考にしてください。 https://tech-lab.sios.jp/archives/2401
最後に
研修でwebサーバ、DNSサーバ、メールサーバを構築しましたが、はじめはサーバの構造や周りのサーバの連携の仕組みなどを理解するのが大変でした。そこを理解していないと通信先のIPやプロトコルの指定がうまくいかずにとても苦労しました。しかしこれらのサーバの構築やネットワークの仕組み理解を通して、centosやネットワークについてなどの理解をすることができました。
研修で得た知識をこれから生かせるように業務に励みたいと思います。

>> 雑誌等の執筆依頼を受付しております。
ご希望の方はお気軽にお問い合わせください!
コメント投稿