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?

ローカルメール環境構築(その2:POPサーバー)

Posted at

ローカルメール環境構築:その2

その1」の続き。今回のお題は、POPサーバー。dovecotを利用して構築。参考URLは下記。

ChatGPTも利用。

ネットワーク構成図

再掲。

構成図.png

  • 192.168.2.249: DNSサーバーおよびメールクライアントuser4@annecy2dc.com
  • 192.168.2.2: メールサーバーannecy2dc.com
  • 192.168.2.251: メールサーバーannecy1dc.com
  • 192.168.2.239: メールクライアントuser1@annecy1dc.com

dovecotによるPOP(POP3)サーバー構築

インストール

$ sudo apt install dovecot-core dovecot-pop3d

ここでは、POP3のみインストール。

アカウント

ここでは、Linuxのアカウントを用いず、仮想アカウントという方式をとった。具体的には、

  • vmailという実アカウント
  • vmailに複数の仮想アカウントを紐づけ
  • 仮想アカウントごとのメール保存場所を設定

ここでは、メールアドレス”user4@annecy2dc.com”に対して、仮想アカウントを作成する。まずは、実アカウントvmail作成。

$ sudo groupadd -g 5000 vmail
$ useradd -u 5000 -g vmail -s /bin/false -d /var/mail/vmail vmail

次に、仮想アカウント”user4@annecy2dc.com”用のメール保存場所作成。

$ mkdir -p /var/mail/vmail/annecy2dc.com/user4/Maildir

所有者やアクセス権限変更。

$ chown -R vmail:vmail /var/mail/vmail
$ chmod -R 770 /var/mail/vmail

設定ファイル

パスワード管理ファイル:/etc/dovecot/passwd

まずはパスワードを作成。

$ doveadm pw -s SHA512-CRYPT
Enter new password: 
Retype new password: 
{SHA512-CRYPT}KOREHA-HIMITSU-DA

”{SHA512-CRYPT}KOREHA-HIMITSU-DA”が、入力されたパスワードに相当するものである。これをもとに、仮想アカウント”user4@annecy2dc.com”を定義したパスワードファイル”/etc/dovecot/passwd”を作成。

/etc/dovecot/passwd
user4@annecy2dc.com:{SHA512-CRYPT}$KOREHA-HIMITSU-DA:5000:5000::/var/mail/vmail/annecy2dc.com/user4/Maildir:/bin/false

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

元々のファイルに下記を追加。

passdb {
  driver = passwd-file
  args = /etc/dovecot/passwd
}

userdb {
  driver = passwd-file
  args = /etc/dovecot/passwd
}

アカウントデータベースに、先ほど作成した、”/etc/dovecot/passwd”を利用するということらしい。

”10-auth.conf”ではなく、”auth-passwdfile.conf.ext”に上記を加え、”10-auth.conf”にて、”auth-passwdfile.conf.ext”をImportするのが通常かもしれない。

!include auth-passwdfile.conf.ext

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

ここはすべて掲載。

namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
}

mail_home = /var/mail/vmail/%d/%n
mail_location = maildir:/var/mail/vmail/%d/%n/Maildir

mail_uid = 5000
mail_gid = 5000

mail_privileged_group = vmail
  • namespace:よく調べておらず、ChatGPTの結果をそのまま利用
  • 仮想アカウント関連の設定:先ほど作成したパスやID情報を入力

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

関連する部分のみ記載。

service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

service auth {

...

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

}
  • POP3のポート番号設定(後述する検証のため、平文ポート110も有効化)
  • postfixからdovecotの認証情報を利用する設定

その他

本来であれば、証明書や鍵関連を設定するのであるが、ここでは、インストール時のものをそのまま利用。”10-ssl.conf”などを適宜設定する。

検証

dovecotが動作しているホストでの直接的な確認。

$ telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot (Ubuntu) ready.
user user4@annecy2dc.com
+OK
pass user4
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host

認証までであるが、POPのコマンドを直接的に入力して確認。この時のログは下記となる。

$ tail /var/log/mail.log

2025-03-22T07:25:24.408112+09:00 XXXX dovecot: master: Dovecot v2.3.21 (47349e2482) starting up for pop3 (core dumps disabled)

2025-03-22T09:45:52.572470+09:00 XXXX dovecot: pop3-login: Login: user=<user4@annecy2dc.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3439, secured, session=<SQ9rseMwmNh/AAAB>
2025-03-22T09:45:54.966092+09:00 XXXX dovecot: pop3(user4@annecy2dc.com)<3439><SQ9rseMwmNh/AAAB>: Disconnected: Logged out top=0/0, retr=0/0, del=0/13, size=15960

ネットワークを介した確認は、次回その3で実施する。

EOF

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?