KUSANAGI for さくらへPostfix+Dovecotの導入方法

※当ブログでは商品・サービスのリンク先にプロモーションを含みます。ご了承ください。

環境

  • CentOS 7
  • KUSANAGI Version 8.0.1-2

Postfix

Postfixの導入

# postfixのインストール(既にインストール済みなら必要ありません)
yum install postfix

# バージョン確認
postconf mail_version
mail_version = 2.10.1

# デフォルトMTAの切り替え
alternatives --config mta

1 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.postfix # postfixが選択されているか確認

Postfixの設定をする

# ディレクトリ移動
cd /etc/postfix

# コピー作成
cp main.cf main.cf.org

# 編集
vim main.cf

myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown

# ページ下部に追加
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtp_tls_security_level = may
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination

# postfixの設定確認
postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = example.com
myhostname = mail.example.com
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_tls_security_level = may
smtpd_banner = $myhostname ESMTP unknown
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
unknown_local_recipient_reject_code = 550

master.cfの編集

# 設定ファイルのバックアップ
cp -a master.cf master.cf.org

# 変更
vim master.cf

submission inet n       -       n       -       -       smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination

SMTP-Auth設定

yum install cyrus-sasl

# 起動
systemctl start saslauthd

# 自動起動設定
systemctl enable saslauthd

Dovecotの導入

# dovecotのインストール(既にインストール済みなら必要ありません)
yum install dovecot

# バージョン確認
dovecot --version
2.2.10

10-mail.confの設定

# ディレクトリ移動
cd /etc/dovecot/conf.d

# 設定ファイルのバックアップ
cp -a 10-mail.conf 10-mail.conf.org

# 設定変更
vim 10-mail.conf

- #mail_location =
+ mail_location = maildir:~/Maildir

10-auth.confの設定

# 設定ファイルのバックアップ
cp -a 10-auth.conf 10-auth.conf.org

# 設定変更
vim 10-auth.conf

- #disable_plaintext_auth = yes
+ disable_plaintext_auth = no

10-ssl.confの設定

# 設定ファイルのバックアップ
cp -a 10-ssl.conf 10-ssl.conf.org

# 設定変更
vim 10-ssl.conf

- ssl = required
+ ssl = no

Dovocotの起動+自動起動設定

# Dovecotの起動
systemctl start dovecot

# Dovecotの自動起動設定
systemctl enable dovecot

メールアカウント用システムユーザーの作成

# 自動でMaildir形式のメールボックスが作成されるように
mkdir -p /etc/skel/Maildir/{new,cur,tmp}

# パーミッション変更
chmod -R 700 /etc/skel/Maildir/

# ユーザー作成(メールアカウント用なのでSSH接続はさせない)
useradd -s /sbin/nologin info

# パスワード設定
passwd info
ユーザー info のパスワードを変更。
新しいパスワード: #パスワードを入力してエンター
新しいパスワードを再入力してください: #パスワードを入力してエンター
passwd: すべての認証トークンが正しく更新できました。

ポートの開放

# 現在利用可能なサービス(ポート)を確認します。
firewall-cmd --list-services

# 現在利用可能なポートを確認します。
firewall-cmd --list-ports

firewall-cmd --zone=public --add-service=smtp --permanent
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --zone=public --add-port=587/tcp --permanent
firewall-cmd --zone=public --add-port=110/tcp --permanent
firewall-cmd --zone=public --add-port=143/tcp --permanent

レコードの設定
私の場合はAWSのRoute53で設定しました。

# `mail.example.com`にAレコードでIPアドレスを登録
mail.example.com. A 000.00.000.000 # サーバーのIPアドレス

# `example.com`にMXレコードで`10 mail.example.com.`を設定
example.com. MX 10 mail.example.com.

# `example.com`にTXTレコードで`"v=spf1 ip4:000.00.000.000 -all"`を設定
example.com. IN TXT "v=spf1 ip4:000.00.000.000 -all"

以上でメールの送受信の設定は完了です。
後はメールアカウントの追加などを行ってください。