ドメインとDNSの設定
各サービスによるので一概に言えないが
freenomなどで無料ドメインを取得するか
各ドメインサービスよりドメインを取得する(例:black.jp)
ドメインが取れたらVPSなどのサーバのIPにDNS設定をする
digコマンドで設定したIPアドレスが引けていればOK
$ dig black.jp
(略)
; ANSWER SECTION:
black.jp. 300 IN A XXXX.XXX.XXX.XXX
ポートの開放
メールの送受信で使用されるポートを適宜解放する
サービス | ポート | 説明 |
---|---|---|
smtp | 25 | 送信。SMTPリレーに使用。暗号化なし |
smtp-submission | 587 | 送信。SMTPサブミッション用。TLS |
smtps | 465 | 送信。SMTPS(SMTP over SSL) |
pop3 | 110 | 受信。POP3。暗号化なし |
pop3s | 995 | 受信。POP3 over SSL。暗号化あり |
imap | 143 | 受信。IMAP4。暗号化なし |
imaps | 993 | 受信。IMAP4S。暗号化あり |
# firewall-cmd --add-service={imaps,pop3,smtp,smtps} --permanent
# firewall-cmd --reload
仮想ユーザー管理用のアカウント作成
通常のメールアドレスはOSのログインアカウントと紐づけているが
運用的にシステムのアカウントの増減が手間になるので
1つのダミーのアカウントを用意し、そのアカウント権限内で
メールアカウントを管理できるようにする。
ログイン不要のアカウント作成(例:アカウント名:vmail、uid:5000、gid:5000)
# groupadd -g 5000 vmail
# useradd -u 5000 -g vmail -s /sbin/nologin vmail
メールを受信するディレクトリを用意する
# mkdir /var/spool/virtual
# chown -R vmail:vmail /var/spool/virtual
Postfixのインストール
yumでパッケージインストール
# yum install postfix
編集するファイルはmain.cf
とmaster.cf
。
変更箇所のみを抜粋。
myhostname = black.jp
mydomain = black.jp
# 外部からのアクセスを許可。IPアドレスで制限かけることも可能
inet_interfaces = all
# 仮想ユーザーの場合はブランクとするらしい
mydestination =
# メールの保存方式をMaildir形式にする
home_mailbox = Maildir/
# バナーにメールソフトの情報を隠蔽する
smtpd_banner = $myhostname ESMTP unknown
#以下を追加。sasl authの設定
# sasl authを有効化
smtpd_sasl_auth_enable = yes
# sasl authの種別を設定。
# dovecotとcyrusがある。postconf -aで設定できるか確認。
# デフォルトはcyrusぽい。cyrusを使う場合はsaslauthdが別途必要。
smtpd_sasl_type = dovecot
# 認証用ソケット
smtpd_sasl_path = private/auth
# 匿名での送信拒否
smtpd_sasl_security_options = noanonymous
# ドメイン名の指定
smtpd_sasl_local_domain = $myhostname
# 接続時の制限
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
# 古いメールクライアント用
broken_sasl_auth_clients = yes
# 仮想ユーザの設定
# ドメイン設定、カンマ区切りで複数指定も可能
virtual_mailbox_domains = $myhostname
# 上記で作成したフォルダを指定
virtual_mailbox_base = /var/spool/virtual
# メールアドレスとメール保存先のmappingファイルを指定
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
# 上記で作成したアカウントのuidとgidを指定
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
vmailboxの作成
メールアドレスとフォルダの対情報を記載
保存先のフォルダ構成は、複数ドメインを考慮し
ドメイン名/ユーザー名/Maildir
とする。
admin@black.jp black.jp/admin/Maildir/
webmaster@black.jp black.jp/webmaster/Maildir/
yamada@black.jp black.jp/yamada/Maildir/
postmapコマンドでdbファイル化する。(vmalbox.dbファイルが生成される)
# postmap vmailbox
master.cf
ファイルを編集する。以下の行のコメント化を解除
smtp inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
postfixを再起動。
# systemctl restart postfix
dovecotのインストール
# yum install dovecot
編集するファイルは10-auth.conf
、10-ssl.conf
、10-auth.conf
、10-master.conf
。
10-auth.conf
で指定する以下のファイルも編集する。
auth-passwdfile.conf.ext
、auth-static.conf.ext
10-auth.conf
!includeの行で
auth-passwdfile.conf.ext
とauth-static.conf.ext
のコメント化を解除する。
disable_plaintext_auth = no
auth_mechanisms = cram-md5 plain
(略)
!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
!include auth-static.conf.ext
10-ssl.conf
sslの行を変更。noとする。
ssl = no
10-master.conf
service auth セクションのpostfix smtp-authを有効化する
service auth {
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
auth-passwdfile.conf.ext
passwddbとuserdb内のarg行を編集。schemeをCRAM-MD5に変更
passdb {
driver = passwd-file
# args = scheme=CRYPT username_format=%u /etc/dovecot/users
args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/users
}
userdb {
driver = passwd-file
# args = scheme=CRYPT username_format=%u /etc/dovecot/users
args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/users
}
auth-static.conf.ext
uidとgidを仮想ユーザー用のアカウントのid、homeに受信用のフォルダを指定
%dがドメイン名、%nがユーザー名
userdb {
driver = static
args = uid=5000 gid=5000 home=/var/spool/virtual/%d/%n
}
パスワードファイルの生成
# doveadm pw
Enter new password:
Retype new password:
{CRAM-MD5}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ファイルにメールアドレス:パスフレーズ
形式で追記する
admin@black.jp:{CRAM-MD5}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
yamada@black.jp:{CRAM-MD5}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
dovecotの再起動
systemctl restart dovecot
ユーザー管理
受信フォルダの作成
# mkdir -p /var/spool/virtual/black.jp/admin/Maildir
# mkdir -p /var/spool/virtual/black.jp/webmaster/Maildir
# mkdir -p /var/spool/virtual/black.jp/yamada/Maildir
# chown -R vmail:vmail /var/spool/virtual/black.jp/
# chmod 700 /var/spool/virtual/black.jp/