0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure で Dovecot をインストール、telnet でメールを読む

Last updated at Posted at 2023-04-09

「Azure で postfix のインストールを試す」
https://qiita.com/nanbuwks/items/38b54aaf8c3ecfdbb3cc

では postfix をインストールしましたが、あくまでローカルサーバ内でのメール操作を行っていました。

次に、MRA として Dovecot をインストールし、手元の PC でメールを読めるようにします。
Ubuntu の Dovecot パッケージは基本パッケージに加え、 POP3 設定や IMAP 設定などには専用の追加パッケージをインストールする仕組みになっています。

PCでメールサーバに溜まっているメールを読むには、メールクライアントソフトを使います。それは MUA という分類のソフトウェアとなります。

今回は MUA としてよく使われる Outlook や Thunderbird などではなく、 telnet を MUA場合 として使いプレーンテキストでメールを読んでみます。

環境

  • クラウドサーバ Ubuntu 22.04 LTS
    「Azure で最初のクラウドサーバを無料枠で作成する」
    https://qiita.com/nanbuwks/items/120858191caf3b0a3f1c
    で作成したものです
  • MTA として Postfix
  • クライアントPC Ubuntu 22.04 LTS
    telnet さえ使えれば良いので、WindowsやMacでも同様に操作できます。

Dovecot インストール

$ sudo apt install dovecot-core dovecot-pop3d

ACL を操作して TCP 110番ポートでの受信が行えるようにする

Azure 画面より、受信ポートに110を加えます。
image.png

手元の PC で、telnet で110番ポート経由で Dovecot にアクセスできることを確認します。

なお、example.com でアクセスするために、
「Azure/Ubuntu/Apache2 で PHP と VirtulaHost を設定する」
https://qiita.com/nanbuwks/items/d3a1a148e597f5c5df1c
で行った、 /etc/hosts に example.com を追加した設定をそのまま活かしています。

$ telnet example.com 110
Trying 123.456.789.123...
Connected to example.com.
Escape character is '^]'.
+OK Dovecot (Ubuntu) ready.
USER example
-ERR [AUTH] Plaintext authentication disallowed on non-secure (SSL/TLS) connections.
QUIT
+OK Logging out
Connection closed by foreign host.

まだ認証ができないので、そのまま QUIT します。

プレーンテキストでの認証を許可する

telnet アクセスだと通信内容が傍受可能です。パスワードのやりとりも丸見えになります。それだとセキュリティ的に問題があるので、現在の状態では Dovecot でそれが行えないようになっています。
パスワードをプレーンテキストでやり取りする設定に変更してしまうと、 telnet でそのままパスワードを打ち込んで認証ができるようになります。

/etc/dovecot/conf.d/10-auth.conf を書き換えます。

冒頭

##
## Authentication processes
##

# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
#disable_plaintext_auth = yes

##
## Authentication processes
##

# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
disable_plaintext_auth = no

として、以下のようにして反映します。

$ sudo systemctl restart dovecot

telnet によるメール取得

手元の PC で、

$ telnet example.com 110
Trying 123.456.789.123 ...
Connected to example.com.
Escape character is '^]'.
+OK Dovecot (Ubuntu) ready.
USER example
+OK
PASS hogehogefugafuga
+OK Logged in.
LIST
+OK 0 messages:
.
QUIT
+OK Logging out.
Connection closed by foreign host.

hogehogefugafuga は example に設定しているパスワードです。
LIST しても メッセージが無かったので、Azureサーバ上で以下のようにして example にメールを送ります。

azureuser@test-azure-gen:~$ echo "Hello Dovecot" | sendmail example

再度手元のPCから読んでみます。

$ telnet example.com 110
Trying 20.125.147.200...
Connected to example.com.
Escape character is '^]'.
+OK Dovecot (Ubuntu) ready.
USER example
+OK
PASS Cab6402!
+OK Logged in.
LIST
+OK 1 messages:
1 644
.
RETR 1
+OK 644 octets
Return-Path: <azureuser@test-azure-gen.d5vkxbztwwse1dua0e2ybepgyg.phxx.internal.cloudapp.net>
X-Original-To: example
Delivered-To: example@test-azure-gen.d5vkxbztwwse1dua0e2ybepgyg.phxx.internal.cloudapp.net
Received: by test-azure-gen.d5vkxbztwwse1dua0e2ybepgyg.phxx.internal.cloudapp.net (Postfix, from userid 1000)
	id 646BD3F9B3; Sun,  9 Apr 2023 05:36:36 +0000 (UTC)
Message-Id: <20230409053636.646BD3F9B3@test-azure-gen.d5vkxbztwwse1dua0e2ybepgyg.phxx.internal.cloudapp.net>
Date: Sun,  9 Apr 2023 05:36:36 +0000 (UTC)
From: Ubuntu <azureuser@test-azure-gen.d5vkxbztwwse1dua0e2ybepgyg.phxx.internal.cloudapp.net>

Hello Dovecot
.
QUIT
+OK Logging out.
Connection closed by foreign host.

うまくいきました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?