能書き
自宅サーバー構築譚:基本構想に基づく自宅サーバー構築、Ubuntu22.04LTSインストールその2の続きです。
前回はDovecotをインストールしてLMTPを設定した訳ですが。今回はIMAPSを使えるようにします。
目標
前回掲載したメールサーバー構築予定を再掲します。
- DovecotのLMTP
- DovecotのIMAP ←イマココ
- Postfix
POP3は使いません。どうせ私専用のメールサーバーですので、私自身が使わない以上、選択肢として用意しておく必要もありません。
そして IMAP over SSL/TLS、通称 IMAPS にします。ただのIMAPは使えないように潰しておきます。
セキュリティを考慮して、デフォルトの証明書とは異なる物を使用します。
なお、以下の操作は前回のLMTP設定の続きとします。
参考文献
- Mail サーバー : Dovecot インストール - Server World
- Ubuntu 22.04 でメールサーバーを作ったのでメモ - tmtms のメモ
- dovecotでのサーバ証明書のインストール方法 - SSL・EV SSL サーバー証明書 サポート - SSLSERVER
- SSLの各種証明書について(csr, pem, der, cerなど) - Qiita
- 自宅サーバー構築譚:オレオレ認証局 - Qiita
- telnetを使ってメールサーバーと通信する (SMTP/POP/IMAP) - Qiita
- SSLのHTTPリクエストをtelnetのように解析したい。 - littlewing
コンテナの準備
スナップショット
コンテナdovecot1(IPアドレス192.168.0.4)について、まずは現時点でのスナップショットを撮ります。
CONTAINER=dovecot1
IPADDRESS=192.168.0.4
スナップショット名はbefore_Dovecot_IMAP
とします。
SSNAME=before_Dovecot_IMAP
コンテナを停止してスナップショットを撮ります。稼働中でも撮れるようですが、変に面倒臭い何かが起こってもイヤなので。
lxc stop $CONTAINER
lxc snapshot $CONTAINER $SSNAME
スナップショットの一覧表示にはlxc info
コマンドを利用するようです。余計な情報も纏めて表示されてしまうのですが、どうしようもないようですな。何とかなりませんかねぇ。
lxc info $CONTAINER
スナップショットに巻き戻す時には、下記コマンドを実行します。
lxc restore $CONTAINER $SSNAME
スナップショットの操作が終わったら、起動させましょう。
lxc start $CONTAINER
Ubuntuユーザーのパスワード
今回はIMAPの動作確認をする際に、ユーザーのパスワードが必要になります。
IMAPではLinuxユーザーとは異なるパスワードを設定させるのがセキュリティ的に正しい気もしますけど。そんな事しても、実運用時に面倒臭くて、結局同一のパスワードになるのが落ちです。
と言う訳で、使うのは私だけという点も考慮して、IMAPでもLinuxユーザーを流用する事にします。
そして前回のLMTP設定時と同様、LXDコンテナのデフォルトユーザーであるubuntu
を動作確認に利用する事にします。
ubuntu
ユーザーにパスワードpassword
を設定するコマンドは下記になります。
lxc exec $CONTAINER passwd ubuntu <<___
password
password
___
パスワードを設定すると/etc/shadow
が変化します。Subversionで登録しましょう。
lxc exec $CONTAINER -- svn ci /etc -m"set the user 'ubuntu' password"
Dovecot IMAP のインストールと設定
インストールと初期設定の確認
コンテナに入ります。
ところで。コンテナ内に入る時には、シェル/bin/bash
を実行ではなくて、lxc shell
というコマンドがあるようですな。
lxc shell $CONTAINER
dovecot-imapd
をインストール。-y
オプションは不要でした。
apt install dovecot-imapd
インストールが終わったら、/etc
の変化を確認します。今回は何も変化していない模様です。
svn di /etc
コンテナから抜けます。
exit
LXDネットワークの設定
ネットワークのポートフォワードを設定します。imapsは993番ポートらしい。ただのimap(143番)は、今回は開きません。
なお172.16.1.3は私のホストマシンのIPアドレスです。
IMAPS_PORT=993
lxc network forward port add lxdbr0 172.16.1.3 tcp $IMAPS_PORT $IPADDRESS $IMAPS_PORT
ちょっと動作確認
dovecot-imap
はデフォルトでサーバーのオレオレ証明書を仕込んでくれるようです。この、インストール直後の段階でも、IMAPSプロトコルで会話する事が出来ます。
IMAPSでの会話にはopenssl s_client
コマンドを使用します。
openssl s_client -connect 172.16.1.3:$IMAPS_PORT
opensslプロンプト内で実行するコマンドは下記の通り。行頭の番号から入力します。
1 login ubuntu password
2 list "" *
3 select INBOX
4 fetch 1 body[]
5 logout
実行結果は下記になります。証明書の内容が表示されてしまうので少々長くなりますが。丁寧に読むと、CommonName(CN)としてコンテナ名を設定しているオレオレ証明書が自動的に仕込まれているようです。
そして4 fetch 1 body[]
で、前回のLMTPでテスト送信したメールが表示されます。
$ openssl s_client -connect 172.16.1.3:$IMAPS_PORT
CONNECTED(00000003)
Can't use SSL_get_servername
depth=0 CN = dovecot1
verify error:num=18:self-signed certificate
verify return:1
depth=0 CN = dovecot1
verify return:1
---
Certificate chain
0 s:CN = dovecot1
i:CN = dovecot1
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: Apr 29 06:30:44 2023 GMT; NotAfter: Apr 26 06:30:44 2033 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIC9TCCAd2gAwIBAgIUVQ5EDsKo56lCwr24VHDeTHeW8j8wDQYJKoZIhvcNAQEL
BQAwEzERMA8GA1UEAwwIZG92ZWNvdDEwHhcNMjMwNDI5MDYzMDQ0WhcNMzMwNDI2
MDYzMDQ0WjATMREwDwYDVQQDDAhkb3ZlY290MTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBANMJYCHlJiKZwXw1T050RodpXmjVfLFjZJLuc75qH9BkHfEz
HGRZY+z758QMQjTTKHxFPctvSQssAznRb8E8bpmiKGGUIPuIzOLpGHTw1+f0nROm
J3s8BEm9grJ7hCElNxEtI/jlQr6dP1+C7tdjFjejS9ouchznYco8z2Gvhj8OPtZS
sEM08Zf2wiawJlXk+9EYFF0FfZ3Xscks7a8a+7TgRdUK5ItrGgrJB64FdciZryps
/yVcN/Ibjg1zkRk599KhU9Zp/zrrDC4u/6W1ywHsEXzpLDBIDlVps3hdqxzwWVQ8
CO4XpFxw+Q69jCzGyWN/PIhIcTYNqkvk5RDDZmcCAwEAAaNBMD8wCQYDVR0TBAIw
ADATBgNVHREEDDAKgghkb3ZlY290MTAdBgNVHQ4EFgQUv8GYFHo2ismK97KEu1At
04iX8oEwDQYJKoZIhvcNAQELBQADggEBAGu7ORSd6yprVa7ebMxLpTtqj0LEjyZi
4HylbetUye2819cracmoV1WRw16ALhOD9eXvGf1Fkp19M3VayM2Wzpx+J17KRquF
hSQ5dBKn4SRg5BaaXe+dZVX82S1mSxay39NFlIA1WnmJlSjCwtS1VaSKF1MSDVup
jUdF0GMB6/32DdJXYt9ja7CgdH5kpeESpwEjeWrfZV4tBBz2aEt9ozJhWsOxxw7i
hQ5CL4eHtKKAt8s57cz+9CvLo7T0lR+PWd42Wd4SmKA6xhbL8uIyxzUF0D0xJiRz
l4avrjvRH4jaUreBIcAyuHgrJk2HV1ZwfiCnJTmiQQ2wXlS5xgDLJFg=
-----END CERTIFICATE-----
subject=CN = dovecot1
issuer=CN = dovecot1
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1317 bytes and written 373 bytes
Verification error: self-signed certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 18 (self-signed certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: C791D67F83B334E94A147F9ADB03DB232F1B676D361A23BF2341F6FBDE4CD51E
Session-ID-ctx:
Resumption PSK: B32991AE77C19CCD32B2B0E5B4B67212275BBCD18B1774C350F18E6FEF951B49650432206D554A52EDB6391A929E25DD
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
0000 - 3c 0d 71 0e ef 73 24 13-48 0d fc 94 96 f6 46 67 <.q..s$.H.....Fg
0010 - 2b c1 fa cc 8d a0 df d3-7a 21 97 e1 65 00 a1 1f +.......z!..e...
0020 - ac 1b 32 4e 49 33 8f 19-9a 39 af 3b f3 bd 5a 7c ..2NI3...9.;..Z|
0030 - e1 db a0 4a a5 09 1f 2d-eb ed bb f5 dc d2 e9 f0 ...J...-........
0040 - 73 7d 8e ab 94 2e 67 88-07 fa 11 71 17 ca 1e 12 s}....g....q....
0050 - 56 da ba 64 09 a5 d6 35-4c 34 df 8e b9 0d c0 6a V..d...5L4.....j
0060 - 9b a7 a0 5d d1 cf 02 0f-d1 fe 1c 47 eb c8 ac 7f ...].......G....
0070 - eb bc d4 b2 9b 1a 2e 28-d9 90 74 da aa 93 87 f9 .......(..t.....
0080 - 2f 5a e4 5a 3d e6 b2 26-87 22 b0 40 a7 32 3b 7d /Z.Z=..&.".@.2;}
0090 - 57 1c d4 c8 13 1a 12 fa-c5 aa 28 dc ae 7c 4d 55 W.........(..|MU
00a0 - 85 f5 9a d5 bf 64 8d a8-67 b7 90 22 67 ed 3e 4e .....d..g.."g.>N
00b0 - 85 71 48 0b 22 0d 27 fc-76 3f 52 1c 43 79 2a d1 .qH.".'.v?R.Cy*.
00c0 - ff 59 9a 00 10 01 04 f2-d8 d8 19 7d bf 91 81 66 .Y.........}...f
Start Time: 1683422805
Timeout : 7200 (sec)
Verify return code: 18 (self-signed certificate)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: C47BE4FF7B107B6C9F195121428E477E8BF0A186004E493291CBA346EA981E82
Session-ID-ctx:
Resumption PSK: D10F5D48E89A8A438A844B24561694F387C3421A0388F6215B7B1EAC47971A574659873BEA732C8FD311DFB10915662B
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
0000 - 3c 0d 71 0e ef 73 24 13-48 0d fc 94 96 f6 46 67 <.q..s$.H.....Fg
0010 - ba a1 4c e1 eb ef 1d d5-30 83 d2 a7 4d e9 cb 1f ..L.....0...M...
0020 - a1 a6 0e c1 91 85 1f 3c-bb 7a 6a 8f 2f be e9 c3 .......<.zj./...
0030 - 13 6c 96 db ea 5b ab 1e-4a 06 d8 c5 20 7b 15 e7 .l...[..J... {..
0040 - 64 72 3a 8d 31 e9 77 34-7e f8 46 bc e2 92 37 c5 dr:.1.w4~.F...7.
0050 - c6 9a d0 54 0a 8b fc 4f-39 87 e5 60 99 93 5f c7 ...T...O9..`.._.
0060 - f6 56 ad 92 45 9b b4 9b-9f b7 21 07 24 17 2c 1c .V..E.....!.$.,.
0070 - 72 28 67 f3 aa 61 c6 3c-db 37 6d 5a 98 34 43 f3 r(g..a.<.7mZ.4C.
0080 - a1 03 98 c7 56 2e 6a 23-d7 db 19 8b 0e 38 91 89 ....V.j#.....8..
0090 - a5 7a 26 75 45 03 66 4b-8d a6 5a 5f de 3e 60 5b .z&uE.fK..Z_.>`[
00a0 - 1b a3 2d 70 4d 77 b5 2c-e9 26 62 49 6f f3 31 a9 ..-pMw.,.&bIo.1.
00b0 - 0d 85 02 d5 9c b8 ac 50-6d 6c f7 cf b6 78 08 48 .......Pml...x.H
00c0 - f2 c9 30 3d ef 4f 99 6f-db fc de 8b 14 42 df fb ..0=.O.o.....B..
Start Time: 1683422805
Timeout : 7200 (sec)
Verify return code: 18 (self-signed certificate)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Ubuntu) ready.
1 login ubuntu password
1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE] Logged in
2 list "" *
* LIST (\HasNoChildren) "." INBOX
2 OK List completed (0.002 + 0.000 + 0.001 secs).
3 select INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 1 EXISTS
* 1 RECENT
* OK [UNSEEN 1] First unseen.
* OK [UIDVALIDITY 1682756249] UIDs valid
* OK [UIDNEXT 2] Predicted next UID
3 OK [READ-WRITE] Select completed (0.003 + 0.000 + 0.002 secs).
4 fetch 1 body[]
* 1 FETCH (FLAGS (\Seen \Recent) BODY[] {317}
Return-Path: <test@sender.home>
Delivered-To: ubuntu
Received: from sender.home ([172.16.1.3])
by dovecot1 with LMTP
id UMwGBHjSTGT8EQAA9sUnBg
(envelope-from <test@sender.home>)
for <ubuntu>; Sat, 29 Apr 2023 17:16:56 +0900
From: test@sender.home
To: ubuntu@yuki.home
Subject: test mail
hello, world
)
4 OK Fetch completed (0.003 + 0.000 + 0.002 secs).
5 logout
* BYE Logging out
5 OK Logout completed (0.001 + 0.000 secs).
closed
Dovecot IMAPS 用の証明書
自動で仕込まれたオレオレ証明書だと、設定されているのがコンテナ名になります。ホスト名をCommonNameとする証明書を作ってオレオレ認証局で認証、を以前やりましたので、これを仕込みます。
認証局:
- 秘密鍵
/opt/CA/demoCA/pki/private/ca.key
- 公開鍵
/opt/CA/demoCA/pki/ca.crt
サーバーマシン secondary.home の証明書:
- 秘密鍵
/opt/CA/demoCA/pki/private/secondary.home.key
- 公開鍵
/opt/CA/demoCA/pki/issued/secondary.home.crt
Dovecot-IMAPで必要な証明書は、書き方が他とはちょっと違うようです。証明書と認証局の鍵を結合して、Dovecot用のpemファイルdovecot_secondary.pem
を作成します。
cd
mkdir dovecotIMAP
cd dovecotIMAP
sudo cat /opt/CA/demoCA/pki/private/secondary.home.key >dovecot_secondary.pem
sudo openssl x509 -outform pem -in /opt/CA/demoCA/pki/issued/secondary.home.crt >>dovecot_secondary.pem
sudo cat /opt/CA/demoCA/pki/ca.crt >>dovecot_secondary.pem
pemファイルを作成できたら、所定の場所にコピーします。
lxc file push dovecot_secondary.pem $CONTAINER/etc/dovecot/private/dovecot_secondary.pem
セキュリティの都合で、権限とファイルオーナーを設定します。
lxc exec $CONTAINER chown root:root /etc/dovecot/private/dovecot_secondary.pem
lxc exec $CONTAINER chmod 600 /etc/dovecot/private/dovecot_secondary.pem
dovecot IMAP 証明書の設定
作成した証明書を参照するように設定します。
まずはパッチファイルを用意します。
cat >imap.patch <<___
Index: /etc/dovecot/conf.d/10-ssl.conf
===================================================================
--- /etc/dovecot/conf.d/10-ssl.conf (revision 3)
+++ /etc/dovecot/conf.d/10-ssl.conf (working copy)
@@ -9,8 +9,8 @@
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
-ssl_cert = </etc/dovecot/private/dovecot.pem
-ssl_key = </etc/dovecot/private/dovecot.key
+ssl_cert = </etc/dovecot/private/dovecot_secondary.pem
+ssl_key = </etc/dovecot/private/dovecot_secondary.pem
# If key file is password protected, give the password here. Alternatively
# give it when starting dovecot with -p parameter. Since this file is often
___
設定ファイルを、コンテナ内からホスト側へ取り出します。
lxc file pull $CONTAINER/etc/dovecot/conf.d/10-ssl.conf .
パッチを当てます。今回はエラーは出ないようです。
patch 10-ssl.conf <imap.patch
パッチを当てた設定ファイルをコンテナに戻します。
lxc file push 10-ssl.conf $CONTAINER/etc/dovecot/conf.d/
Dovecotに設定を読み込ませます。
lxc exec $CONTAINER systemctl reload dovecot
IMAPSでDovecotと会話
再びopenssl s_client
コマンドを実行します。172.16.1.3は私のホストマシンのIPアドレスです。
openssl s_client -connect 172.16.1.3:$IMAPS_PORT
opensslプロンプト内で実行するコマンドを再掲します。
1 login ubuntu password
2 list "" *
3 select INBOX
4 fetch 1 body[]
5 logout
今度の実行結果はこんな感じ。最初に表示される証明書の内容が変わります。
$ openssl s_client -connect 172.16.1.3:$IMAPS_PORT
CONNECTED(00000003)
Can't use SSL_get_servername
depth=1 CN = demoCA
verify error:num=19:self-signed certificate in certificate chain
verify return:1
depth=1 CN = demoCA
verify return:1
depth=0 CN = secondary.home
verify return:1
---
Certificate chain
0 s:CN = secondary.home
i:CN = demoCA
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: May 7 01:15:48 2023 GMT; NotAfter: Aug 9 01:15:48 2025 GMT
1 s:CN = demoCA
i:CN = demoCA
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: May 7 01:11:29 2023 GMT; NotAfter: May 4 01:11:29 2033 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDbjCCAlagAwIBAgIRAP8ZVwc46vGV+jGuyH0xOkwwDQYJKoZIhvcNAQELBQAw
ETEPMA0GA1UEAwwGZGVtb0NBMB4XDTIzMDUwNzAxMTU0OFoXDTI1MDgwOTAxMTU0
OFowGTEXMBUGA1UEAwwOc2Vjb25kYXJ5LmhvbWUwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCyBlKnqQZumtTTnD94RdcVkFOohD5DB9SAbfx/Ew2lfq1N
MY4jlBgj6/xUBfLQTmQV8qq38g+Z05OC4lHJlDYNCYwtSd+pX7x3DWmfTotMS/k8
NHwYm3i87CZZHi9fhPteQu5ibTy2CiujBeNFotQhGr0KwsL3sl4NLMfrzauRo/RH
LWSPPW3qJVQPKi7J43K6fJ0C8DvV0HfhrHKbroFkuRW5KdHCcPBz+uVflF2Uw+s8
LhPZbiPccLk3QRg5CDDNAEAgoJU8cxuD0D8UEqtl3bbW1TyroFdFtSigPK6PiP8V
XQvIV6JPjXqPzN/EPNDT7ullYq74sZ1sTeRU2/b3AgMBAAGjgbgwgbUwCQYDVR0T
BAIwADAdBgNVHQ4EFgQUGmQz5bCGgtsEy6CZT90Ta4DX9sIwTAYDVR0jBEUwQ4AU
eJgw+VfFZOfwc7XVXWc0zIkHPlShFaQTMBExDzANBgNVBAMMBmRlbW9DQYIUBXCd
6WMauOe6FTgb/y3NNQrLUp4wEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQD
AgWgMBkGA1UdEQQSMBCCDnNlY29uZGFyeS5ob21lMA0GCSqGSIb3DQEBCwUAA4IB
AQAW3/hFcdsYntZK4B81yfIWCHhs4ixz+q6uWBxC8rL/ymfs+E+fvU+vA/ZeVR/m
PbUTXg97DoY/R5t7/GjCob761ZEkw37dgIXwNRxoVjUXuREW8DyKIFq76f+veVzv
wCFvLo7CiSengswRq8GNvMmfkVW32YW2Ul1KOHSu4UG2Or1wvXbjvZDVT2BGq5tV
JR6hlg+f4bB+AP7XCe3lgTsiV1EFKX/2WfpqbmnHSjn+4HYxcTee/j5frUPxxXbZ
AYt16zl8FVEluUX0jyyQFMmgCa0ZHfVLgSocuIoZ7+RexgiW5jSVr6AmVXQb0EO+
Hgx310kbfAiZnNanqKNi/A1G
-----END CERTIFICATE-----
subject=CN = secondary.home
issuer=CN = demoCA
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 2275 bytes and written 373 bytes
Verification error: self-signed certificate in certificate chain
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 19 (self-signed certificate in certificate chain)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: 0CCBECD9CD806FF06FE29FF0722F23E02BB68EADCF763A5C6AEE85FC590D0E4E
Session-ID-ctx:
Resumption PSK: B9EB1CAA2A0BD8BBDB50B4838C6C4F1F9B0A748596C91B8F194B0C2A17DB54E1B644140FC2A94748593A5545D53097D4
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
0000 - 13 2d e8 b1 6c 67 74 7a-c2 78 d4 f0 07 3e 51 00 .-..lgtz.x...>Q.
0010 - d4 29 d8 49 67 05 e7 e1-d9 35 e2 b4 0f a5 f9 06 .).Ig....5......
0020 - 22 fe aa 20 91 2c 44 b9-72 e5 94 de c5 fa b1 18 ".. .,D.r.......
0030 - 14 a3 72 6a c2 61 d1 4a-5e 55 17 30 9c 63 f1 9c ..rj.a.J^U.0.c..
0040 - 9d cd 1b 92 ca b2 38 82-30 6e 2a 3a a7 02 75 05 ......8.0n*:..u.
0050 - d1 0d 2f 4d 77 44 e0 75-1d b7 dc 36 36 96 1b 81 ../MwD.u...66...
0060 - cc 8b 55 25 d3 ff 72 56-5b 5b 66 b6 4e 7e ea 15 ..U%..rV[[f.N~..
0070 - 17 de a2 ee 5e 9e 6f c9-55 f3 48 8b 31 dd 1f 4a ....^.o.U.H.1..J
0080 - cc b9 b5 55 ea c8 b1 23-ff 9d bb 67 b3 97 12 06 ...U...#...g....
0090 - 3b c7 fd d2 02 2d 94 15-30 bd f5 af b6 9c 6b 3b ;....-..0.....k;
00a0 - 5a f3 6d ba ce 50 8f e8-4d dd 79 15 b5 72 0f 44 Z.m..P..M.y..r.D
00b0 - 9a 72 d2 4f 82 71 a7 cb-1e ef a9 01 f7 18 65 2b .r.O.q........e+
00c0 - f3 e3 f5 03 60 49 19 e0-76 e7 ed 6b 76 88 0b 05 ....`I..v..kv...
Start Time: 1683423312
Timeout : 7200 (sec)
Verify return code: 19 (self-signed certificate in certificate chain)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: 116C5075749359A1A1E3A8BB1F1D844E79688085246333D8D9A41FAE23F553AD
Session-ID-ctx:
Resumption PSK: D88D42C6CB5A739BBF7B4876E54C2205131F5FE33F63208EA73A1ADCC942EEFAC0AC029AE35902EEE706E9B9CD77ED68
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
0000 - 13 2d e8 b1 6c 67 74 7a-c2 78 d4 f0 07 3e 51 00 .-..lgtz.x...>Q.
0010 - a4 aa fb 10 e9 ea 3e e2-07 9b 87 5e b4 51 46 c5 ......>....^.QF.
0020 - 29 b2 1e 99 83 8e dc 72-47 72 e1 f9 0c 34 2f e7 )......rGr...4/.
0030 - 30 6f c2 4a 2c f0 ee bd-7c a3 dc 08 d2 7b 5d 06 0o.J,...|....{].
0040 - f2 71 e1 1b 65 6a 97 f0-e1 02 b1 7b 32 fe 26 d1 .q..ej.....{2.&.
0050 - 7b 70 e6 27 0d 08 ba 58-9d c9 fb c7 e9 01 86 df {p.'...X........
0060 - 7f 66 c2 50 02 5f 49 42-3a 91 11 32 08 17 a2 3d .f.P._IB:..2...=
0070 - 2f 8f 32 ff 80 74 4d 46-52 28 67 a9 2f e3 11 f4 /.2..tMFR(g./...
0080 - 22 5a 5a 01 54 b8 36 44-23 e0 58 f6 82 cb f9 b9 "ZZ.T.6D#.X.....
0090 - bd 9a 33 d1 5d c2 84 44-22 a0 7d 3c 9e 0e c1 91 ..3.]..D".}<....
00a0 - 8e 67 5e 1e 2a 0a f4 8a-1c a4 27 90 84 eb f4 48 .g^.*.....'....H
00b0 - f0 2f 4b 10 1b 0a cb 6f-1f e8 3a e5 19 64 ad 84 ./K....o..:..d..
00c0 - 11 eb ce c9 11 87 37 91-bb c0 47 83 91 44 24 8a ......7...G..D$.
Start Time: 1683423312
Timeout : 7200 (sec)
Verify return code: 19 (self-signed certificate in certificate chain)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Ubuntu) ready.
1 login ubuntu password
1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE] Logged in
2 list "" *
* LIST (\HasNoChildren) "." INBOX
2 OK List completed (0.001 + 0.000 secs).
3 select INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 1 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1682756249] UIDs valid
* OK [UIDNEXT 2] Predicted next UID
3 OK [READ-WRITE] Select completed (0.002 + 0.000 + 0.001 secs).
4 fetch 1 body[]
* 1 FETCH (BODY[] {317}
Return-Path: <test@sender.home>
Delivered-To: ubuntu
Received: from sender.home ([172.16.1.3])
by dovecot1 with LMTP
id UMwGBHjSTGT8EQAA9sUnBg
(envelope-from <test@sender.home>)
for <ubuntu>; Sat, 29 Apr 2023 17:16:56 +0900
From: test@sender.home
To: ubuntu@yuki.home
Subject: test mail
hello, world
)
4 OK Fetch completed (0.001 + 0.000 secs).
5 logout
* BYE Logging out
5 OK Logout completed (0.001 + 0.000 secs).
closed
仕舞い
コンテナ内の/etc
をSubversion登録しましょう。
lxc shell $CONTAINER
今回は、設定とpemファイル追加があります。
svn st /etc
こんな感じ。
# svn st /etc
M /etc/dovecot/conf.d/10-ssl.conf
? /etc/dovecot/conf.d/20-imap.conf
? /etc/dovecot/private/dovecot_secondary.pem
? /etc/ufw
おっと。/etc/ufw
はファイアウォールの設定です。Dovecot-IMAPをインストールするとファイアウォールの設定まで付いてくるようですな。
ファイルを追加。
svn st /etc | grep "^?" | cut -b9- | xargs -I{} sudo find {} -type f -or -type d -or -type l | xargs -t sudo svn add
svn ci -m"Dovecot IMAP setting" /etc
svn up /etc
これで、蓄積されたメールをIMAPSで参照できるようになりました。やったね