研修でメールサーバを構築しました。

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

サイオステクノロジーの小川です。研修でメールサーバを構築したのでそれについて執筆したいと思います。

今回はSMTP/POP3 over SSLを利用したメールを送受信できるメールサーバをAzure VMで構築しました。

OS環境Cent OS 7.5
使用ソフトウェアバージョン
postfix2.10.1
dovecot2.2.36

また、このメールサーバのMXレコードはDNSサーバに登録済みであるとします。以下は今回の概要図です。

概要図

 SMTPサーバの構築

まずはSMTPサーバを構築するために、postfixをインストールします。

$ sudo yum install postfix

postfixの設定ファイルである/etc/postfix/main.cfを編集していきます。

メールサーバの名前を設定します。

 myhostname = mainmx.example.com

メールを受信するドメインの指定をします。

 Mydomain = example.com

すべての送信元からのメールを受け付ける指定をします。

 inet_interfaces = all

受信アドレスの指定をします。デフォルトの設定に$mydomainを追加します。これにより、メールのループを防ぎます。

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

送信先のアドレス検索に内部ネットワーク内に既に構築したDNSサーバを参照する設定を行います。

 smtp_host_lookup = dns

ここからTLSの設定をしていきます。

smtp_tls_security_level = may

証明書を発行し、そのパスを記載します。

 smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.crt
 smtpd_tls_key_file = /etc/pki/tls/private/postfix.key

TLSの詳細を設定をします。

smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
smtp_tls_loglevel = 1

次に、/etc/postfix/master.confを編集します。

以下をコメントアウトします。

 smtp   inet  n    -    n    -    -    smtpd

SMTP over SSL/TLSポートに関する設定で以下のコメントアウトを外します。

 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をインストールします。

$sudo yum install dovecot

/etc/dovecot/dovecot.confでプロトコルの設定を行います。

 protocols = pop3

次に/etc/dovecot/conf.d配下のファイルを編集していきます。

10-master.confでdovecotのポートを設定します。

 service pop3-login{
     inet_listener pop3{
        port = 0  ←0を指定することで暗号化していないものは受信できないようにしています。
     }
     inet_listener pop3s{
        port = 995
        ssl = yes
     }
 }

10-ssl.confでsslの利用設定をします。

 ssl = required

証明書を発行しパスを指定します。(この時に<をつけ忘れるとエラーが起こります。)

 ssl_cert = </etc/pki/tls/certs/dovecot.crt
 ssl_key = </etc/pki/tls/private/dovecot.key

10-auth.confを編集しプレインテキスト認証を許可します。

 disable_plaintext_auth = no

10-mail.confを編集しMaildirの設定をします。

 Mail_location = maildir.~/Maildir

Dovecotを再起動し、設定を反映します。

これでSMTP over SSL/TLS, POP3 over SSL/TLSを用いたメールサーバができました。

実際にメールの送受信する

Thunderbirdを利用してメールユーザのsenderからreciever宛にメールを送信してみます。

send_mail

reciever側で受信することができました。

recieve

メールの送受信のログを確認してみます。

logl

赤線部分のログで送受信にSMTP,POP3 over SSL/TLSが適用されていることが確認できます。

Azureでメール送信を実運用する場合は、SendGridが必要になります。次のブログを参考にしてください。 https://tech-lab.sios.jp/archives/2401

最後に

研修でwebサーバ、DNSサーバ、メールサーバを構築しましたが、はじめはサーバの構造や周りのサーバの連携の仕組みなどを理解するのが大変でした。そこを理解していないと通信先のIPやプロトコルの指定がうまくいかずにとても苦労しました。しかしこれらのサーバの構築やネットワークの仕組み理解を通して、centosやネットワークについてなどの理解をすることができました。

研修で得た知識をこれから生かせるように業務に励みたいと思います。

アバター画像
About 小川雄大 27 Articles
IDaaSプロジェクトを担当。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

3人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



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

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる