あらたなインターネットドメイン名を購入した。
このドメイン名でメールを受け取ることにしてみた。
既存のドメイン chaperone.jp でのメール受付環境はそのままで、追加のドメインは VirtualMailbox を利用することとした。
chaperone.jpドメインもVirtualMailboxにすることは可能みたい

DNS MXレコード

まずは追加ドメインのMXレコードをmailと同じようにweb.chaperone.jpに割り当てる
2017y03m19d_234433612.png
これで追加ドメインのメール送信先は web.chaperone.jp となる。

postfix設定

方法は3つあるそうで、

VirtualMailboxで複数ドメインのメール管理

設定ファイル/etc/postfix/main.cfは受付ドメインの追加方式やマッピングファイル形式と大きく変わって下記のようになる

myhostname = c.sybyl.local
mydomain = sybyl.local
myorigin = $mydomain
inet_interfaces = all
mydestination = localhost
virtual_mailbox_domains = chaperone.jp, sysosa.jp
virtual_mailbox_base = /var/spool/vmail
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_uid_maps = static:30000
virtual_gid_maps = static:30000

*なので、mydestination の値はlocalhostに限定。それ以外のsmtpはmydestinationでは拾わない。それ以外はVirtualMailboxで拾う

今回はchaperone.jpsysosa.jp宛のメールは全てUID:30000,GID:30000のフォルダに書かせる。
chaperone.jpはUID:10000で、sysosa.jpはUID:20000とかマップで調整は可能

まずはユーザを作成する

[root@c ~]# groupadd -g 30000 vmail && useradd -M -g 30000 -u 30000 vmail
[root@c ~]# mkdir /var/spool/vmail && chown 30000:30000 /var/spool/vmail

postfoxが受領したメールを保存する場所にUID:30000の書き込み権限を持たせる

[root@c ~]# mkdir /var/spool/vmail
[root@c ~]# chown -R vmail:vmail /var/spool/vmail

次に、受領したメール毎に配置する場所を定義します。そして、これをpostmapコマンドでhash化します

[root@c ~]# vi /etc/postfix/vmailbox
support<_at_>sysosa.jp  sysosa.jp/support/
support<_at_>chaperone.jp  chaperone.jp/support/
 :
 :
[root@c ~]# postmap /etc/postfix/vmailbox

postfixを再起動させて、ここでテストを実施。gmailとかからメールを送信する。
/var/spool/vmailのディレクトリに sysosa.jp と chaperone.jp なフォルダが作れればOK

[root@c ~]# ls -l /var/spool/vmail/
合計 0
drwx------ 3 vmail vmail 20  3月 28 13:22 chaperone.jp
drwx------ 3 vmail vmail 20  3月 28 13:21 sysosa.jp
[root@c ~]#

ついでにあえて chaperone.jpに存在するLinuxアカウントにメールを送ると「そんなユーザはいない」とお叱りのメールが返送されることを確認します。

受取人不在メールを返さない

未完成 下記はだめっぽい
返って来る事で「メールアドレスを間違えた」と認識して、再送して頂くのが筋っぽいが、
逆にメール送信者に「このユーザは存在しませんよ」と伝えず、受け取ってゴミ箱に入れてしまうのなら下記のようにする。

[root@c ~]# vi /etc/postfix/main.cf
 :
virtual_alias_maps = hash:/etc/postfix/virtual
 
[root@c ~]# vi /etc/postfix/virtual
<_at_>sysosa.jp     unknown_user@localhost.
<_at_>chaperone.jp  unknown_user@localhost.
 
[root@c ~]# postmap /etc/postfix/virtual
[root@c ~]# echo unknown_user: /dev/null >> /etc/aliases
[root@c ~]# newaliases
 
[root@c ~]# systemctl restart postfix

留意点 /etc/postfix/virtual の unknown_user@localhost. の最後の「.」に注意

VirtualMailbox対応なdovecot

mail/dovecotではLinuxユーザに基づくメールアカウントだったので認証にpamを使い、ローカルドメインからのアクセスに制限していたので接続の保護もなく、認証も平文で行っていた。VirtualMailboxになったため、Virtualメール単位でのパスワードを別途用意する必要がある。この場合、pam認証はもはや不要となる。

[root@c ~]# cat /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/
namespace inbox {
  inbox = yes
}
first_valid_uid = 1000
mbox_write_locks = fcntl
 
[root@c ~]# cat /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
!include auth-passwdfile.conf.ext
!include auth-static.conf.ext
 
[root@c ~]# cat /etc/dovecot/conf.d/10-ssl.conf
ssl = no
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
 
[root@c ~]# cat /etc/dovecot/conf.d/auth-passwdfile.conf.ext
passdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/passwd
}
 
[root@c ~]# cat /etc/dovecot/conf.d/auth-static.conf.ext
userdb {
  driver = static
  args = uid=30000 gid=30000 home=/var/spool/vmail/%d/%n
}
 
[root@c ~]#

次に、メールアドレス毎にパスワードを用意する。パスワードを平分で扱う場合は

[root@c ~]# cat /etc/dovecot/passwd
support<_at_>sysosa.jp:{PLAIN}hogehoge1234
support<_at_>chaperone.jp:{PLAIN}hoge4321hoge
 :
[root@c ~]#

と扱えばいい。大抵はHASH化したパスワードを載せるのだろうが、まずはテストとして通信可能なことを確認する。

認証方法をPLAINから「暗号化されたパスワード認証」に変更したい

ここではPAM経由でなく、/etc/dovecot/passwdを使って認証を行っている。なので「暗号化されたパスワード認証」のためにpasswdファイルにはハッシュ化されたパスワードを記載する。
ハッシュ化したパスワードはdoveadmコマンドで得られる

[root@c ~]# doveadm pw -s CRAM-MD5
Enter new password:
Retype new password:
{CRAM-MD5}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[root@c ~]#

この「{CRAM-MD5}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx」を/etc/dovecot/passwdへ組み込む

[root@c ~]# cat /etc/dovecot/passwd
support<_at_>sysosa.jp:{CRAM-MD5}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
support<_at_>chaperone.jp:{CRAM-MD5}yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
 :
[root@c ~]#

そして、dovecotの設定ファイル(10-auth.conf)を修正して再起動する

[root@c ~]# cat /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = cram-md5 login
!include auth-passwdfile.conf.ext
!include auth-static.conf.ext
 
[root@c ~]# systemctl restart dovecot

これで「暗号化されたパスワード認証」(Thunderbird)でメールサーバに認証を掛けられる
(下図はmail/dovecot#ye7dbf8aにて接続の保護を有効にしてます)
2017y03m29d_115240914.png
メールサーバのdovecotではクライアントからの接続が行われると下記の様なログを出します。

[root@c ~]# journalctl -f -u dovecot
 :
 3月 29 11:48:12 c.sybyl.local dovecot[9585]: imap-login: Login: user=<support@sysosa.jp>, method=CRAM-MD5, (略), TLS, (略)
 :
最新の60件
2026-04-22 2026-04-21 2026-04-20 2026-04-17 2026-04-16 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-04 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14 2026-03-13 2026-03-07 2026-03-06 2026-03-04 2026-03-02 2026-02-26 2026-02-24 2026-02-21 2026-02-18 2026-02-17 2026-02-16 2026-02-11 2026-02-09 2026-02-07 2026-02-06 2026-02-03 2026-02-02 2026-01-31 2026-01-26 2026-01-24

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-29 (水) 11:56:12