メールログに発見したDovecotの「Maximum number of connections from user+IP exceeded (mail_max_userip_connections)」を元に状況の確認と対策
Maximum number of connections from user+IP exceeded (mail_max_userip_connections)
Dovecotサーバに対して、共通のアカウントを用いて1アカウントを共有する形でアクセスしたい事があると思う。しかしそのように1アカウントを共有する形で運用をする場合、以下のようなエラーとなりメール受信が出来なくなることがある。
Maximum number of connections from user+IP exceeded (mail_max_userip_connections)
これはdovecotのデフォルトの設定によって制限されているものなので、運用中のdovecot.confをみても答えは出てきません。
mail_max_userip_connections
mail_max_userip_connections は1IPアドレスから1ユーザを用いて接続する際の接続数の上限を指定するものです。
この制限に引っかかっていますよ~いいんですか~?っていうのが今回のログになります。
■IMAPの場合は以下の通り、10が初期状態の制限値
# Maximum number of IMAP connections allowed for a user from each IP address. # NOTE: The username is compared case-sensitively. #mail_max_userip_connections = 10
■POPの場合は以下の通り、3が初期状態の制限値
# Maximum number of POP3 connections allowed for a user from each IP address. # NOTE: The username is compared case-sensitively. #mail_max_userip_connections = 3
詳細はこちら(英語):
http://wiki.dovecot.org/MainConfig?highlight=%28mail_max_userip_connections%29
この接続数の上限を超えて接続をしたいのであれば、運用中のdovecot.confに以下のような記述を追加することで問題を回避できます。
mail_max_userip_connections = 15
もちろん、dovecotの再起動をお忘れなく。
ちょっとだけ読んでほしい私からの意見
しかし、1アカウントを共通で使うことのメリットに対しデメリットも大きい。
- 既読未読の区別がユーザ各々で出来ない(IMAPの場合)
- アカウントが壊れた場合に被害を受けるユーザが多い
- 利用者が利用から離れたときにパスワードの変更を検討する必要がある
- 誰が送ったのかの特定が面倒
個人的にはエイリアスの機能を用いて、1メールアドレスに来たメールを複数ユーザーに内部転送する運用をお勧めする。メーリングリストなどはこの形をとっていますね。たとえば、「imap-account@domain.com」に来たメールを複数のアカウントに転送するってことです。転送先のユーザーは異なり、メール受信時のバスワードもユーザー毎に異なりますね。
確かにパスワードの管理が増えるがサーバに与える負荷分散を考えれば考慮すべき点と思います。
以上
コメント