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

これで追加ドメインのメール送信先は web.chaperone.jp となる。
方法は3つあるそうで、
:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, sysosa.jp
: :
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
virtual_alias_domains = sysosa.jp
virtual_alias_maps = hash:/etc/postfix/virtual
:support<_at_>sysosa.jp support-a *対策表示postmap /etc/postfix/virtual設定ファイル/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.jp、sysosa.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/vmailpostfoxが受領したメールを保存する場所に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/vmailboxpostfixを再起動させて、ここでテストを実施。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. の最後の「.」に注意
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化したパスワードを載せるのだろうが、まずはテストとして通信可能なことを確認する。
ここでは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にて接続の保護を有効にしてます)

メールサーバの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, (略)
: