かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  vol.22 WSL 2(Ubuntu)に、構成済みメール環境を組み込む(後編)

 

 

vol.22 WSL 2(Ubuntu)に、構成済みメール環境を組み込む(後編)

2024年06月27日配信
2024年07月12日更新
執筆者:山内 和朗

 前回(vol.21 前編)に続き、WSL 2上に簡単に導入できるクローズドなメール送受信環境、「Ubuntu_mailenv.tar」の作り方を紹介します。前回は、ベースとなるLinuxディストリビューション「Ubuntu」のインストールと初期設定を行いました。今回はその上に「postfix」と「dovecot」をインストールし、クローズドなメール環境として動作するように必要な設定を行います。最終的な動作環境のイメージについては、前回の図1(クリックで拡大)で確認してください。

 

前回インストールしたWSL 2(Ubuntu)での作業再開

 

 コマンドプロンプトまたはPowerShellで次のコマンドラインを実行し、WSL 2のUbuntuに接続します。Ubuntuが実行中でない場合はこのコマンドラインで開始されます。なお、wsl --installによるWSL 2コンポーネントのインストールには管理者権限が必要ですが、インストール済みのLinuxディストリビューションの開始や接続は一般ユーザー権限で実行できます。

 

C:¥> start wsl

 

postfixとdovecotのパッケージのインストール(エラーは無視)

 

 Ubuntuのシェルに接続したら、次のコマンドラインを実行して、postfixとdovecotのパッケージをインストールします。postixインストール時の「Postfix Configuration」のページでは、「Internet Site」または「Local only」を選択してください。次の「System mail name」は既定値を受け入れてください。いずれにしろ、後で必要な設定はすべて行います。また、postfixとdovecotのインストールではどちらもエラーが発生しますが、この段階では無視してください(画面1、画面2)。

$ sudo apt update
$ sudo apt install postfix
$ sudo apt install dovecot-core dovecot-imapd dovecot-pop3d

 

画面1
画面1 postfixのインストール時には、「Internet Site」または「Local only」を選択して進める

 

画面2

画面2 postfixとdovecotインストール時のエラーはこの段階では無視

 

postfixの詳細設定とサービス開始

 

 インストールしたpostfixの設定を行います。vi(またはvim)エディターで/etc/postfix/main.cfを開き、必要な設定を行います。/etc/postfix/main.cfの編集が終了したら、上書き保存し、postfix checkコマンドでエラーがないかどうかをチェックします。

 

$ sudo vi /etc/postfix/main.cf

 

 postfixの設定ファイル/etc/postfix/main.cfはインストール時の「Postfix Configuration」での設定に従って自動作成されます(注:No configurationを選択した場合はファイル自体が作成されません)が、次に示す/etc/postfix/main.cfの内容を含むように、追記または既存の行を書き換えてください。くれぐれも、設定が重複しないように注意してください。この設定では、メールサーバー「mailsv.mylab.test(このUbuntuのホスト名)」が、信頼されたネットワーク(127.0.0.0/8、つまりlocalhost)から「mylab.test」ドメイン宛のメールを配信し、外部へのメールの中継(Relay)や信頼されたネットワーク以外からの接続は拒否(Reject)します。

 

/etc/postfix/main.cf

myhostname = mailsv.mylab.test
mydomain = mylab.test
mydestination = $myhostname, localhost, localhost.$mydomain, $mydomain
mynetworks = 127.0.0.0/8
inet_interfaces = all
default_transport = error
relay_transport = error
inet_protocols = ipv4
home_mailbox = Maildir/
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination

 

 次のコマンドラインを実行して、/etc/postfix/main.cfの内容にエラーがないかどうかチェックし、メールスプールや/etc/newaliasesを準備して、systemdでサービスを開始、登録します。

 

$ sudo postfix check
$ sudo chmod 777 /var/mail
$ sudo newaliases
$ sudo systemctl start postfix
$ sudo systemctl status postfix
$ sudo systemctl enable postfix

 

 WindowsにTelnetクライアントをインストールしてある場合は、WindowsのコマンドプロンプトまたはPowerShellから次のコマンドラインを実行してみてください。localhost(Ubuntu)のSMTPポート25に接続できることを確認できるはずです(画面3)。

 

