CentOSにDovecotをインストールしてから起動までに必要な最初の設定
掲載日:2021年1月4日
INFOMARTION > CentOSにDovecotをインストールしてから起動までに必要な最初の設定
概要
CentOSにDovecotをインストールしてから起動までに必要な最初の設定の手順です。CentOS7を前提に記載しています。受信プロトコルはimaps(IMAP over SSL)とpop3s(POP3 over SSL)で設定します。
Postfixと連動する形で設定しているので こちら からPostfixの設定も事前にお願いします。
バージョンは以下となります。
CentOSのバージョン | 7.6 (1810) |
---|---|
Postfixのバージョン | 2.10.1 |
Dovecotのバージョン | 2.2.36 |
目次
- インストール
- 1-1. Dovecotのインストール
- 1-2. 起動確認
- 設定内容
- 2-1. 初期設定
- 2-2. POP3とIMAPの設定
- 2-3. Dovecotの認証方法設定
- 2-4. メールの保管方法を「Maildir」形式に変更
- 2-5. 認証設定
- 2-6. 起動確認
- 2-7. 自動起動設定
- Outlookと連携
- 3-1. firewall設定
- 3-2. ユーザ作成
- 3-3. Outlookの設定
- 3-4. 送信受信テスト
- まとめ
1. インストール
Dovecotをインストールするところから起動までの設定について記載します。
1-1. Dovecotのインストール
yumコマンドによりDovecotのインストールを実行します。rootユーザで作業を実施してください。
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install dovecot
1-2. 起動確認
無事にインストール出来ているか確認するため、起動確認します。Dovecotは起動する時に引数にstartが不要なので注意しましょう。
[root@hostname ~]# /usr/sbin/dovecot
[root@hostname ~]# ps aux | grep dovecot
root 1470 0.0 0.1 16092 1156 ? Ss 18:38 0:00 /usr/sbin/dovecot
dovecot 1471 0.0 0.1 9752 1120 ? S 18:38 0:00 dovecot/anvil
root 1472 0.0 0.1 9884 1320 ? S 18:38 0:00 dovecot/log
root 1474 0.0 0.2 12916 2384 ? S 18:38 0:00 dovecot/config
root 1476 0.0 0.0 112824 968 pts/0 R+ 18:38 0:00 grep --color=auto dovecot
上記の通りdovecotユーザで起動しているプロセスがあればOKです。停止しましょう。
[root@hostname ~]# /usr/sbin/dovecot stop
2. 設定内容
2-1. 初期設定
Dovecotの初期設定をしていきます。
[root@hostname ~]# vi /etc/dovecot/dovecot.conf
以下の通り修正します。
#protocols = imap pop3 lmtp
~省略~
#listen = *, ::
~省略~
#login_greeting = Dovecot ready.
protocols = imap pop3
~省略~
listen = *
~省略~
login_greeting = pop3 and imap ready.
「protocols」はDovecotに接続するプロトコルを指定します。
「listen」は接続を許可するIPとなります。「*」なので接続するIPに制限が無い設定となります。接続するIPが決まっている場合はセキュリティのためにも具体的なIPを指定しましょう。 「::」はIPv6の設定ですが、IPv6は今回使用しないので削除します。削除することにより、IPv4のみ受け付けるようになります。
「login_greeting」接続した時のメッセージです。変更は必須ではありませんが、セキュリティのためにも接続した時にdovecotだと分からない様にメッセージを変更します。
2-2. POP3とIMAPの設定
POP3のウェルノウンポートである110ポートとIMAPのウェルノウンポートである143ポートの設定をしていきます。認証方法はPostfixと連携して認証を行いたいと思います。
[root@hostname ~]# vi /etc/dovecot/conf.d/10-master.conf
以下の通り修正します。
service imap-login {
inet_listener imap {
#port = 143
}
~省略~
service pop3-login {
inet_listener pop3 {
#port = 110
}
service imap-login {
inet_listener imap {
port = 143
}
~省略~
service pop3-login {
inet_listener pop3 {
port = 110
}
2-3. Dovecotの認証方法設定
Dovecotの認証方法にloginを追加します。
[root@hostname ~]# vi /etc/dovecot/conf.d/10-auth.conf
以下の通り修正します。
#disable_plaintext_auth = yes
~省略~
auth_mechanisms = plain
disable_plaintext_auth = no
~省略~
auth_mechanisms = login plain
2-4. メールの保管方法を「Maildir」形式に変更
メールの保管場所がユーザごとのホームディレクトリ(「/home/xxx/」配下)になるように設定します。
[root@hostname ~]# vi /etc/dovecot/conf.d/10-mail.conf
以下の通り修正します。
#mail_location =
~省略~
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
#location =
mail_location = maildir:~/Maildir
~省略~
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
location = maildir:~/Maildir
2-5. 認証設定
ssl設定を有効にします。
[root@hostname ~]# vi /etc/dovecot/conf.d/10-ssl.conf
以下の通り修正します。
ssl = required
~省略~
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
ssl = required
~省略~
ssl_cert = </etc/pki/tls/certs/localhost.crt
ssl_key = </etc/pki/tls/private/localhost.key
「ssl_cert」「ssl_key」は環境に合わせて設定してください。サーバ証明書が格納してあるパスを設定してください。
SSL設定が事前に必要なので、SSL設定をしていない人はSSL設定を先に実施してください。以下を参考にしてみてください。
CentOSにApacheをインストールしてから起動までに必要な最初の設定
続いてパスワードに関する設定を行います。「auth-system.conf.ext」を使用します。
[root@hostname ~]# vi /etc/dovecot/conf.d/auth-system.conf.ext
以下の通り修正します。
passdb {
driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
#args = dovecot
}
~省略~
#passdb {
#driver = shadow
# [blocking=no]
#args =
#}
#passdb {
#driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
#args = dovecot
#}
~省略~
passdb {
driver = shadow
# [blocking=no]
#args =
}
2-6. 起動確認
以上で設定は完了なので、設定完了後の状態でDovecotが起動するか確認します。startは引数に不要なので注意してください。
[root@hostname ~]# /usr/sbin/dovecot
[root@hostname ~]# ps aux | grep dovecot
root 1716 0.0 0.1 16092 1184 ? Ss 22:09 0:00 /usr/sbin/dovecot
dovecot 1717 0.0 0.1 9752 1120 ? S 22:09 0:00 dovecot/anvil
root 1718 0.0 0.1 9884 1312 ? S 22:09 0:00 dovecot/log
root 1720 0.5 0.2 12916 2396 ? S 22:09 0:00 dovecot/config
root 1722 0.0 0.0 112824 972 pts/0 S+ 22:09 0:00 grep --color=auto dovecot
上記の通りdovecotユーザで起動しているプロセスがあれば無事設定が完了していて起動してる状態となります。起動の確認が取れたので一旦、停止しましょう。
[root@hostname ~]# /usr/sbin/dovecot stop
2-7. 自動起動設定
最後に必須ではありませんが、毎回サーバ再起動の度に起動するのは大変なので、サーバ起動時にDovecotが自動起動するように設定を入れます。systemctlコマンドへの登録も行います。CentOS7の場合の手順なので、CentOS7以外を使用している方はServiceコマンドにより対応する必要があるので、ご注意ください。
「/usr/lib/systemd/system/dovecot.service」が存在するか確認します。無い場合は、以下の手順で「dovecot.service」を作成します。rootユーザで実行します。
[root@hostname ~]# touch /etc/systemd/system/dovecot.service
[root@hostname ~]# vi /etc/systemd/system/dovecot.service
以下の内容を記載します。
[Unit]
#説明
Description=Dovecot
#実行前、実行後を制御
#Before=xxx.service
After = network.target
[Service]
#ユーザ、グループ指定
User=root
Group=root
#起動したらステータスを起動中にする
Type=oneshot
RemainAfterExit=yes
#起動、停止、リロード
ExecStart=/usr/sbin/dovecot
ExecStop=/usr/sbin/dovecot stop
ExecReload=/usr/sbin/dovecot reload
[Install]
#runlevel3相当の設定
WantedBy=multi-user.target
次にsystemctlコマンドに登録します。
[root@hostname ~]# systemctl enable dovecot
[root@hostname ~]# systemctl is-enabled dovecot
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep dovecot
dovecot.service enabled
[root@hostname ~]# systemctl daemon-reload
3. Outlookと連携
以上で設定は完了ですが、Outlookを使って連携ができるか最後に確認したいと思います。
3-1. firewall設定
CentOS7のデフォルト値ではfirewall(CentOS6以前の場合はiptables) がsshしかアクセスを許可していないのでDovecotのポート(imapsとpop3s)をアクセス許可します。Postfixのポート(smtp)もアクセス許可します。設定を永続的にするために「permanent」オプションも追加します。
ポート番号はimapsは「993」、pop3sは「995」、smtp-auth「587」となります。
[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=993/tcp
[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=995/tcp
[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=587/tcp
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 8080/tcp 5432/tcp 993/tcp 995/tcp 587/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
「ports: 993/tcp 995/tcp 587/tcp」となったらOKです。
3-2. ユーザ作成
メールアドレス用のユーザを作成します。名前は何でも大丈夫です。送受信したいので2ユーザ作成します。
[root@hostname ~]# useradd senduser1
[root@hostname ~]# passwd senduser1
[root@hostname ~]# useradd receiveuser1
[root@hostname ~]# passwd receiveuser1
3-3. Outlookの設定
Outlookの設定をしていきます。「アカウントの追加」を選択します。
「自分で電子メールやその他のサービスを使うための設定をする(手動設定)」を選択します。
「インターネット電子メール」を選択します。
先ほど作成した「senduser1」で設定を行います。(receiveuser1も同様に設定を行います。)
デフォルト値だとimapsやsmtp-authのポート番号になっていので、詳細設定を行います。SSLの設定もします。
3-4. 送信受信テスト
アウトルックを使って「senduser1」から「receiveuser1」にメールを送信すると無事、送受信ができました。
4. まとめ
Dovecotをインストールした時に必要な最初の設定について記載させていただきました。
結構設定に苦戦したので、Dovecotを構築する方は参考にしてみてください。
最後までご覧いただきありがとうございました。