メールサーバを作ります-4

3の続きです。

・dovecotの設定

dovecotの設定をします。

dovecotは/etc/dovecot.confと/etc/dovecot/conf.d/配下にあるxx-hoge.confで設定を行います。
作業前には必ずバックアップを取りましょう。

/etc/dovecot.confの内容です。

# Protocols we want to be serving.
protocols = imaps pop3s

23行目くらい。
プロトコルを指定します。行頭のコメントアウトを外して、今回はサーバ証明書を使うのでimapsとpop3sにします。
POPoverSSLを利用しない場合には末尾のsがないimapとpop3と書きます。

/etc/dovecot/conf.d/10-auth.confの内容です。

# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
disable_plaintext_auth = yes

5行目くらい。
認証にプレーンテキストを使うかどうかを設定します。yesでSSL/TLS以外の場合の平文認証を拒否します。SSL/TLSの場合は自動で平文認証になります。
デフォルトはyesになっているのでコメントアウトを外します。

# Space separated list of wanted authentication mechanisms:
#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
#   gss-spnego
# NOTE: See also disable_plaintext_auth setting.
auth_mechanisms = cram-md5 digest-md5 plain login

96行目くらい。
認証に使う暗号方式を設定します。
メールクライアントによってサポートする暗号方式がいろいろ違うのですが、メジャーなところでcram-md5とdigest-md5を追加しました。

!include auth-passwdfile.conf.ext

125行目くらい。
認証に使う方式を設定します。他にも#!include hoge.conf.extとコメントアウトされた状態の認証方式設定ファイルが並んでいます。おいちゃんはパスワードファイルを使う方法を選んでみました。対象の行のコメントアウトを外します。

/etc/dovecot/conf.d/auth-passwdfile.conf.extの内容です。

10-auth.confで指定した「パスワードファイルを使った認証方式」のための設定になります。
指定した認証方式が違う場合は対象のhoge.conf.extを設定していくことになります。

passdb {
  driver = passwd-file
  #args = scheme=CRYPT username_format=%u /etc/dovecot/users
  args = /etc/dovecot/user
}

userdb {
  driver = passwd-file
  #args = username_format=%u /etc/dovecot/users
  args = /etc/dovecot/user

8行目くらい。
デフォルトのargs~をコメントアウトし、パスワードファイルの場所を記載します。パスワードファイルは次で作ります。

パスワードファイルの作成です。

まず、以下のコマンドでパスワードを暗号化したものを作ります。

[root@centos7 dovecot]# doveadm pw -s CRAM-MD5
Enter new password:
Retype new password:
{CRAM-MD5}<password>

のところに暗号化された文字列が出るので、それをコピーして新規ファイルを作ります。
ファイルを作る場所、ファイル名は上記のauth-passwdfile.conf.extで指定したものにします。

user1@oichan.com:{CRAM-MD5}<password>:<uid>:<gid>::Maildir:/home/user1/Maildir

/etc/dovecot/conf.d/10-mail.confの内容です。

# Location for users' mailboxes. The default is empty, which means that Dovecot
# tries to find the mailboxes automatically. This won't work if the user
# doesn't yet have any mail, so you should explicitly tell Dovecot the full
# location.
・
・
・
mail_location = maildir:~/Maildir

30行目くらい。
メールボックス形式をしていします。
コメントアウトを外して右辺を記載します。

/etc/dovecot/conf.d/10-master.confの内容です。

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
・
・
・
service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

17行目と38行目くらい。
使うポートを指定します。imapsとpop3sを使う、としたのでimapsとpop3sのほうだけコメントアウトを外します。

/etc/dovecot/conf.d/10-ssl.confの内容です。

# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
ssl = yes

5行目くらい。
SSLの設定を有効にします。デフォルトはrequiredなのでyesに変えます。

# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = </etc/pki/tls/certs/mailserver.crt
ssl_key = </etc/pki/tls/certs/mailserver.key

10行目くらい。
keyファイル、crtファイルの場所を記述します。

# If key file is password protected, give the password here. Alternatively
# give it when starting dovecot with -p parameter. Since this file is often
# world-readable, you may want to place this setting instead to a different
# root owned 0600 file by using ssl_key_password = <path.
ssl_key_password = <password>

17行目くらい。
keyファイルのパスワードを書きます。
説明文にもありますが、パスワードを書いているのでこのファイルは編集が終わったら所有者をrootとし、root以外は読み書きできない(0600)ようにします。忘れないでね。

これでpostfix、Dovecotの設定は終了しました。
サービスの再起動と自動起動設定をします。

[root@centos7 ~]# systemctl restart postfix
[root@centos7 ~]# systemctl enable postfix
[root@centos7 ~]# systemctl restart dovecot
[root@centos7 ~]# systemctl enable dovecot

メールユーザを作ります。
最初にメールディレクトリをユーザを作ったら自動で作れるようにします。

[root@centos7 ~]# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
[root@centos7 ~]# chmod -R 700 /etc/skel/Maildir/

実際にメールユーザを作ります。
基本的にメールはどんな人にでもアカウントを付与しなければならないのでログインできないユーザで作ります。
dovecotでパスワードファイルに書いたユーザで作ります。

[root@centos7 ~]# useradd -s /sbin/nologin user1
[root@centos7 ~]# passwd user1
Changing password for user user1.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

firewalldの穴あけをします。

[root@centos7 ~]# firewall-cmd --add-service=imaps --zone=public --permanent
[root@centos7 ~]# firewall-cmd --add-service=pop3s --zone=public --permanent
[root@centos7 ~]# firewall-cmd --zone=public --add-port=587/tcp --permanent
[root@centos7 ~]# firewall-cmd --reload

firewallだとサービス、という設定が別にあってpop3sやimapsはあるのですが、smtpで指定すると25番ポートが空いてしまうので、smtpはポート番号で指定します。

最後にメールドメインを設定します。
postfixでしていしたドメイン(ここではoichan.com)をMXレコードに設定します。
やり方は各サービスで手順を公開していると思うので、それを参照にしてください。

えっちらおっちらで作りましたが、なんとかまともに動いてくれました。
で、小人さんにも会えたのです。

小人さんがRFCという謎のルールで会話している事実が分かったわけです。

とりあえずね、おいちゃんはね、思い知ったのよ。

メールサーバ運用するならRFC嫁

(>’A`)>ウワァァ!!

それはさておき、やっぱりわかんない時は手を動かすのが一番だなぁ、と。
あと、手を動かして作った後はこうやってまとめると「あれ?この設定なんで入れたっけな」とかまた調べなおすことで見直すきっかけにもなるなぁと思う中年です。(これ書いてる間、アカンとこをいろいろ直してたりする。)

ちなみにこの後、

メールサーバ立てる→トラブルシューティング、っていうかトラブルしかない→泣きながらRFC読む

という拷問にあって、引き続きまたデカい知見を得るのです。

メールには相手がいる

メールには名前解決がいる

そう。メールのトラブル、つまり「送れない」「届かない」「遅れる」はMTA側だけじゃなく複合的に発生するので一個一個潰していかなければならないのです。
DNSを調べ、ネットワークを調べ、相手の状況を確認し、「セキュリティの都合上、回答できません」とか言われる日々・・・。

いやぁ、メールって本当に奥が深いでつね(ヽ’ω`)

広告
カテゴリー: お仕事 タグ: パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中