user icon

Dovecotのmaster-usersとdeny-users

Dovecotで、認証系のファイルを確認していて、ちょっと特殊な、
・誰のアカウントにもログイン出来るmasterユーザ
・ログインを禁止するdeny
という機能が有ったので、設定をしてみました。
※masterユーザは強力な機能なので、通常は設定しない方が良いと思います。

master

  • conf.d/10-auth.conf
auth_master_user_separator = *

## Password and user databases
# ...
!include auth-master.conf.ext
auth_username_charsへ、*の追加は不要なようです。
  • conf.d/auth-master.conf.ext
passdb {
  driver = passwd-file
  master = yes
  args = /etc/dovecot/master-users
  result_success = continue
}
/etc/dovecot/master-usersは、htpasswdで作成出来ます。
htpasswdが無ければdoveadm pwでパスワード生成して、直接編集してもOKです(user:pass で1行の形式)。
htpasswd -b -c -s /etc/dovecot/master-users admin adminpass
RoundCubeで、user*master 形式でログインしてみると、userで指定した部分のメールボックスを使用する事が出来ます。この時入力するパスワードは、adminの方になります。
下記例です。
aikawa@virtual.localdomain*admin
adminpass
なお、masterでなくuserを後ろにすると、masterユーザをaikawa@virtual.localdomain と認識して(masterが居ないので)、ログインに失敗します。
admin*aikawa@virtual.localdomain
adminpass

deny-users

auth-deny.conf.extを有効にすると、認証をdenyするユーザ一覧を作成する事が出来ます。
  • conf.d/10-auth.conf
!include auth-deny.conf.ext
これでauth-deny.conf.extに記載された/etc/dovecot/deny-usersにユーザを追加すると、ログインに失敗するようになります。
  • /etc/dovecot/deny-users
aikawa@virtual.localdomain
test@virtual.localdomain
上記のように1行ごとに1ユーザを追加します。これで上記ユーザで直接ログインしようとすると、失敗します。
ではadminユーザはというと、どんな風に記載してもログイン出来てしまいます。
admin
aikawa@virtual.localdomain*admin
admin*aikawa@virtual.localdomain
auth-deny.conf.extにmaster=yesと書いてみると、全てのIMAP接続に失敗するようになってしまいました。
ちょっと試した感じでは、masterはdenyリストへ追加出来ないようです。
またauth-deny.conf.extのdriverにsqlやldapを指定する事も出来るようですが、それだと全ユーザが引けてしまい、ログインに全員失敗してしまう例が有りました。
やるならsqlの設定ファイルを変えて、別レコードにするとかで行けるかも知れませんが。
Facebooktwitterlinkedintumblrmail
名前
E-mail
URL
コメント

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)