C:¥> telnet localhost 25
quit

 

画面3

画面3 postfixの設定とSMTPポート25への接続テスト

 

dovecotの詳細設定とサービス開始

 

 次にdovecotの詳細設定を行います、vi(またはvim)エディターで/etc/dovecot/ディレクトリにあるdovecot.confconf.d/10-mail.confconf.d/10-auth.confconf.d/10-ssl.confを開き、各ファイルにこの後示す内容を含む行を追記するか、変更するか、コメントアウト(#)しますくれぐれも、設定が重複しないように注意してください。その後、systemdでサービスを再起動します。

 

$ sudo vi /etc/dovecot/dovecot.conf
$ sudo vi /etc/dovecot/conf.d/10-mail.conf
$ sudo vi /etc/dovecot/conf.d/10-auth.conf
$ sudo vi /etc/dovecot/conf.d/10-ssl.conf
$ sudo systemctl restart dovecot
$ sudo systemctl status dovecot

 

/etc/dovecot/dovecot.conf

protocols = pop3 imap
listen = *

 

/etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir

 

/etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no

 

/etc/dovecot/conf.d/10-ssl.conf(ssl=の行頭に#を追加してコメントアウト)

#ssl = yes

 

 WindowsにTelnetクライアントをインストールしてある場合は、Windowsのコマンドプロンプトから次のコマンドラインを実行してみてください。localhost(Ubuntu)のPOP3ポート110やIMAPポート143に接続できることを確認できるはずです(画面4)。

 

C:¥> telnet localhost 110
quit
C:¥> telnet localhost 143
a logout

 

画面4
画面4 dovecotの設定とPOP3ポート110、IMAPポート143への接続テスト

 

Ubuntuの現在の状態をファイル(.tar)にエクスポート

 

 ここまでの時点で、メール送受信環境はほぼ完成です。あとは、Ubuntu側にローカルユーザーを作成すれば、そのユーザーでメールを受信(および送信)できるようになります。vol.20でお見せしたデモのようにです。ですがその前に、クリーンな現在の状態で、成果物「Ubuntu_mailenv.tar」を作成してしまいましょう。

 

 Ubuntuのシェル環境をexitコマンドで終了し、WindowsのコマンドプロンプトまたはPowerShellで次のコマンドラインを実行します。これで「Ubuntu_mailenv.tar」は完成です(画面5)。

 

C:¥> wsl --terminate Ubuntu
C:¥> wsl --export Ubuntu C:¥work¥Ubuntu_mailenv.tar

 

画面5
画面5 ユーザーを作成する前の段階で、Ubuntuの状態をファイル「Ubuntu_mailenv.tar」にエクスポートする

 Hyper-V VMで作業している場合は、あとで動作確認したとき問題を発見した時に備えて、この時点でチェックポイントを作成しておきましょう。

 現在のUbuntuは、削除せずに、ユーザーの作成やメース送受信のテスト(ユーザー間の送受信テスト、外部中継されないテスト、外部から踏み台にされないテストなど)を行うのに引き続き利用できます。テストの方法や内容については省略しますが、さまざまなケースでテストしてみてください(メールソフトの設定やユーザーの追加については、vol.20を参照してください)。そして、期待通りに動作しないという場合は、チェックポイントに戻って設定を見直し、期待通りに動作するまでトライ&エラーを繰り返します。期待通りの動作のための設定が固まったら、その設定を含む「Ununtu_mailenv.tar」を作り直せばよいのです。

 

 なお、このテストメール環境の設定は、送信メールサーバーのセキュリティ要件が強化されている(SMTP-AUTHが必須)、Microsoft OutlookやWindows 10/11のメールアプリ、Outlook(New)アプリには対応していません。SMTP_AUTH認証に対応させるためには、さらにSASLやTLS関連のインストールと設定が必要です。

blog_subscribe

blog_comment

最新記事