CentOS 7にて、Postfix+Dovecotでのメールサーバ構築を行う。 あくまでも基本的な内容のみなので、SSL非対応・PAM認証方式とする。

1.Postfix+Dovecotのインストール

まず、以下のコマンドでPostfixおよびDovecotのインストールを行う。

yum install -y postfix dovecot cyrus-sasl cyrus-sasl-*

これでパッケージのインストールは完了。

2. Postfixの設定

Postfixの設定を行う。 設定ファイル「/etc/postfix/main.cf」にて、以下の項目について記述を変更・追記する。

/etc/postfix/main.cf
# ホスト名(fqdn)を指定 myhostname = mx.example.com # メールで使用するドメイン名を指定 mydomain = example.com myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # 自身の所属するローカルネットワークを追記 mynetworks = 127.0.0.0/8,192.168.0.0/24 # Maildir形式を指定 home_mailbox = Maildir/ # メールサーバのソフト名・バージョンを非表示にする smtpd_banner = $myhostname ESMTP # SMTP-Authの設定追記 smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

認証用のデーモンである「saslauthd」を起動する。

systemctl start saslauthd
systemctl enable saslauthd

3. Dovecotの設定

次に、Dovecotの設定を行う。 Dovecotの場合はいくつか設定ファイルがあるので、それぞれ設定を変更する。

/etc/dovecot/dovecot.conf
# コメントアウト解除 protocols = imap pop3 lmtp listen = *, ::
/etc/dovecot/conf.d/10-auth.conf
# プレーンテキスト認証を許可 disable_plaintext_auth = no # 追記(プレーンテキスト認証を許可) auth_mechanisms = plain login
/etc/dovecot/conf.d/10-mail.conf
# コメントアウト解除してMaildir形式に変更 mail_location = maildir:~/Maildir
/etc/dovecot/conf.d/10-master.conf
# コメントアウト解除してユーザ・グループを追記 # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
/etc/dovecot/conf.d/10-ssl.conf
# SSLを要求しないように変更する ssl = no

4. サービス起動やファイアウォール・ユーザなどその他の設定

4-1. サービス起動

PostfixおよびDovecotの設定が変更できたら、サービスの再起動と自動起動設定を行う。

systemctl restart postfix dovecot
systemctl enable postfix dovecot

4-2. Firewalldの設定

次に、以下のコマンドでFirewalldの設定を変更し、ポートの開放を行う。

firewall-cmd --zone=public --add-service=smtp --permanent
firewall-cmd --add-port={110/tcp,143/tcp} --permanent
firewall-cmd --reload

4-3. ユーザ設定

今回の設定では、pam認証となっているためLinuxユーザのホームディレクトリ(/home/ユーザ名)配下に存在するメール用のディレクトリにデータが保持される。 で、ユーザ作成時に自動的にメール用ディレクトリが作成されるようにする。

mkdir -m700 /etc/skel/Maildir{,/cur,/new,/tmp}

メール専用ユーザを作成する場合は、ログインシェルは/sbin/nologinにしておこう。

useradd test -s /sbin/nologin

4-4. DNSへMXレコードの設定

最後に、対象のドメインで使用しているDNSサーバにMXレコードの追加をしてやる。

これで、とりあえずメールサーバの構築は完了。 ただ、今時SSL対応もしないで存在しているメールサーバとか危険極まりないので、何かしらの対応をした方がいいだろう。

少なくとも、検証ならまだしもどう考えてもこの設定のまま本運用には載せないほうがいい。