Dovecot(2)
>>110 手段は基本的にIMAPです。 IMAP接続の際に、複数のメールボックスがあった場合、接続するメールボックスを選びたいなあと思ってました。 >>111 もうちょっとkwsk説明頂いてもよろしいですか? 普通にフォルダでいいじゃん。 IMAPクライアントからフォルダ作ればいい。 フォルダの実体はMailDirとは別の場所になるだろうけど、 そんなことはクライアントから見たらどうでもいい。 > 結局、dovecotのポート番号を変えたインスタンスをもう1つ起動することにしました。長々と失礼しました。 同じパスワードの別アカウント作ったほうが、ずっと簡単なんじゃない? 同一ID・パスワードに拘る理由がよくわからん。 dracのこと? pop before smtpってsmtp authが使えるMUAが普及するまでの つなぎでやむなくやってたことだよ。 とっとと捨てろ。 v2.0.11だ v2.0.10に問題あったみたいね Dovecot に対して、総当たりの不正アクセス(適当なユーザ名/パスワード)攻撃が 頻繁にあります。 ある基準でこれを「不正アクセス」と判断して、その IP からの接続を叩き切るとい うような仕掛けを作りたいんだけど、何か手がかりはありますか? つ ttp://ap.atmarkit.co.jp/bbs/core/flinux/14956 あのさ、sshd アタックを防御する次のような二行 iptabels コマンドがあるだろ? # iptables -A INPUT -ieth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH # iptables -A INPUT -ieth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP これを pop や imap のポートにすることでオッケー? まず日本語(と、一部英語)を勉強してから、書き込め >>128 sshd アタックを防御する二行 iptabels コマンドの中のポート番号に該当する箇所 を pop あるいは imap のポート番号に変更することで、sshd アタックの防御に相当 する効果を得ることができますか? 「一部英語」が「iptabels」なのを理解しろよ sshdは何回かパスワードが一致しなかったら接続を切るので、総当り攻撃するには何度も新しく接続し直すことになる。 そのiptablesの設定は、新しい接続(--state NEW)が60秒間で8回になったらDROPするわけだけど、 Dovecotは何回かパスワードが一致しなかった場合に接続を切るのだろうか。そこが問題だ。 dovectoとなんら関係ない話だな、セキュリティ板でやるべき >>132 なるほどな。 Dovecot には、N回、接続に失敗したらアカウントロック(?)するような設定って、 ないのか? dovecot2 だと標準でそういう機能があるっぽいんだけど、 ドキュメントのどこにも使い方が書いてない。 とりあえず doveadm penalty というコマンドを叩くとそのへんの状況が見えるんだけど、 それを実際の運用に生かすにはどうしたらいいのかさっぱり。 ようやくwww.dovecot.orgに繋がるようになったな Postfixの仮想アカウントで使ってるんだが、認証関連のファイルを統合出来ないかな? ファイルがいくつもあって管理が面倒臭い パスワードが通らなかった場合waitを入れることって可能なのかな ちもが I recently created Dovecot Solutions Oy (Ltd) company with two other guys. なんて言ってるぞ >>138 できるよ。smtpd_sasl_type = dovecot でググってみて。 ところで質問なんだけど、2.0系をconfigureするときに、 UNIXアカウント認証を組み込まない場合ってどうするんだろ。 --without-shadow --without-pam を入れたんだけど、これで良い? ↓を見る限りでは組み込まれてる? shadowは抜けてるけど。 passdbs ........ : static passwd passwd-file checkpassword : -shadow -pam -bsdauth -sia -ldap -sql -vpopmail userdbs ........ : static prefetch passwd passwd-file checkpassword : -ldap -sql -vpopmail -nss >>146 自己レス。UNIXアカウントで認証したらエラーになったので大丈夫ぽい。 仮想アカウントとOSアカウントを共存させようとしたら意外と面倒だ… 特にmboxにしようとするとハマる('A`) Maildirにした方が手っ取り早いかなあ 何故にそんなことをしたいんだろ? UNIXアカウントベースで運用していたメール鯖に、 別のドメインのメールサーバも機能追加してバーチャル? もし俺だったら、元々あったUNIXアカウントベースのものも、 この際バーチャルに移行しちゃうけどな。 >>149 まさにそのシチュエーション で、俺もこの際全て仮想に移行したw root宛てやら/dev/null行きやら、ちょっと面倒だったけど、 管理が楽ちんになっておおむね幸せ v2.1.alpha1 が出ましたよ、と rel note見たけどXapianって流行ってるの? v2.1.alpha2コンパイルにコケた FreeBSDで試した人いる? リリースみたんだけどVSZってvirtual memory sizeのこと? vpopmail+Courier-IMAPから Postfix+Dovecotへ移行を考えています。 Maildir形式でかつCourier-IMAPで使ってたようにディレクトリをクライアント(OLEでINBOX)から作成して procmailで振り分けてました。 これを再現しようとしてるのですが何故かディレクトリ作成するとエラーになります。 よろしければご教授くだささい! Dovecotは1.0.7でCentos5を使ってます。 namespace private { prefix = INBOX. inbox = yes } >>161 separator=のコメントアウトを外していたのが原因でした。 ただ、OLEでは正常動作するのですがWindowsLiveだと Courier-IMAPのような動作がしません。 具体的にはINBOXを設定すると受信トレイが消えたり、INBOXの設定をしないと 今度は受信トレイしか使えず送信済みのメールがメーラーから見えなくなります。 Courier-IMAPの場合はINBOXを指定することでWindowsLiveでもOLEでも見た目上の動作は同じでした。 Dovecot側で対応できるとするとnamespace privateの中身の設定ぐらいだと思うのですが 現状WindowsLiveで安定動作している方がいらっしゃいましたら設定のアドバイスをお願いします。 namespace private { prefix = INBOX. inbox = yes } 2.0.17 です dovecot.confで login_access_sockets = tcpwrap service tcpwrap { client_limit = 128 executable = tcpwrap unix_listener login/tcpwrap { user = $default_login_user group = $default_login_user mode = 0600 } } としているのですが dovecot: tcpwrap: Error: tcpwrap must be configured with client_limit=1 となります。 たまに出るようです。まだ、不安定な機能なのでしょうか? >>167 めんぼくない。 逆の意味にとっていてなんで増えないんだーと、勘違いしてました 今までMailDirで運用していたんですが、サーバ移行契機でmbox運用に変えることに。 過去に受信したMailDirのメールを新サーバのmboxに移動させることってできますか? >>175 maildir2mbox qmailに付属しているそうです。使った事はありません。 もし、よかったら問題の出やすいmboxにもどす理由を教えて下さい >>176 結局は移行後もMairDirを採用しました。 mboxにしようと思ったのは単に1ファイルで楽そうだなという安易な考えでした。 ありがとうございました。 そこで mbox.sqlite ですね分かりませんけど Dovecot LDA、managesieveで快適すぐる、、神だわ、、 dovecotは日本語の情報が少ないね。正直キツイです。 Dovecot 2.0.19を利用しているのですが、LDEとsieveが動かなくて困っております。 「telnet 0 sieve」でつながるのですが、どうもLDAとsieveが動いていないようです。 ちなみにdovecot.confには「protocols = imap pop3 lmtp sieve」と記述しており、 Postfix側のmaster.cfには、 dovecot unix - n n - - pipe flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${user}@${nexthop} -m ${extension} と記述しています。 ログを見てもエラーは全く出ておらず、sieveが全く動いていないようです。 何か気になる点があれば些細な事でもよいのでご教示お願いします。 main.cfにどう設定したかわからんので何とも答えようがない。 …まさかmaster.cfに追加しただけでおしまいじゃないだろうな? >>189 まず、postfixのログを見てみましょうよ。 postfixがdovecot-ldaに渡しているかどうか。 渡しているというログが無ければ、どこに行ってるのかを調べましょう。 postfix/pipe ..... relay=dovecot .... (delivered via dovecot service) こんなはありますか? dovecot.conf の protocols = imap pop3 lmtp sieve ですが sieve ではなくて managesieve ではありませんか? ltmpも必要ですか?postfixからpipeでdovecot-ldaに送るのならltmpは不要だと思いますが。 とりあえずsieveは後回しにして、postfix -> dovecot-lda で配信できるところまで確認しましょうよ。 ltmp じゃなくて lmtp でした。 寒くて指が変な動きになってる。 みなさんありがとうございます。 明日もう一度試してみます! m(_ _)m 先日はありがとうございました。 あれから色々と試行錯誤しましたが、やはりうまく動きませんでした。 現在の環境はバーチャルホスト(postfixadminを使用)&imap4で、roundqubeで受信した際に振り分けをしたいと思っています。 roundqubeから振り分け設定をすると設定ファイルが作成されるのですが、実際にには振り分けが行われていない状態です。 postfixのmaster.cfには以下のように設定しています。 dovecot unix - n n - - pipe flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient} またmain.cfは以下のように設定しています。 virtual_transport = dovecot mailbox_command = /usr/lib/dovecot/dovecot-lda この2つがよく分からないのですが、 マニュアルを見る限りでは、virtual_transportはバーチャル環境の倍愛、DBの設定に上書きされるとなっており、 BD上はvirtualになっています。 あとマニュアルにはmailbox_commandの初期値はlocalとなっているのですが、 ここはコマンドを直接記述する場所ではないのでしょうか? >> 190 すいません、よく理解できてないです>< >> 191 sieveをmanagesieveに変えてlmtpを削除しましたが、 「postfix/pipe .....」というログは残っていませんでした。 正直な所、postfix&dovecotはあまりよく理解しておりません。 ど素人で申し訳ないですが、よろしくお願いします。 >>194 > あれから色々と試行錯誤しましたが、やはりうまく動きませんでした。 メールボックスへの配信はされているが、振り分けはされていない、ということですか? メールボックスへの配信も、うまく動いていないのでしょうか? 前者ならdovecotでsieveプラグイン(managesieveとは別)の設定ができていないからだと思います。 > 現在の環境はバーチャルホスト(postfixadminを使用)&imap4で、roundqubeで受信した際に振り分けをしたいと思っています。 振り分けするのはroundcubeではなく、dovecotのsieveなのですが、その点は誤解しないようにしてください。 > roundqubeから振り分け設定をすると設定ファイルが作成されるのですが、実際にには振り分けが行われていない状態です。 どのように確認しましたか?多分大丈夫だと思いますがメールボックスディレクトリ下にsieveというディレクトリが出来て その中にxxx.sieve のような拡張子が .sieve のファイルがあり、メールボックスディレクトリ直下に .dovecot.sieve という 名前のシンボリックリンクが出来ていますか? >>194 > postfixのmaster.cfには以下のように設定しています。 > dovecot unix - n n - - pipe > flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient} > > またmain.cfは以下のように設定しています。 > virtual_transport = dovecot ここまで私も同じです。この設定でmaster.cfのdovecotエントリーを使うように指定しています。 > mailbox_command = /usr/lib/dovecot/dovecot-lda これは設定していません。メールボックスへの配信には(master.cfで記述してある)dovecotを使うからです。 > この2つがよく分からないのですが、 > ここはコマンドを直接記述する場所ではないのでしょうか? postfixはメールボックスへ配信するための仕組みを複数持っています。その内のどれを使うかで設定は変わります。 最終的に同じようにメールボックスへ配信される設定が、複数あるということです。 徐々に機能追加されているので、どのやり方をするのか迷うことは多々あると思います。 コマンドを直接記述する場所ですが、私は使っていません。 > sieveをmanagesieveに変えてlmtpを削除しましたが、 > 「postfix/pipe .....」というログは残っていませんでした。 mailbox_command = /usr/lib/dovecot/dovecot-lda で配信されているのでしょうか? >>194 managesieve は sieveファイルを更新するためのサービスで振り分けなどのsieveの実行を行うものではありません。 dovecotの話が全然、ないですね。sieveを実行するのは lda なので dovecot.confの protocol lda {} 内の mail_plugins = に sieve を追加します。 mail_plugins = sieve sieveの設定は plugin {} 内にあります。 sieve=~/.dovecot.sieve sieve_dir=~/sieve こんなふうになるはずですけどね。 >> 195 現在メールの送受信は問題なくできています。 > 振り分けするのはroundcubeではなく、dovecotのsieveなのですが、その点は誤解しないようにしてください。 その点も理解しています。あくまで設定ファイルは問題なく作成されていると言う事です。 分かりにくい説明で申し訳ないです。 > メールボックスディレクトリ下にsieveというディレクトリが出来て > その中にxxx.sieve のような拡張子が .sieve のファイルがあり、メールボックスディレクトリ直下に .dovecot.sieve という > 名前のシンボリックリンクが出来ていますか? こちらも問題なくできております。 >> 196 >> mailbox_command = /usr/lib/dovecot/dovecot-lda > これは設定していません。メールボックスへの配信には(master.cfで記述してある)dovecotを使うからです。 ありがとうございます。こちらはコメントアウトさせてもらいました。 > mailbox_command = /usr/lib/dovecot/dovecot-lda > で配信されているのでしょうか? 現在問題なく配信されています。 >> 197 > managesieve は sieveファイルを更新するためのサービスで振り分けなどのsieveの実行を行うものではありません。 丁寧にありがとうございます。 てっきりsieveが振り分けを行うものだと思っていました。 所で、現在はバーチャルホストの環境なのですが、この場合も > sieve=~/.dovecot.sieve > sieve_dir=~/sieve で正しく動いてくれるのでしょうか? 度重なる質問すいません。 >「postfix/pipe .....」というログは残っていませんでした。 っていうんだから、単純に postfix の設定が足りてないだけでしょ。 今のまま dovecot 側の設定をいくらいじっても状況は変わらない。 virtual_transport = dovecot と書くだけじゃダメ。 どのドメイン宛のメールを virtual_transport で配送するかを ちゃんと指示してやらないといけない。そのへんが足りてないんじゃないの? >>198 >> managesieve は sieveファイルを更新するためのサービスで振り分けなどのsieveの実行を行うものではありません。 >てっきりsieveが振り分けを行うものだと思っていました。 誤解を招くような書き方でした。 振り分けを行うのは sieve です。 managesieve は sieveの実行を行うものではありません。 dovecot-lda が配信時にsieveファイルに従って(実行して)振り分けます。 > 所で、現在はバーチャルホストの環境なのですが、この場合も >> sieve=~/.dovecot.sieve >> sieve_dir=~/sieve >で正しく動いてくれるのでしょうか? 動きますよ。 >> 199 >> 「postfix/pipe .....」というログは残っていませんでした。 > っていうんだから、単純に postfix の設定が足りてないだけでしょ。 > 今のまま dovecot 側の設定をいくらいじっても状況は変わらない。 マニュアルを見た限りではバーチャルドメインをBDで管理する場合、DBのtransportフィールドが優先されるという事だったので、 該当フィールドを「dovecot」にしてみましたが、状況は変わりませんでした。 (もちろんログに変化もありませんでした。) >> 200 >>で正しく動いてくれるのでしょうか? > 動きますよ。 ありがとうございます。 しかし現時点では199さんがおっしゃる通りpostfixの問題を解決しなければならないようですね…。 以下は送受信テストのログです。 Dec 18 17:44:30 mail mail/smtpd[13940]: connect from ホスト名[***.***.***.***] Dec 18 17:44:30 mail mail/smtpd[13940]: 4ECEF8404D5: client=ホスト名[***.***.***.***], sasl_method=PLAIN, sasl_username=from@ドメイン Dec 18 17:44:30 mail postfix/cleanup[13921]: 4ECEF8404D5: message-id=<50D02CF8.9060603@ドメイン> Dec 18 17:44:30 mail postfix/qmgr[13334]: 4ECEF8404D5: from=<from@ドメイン>, size=306, nrcpt=1 (queue active) Dec 18 17:44:30 mail postfix/virtual[13922]: 4ECEF8404D5: to=<to@ドメイン>, relay=virtual, delay=0.35, delays=0.34/0/0/0, dsn=2.0.0, status=sent (delivered to maildir) Dec 18 17:44:30 mail postfix/qmgr[13334]: 4ECEF8404D5: removed Dec 18 17:44:30 mail mail/smtpd[13940]: disconnect from ホスト名[000.000.000.000] Dec 18 17:44:36 mail dovecot: imap-login: Login: user=<to@ドメイン>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=13951, secured Dec 18 17:44:36 mail dovecot: imap(to@ドメイン名): Disconnected: Logged out bytes=375/4404 受信クライアントがループバックなのは、roundcubeが同じサーバーで動いているからです。 よろしくお願い致します。 >>201 Dec 18 17:44:30 mail postfix/virtual[13922]: 4ECEF8404D5: to=<to@ドメイン>, relay=virtual, delay=0.35, delays=0.34/0/0/0, dsn=2.0.0, status=sent (delivered to maildir) これを見ると配送エージェントに virtual が使われていますね。dovecot が使われていないのでsieveも働きません。 199さんの言うとおり、postfixの設定でしょう。ここはDovecotスレなので、あとはPostfixスレで、ということになりますが、 postconf | grep virtual でどういう設定になっているか確認してみてください。 virtual_mailbox_domains はどうなってますか? それとPostfixはmaster.cfを修正したときは reload ではなく restartしないと駄目ですがやりましたか? 皆さんありがとうございました。 なんとかpipe経由でdovecot-ldaが動きそうです。 現在は、 「fatal: pipe_command: execvp /usr/lib/dovecot/dovecot-lda: Permission denied」 というエラーが出ている状態で、この問題を解決さえすれば動きそうです。 これ以降の質問はpostfixになるかと思いますので解決できそうにない場合はあっちのスレで質問してみます。 本当にありがとうございました。 http://wiki.dovecot.org/LDA/Postfix の中ほど dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} Replace vmail above with your virtual mail user account. 上記のvmailをバーチャルメールユーザーアカウントに置き換えるべし >> 204 ありがとうございます。 一応そのようにはしているのですが、エラーが止まりません。 ちなみにnobody:nobodyにしろという記事を見て、nobody:nobodyとroot:rootを試したのですが、以下のようなエラーが出ました。 to=<to@domain>, relay=none, delay=0.1, delays=0.1/0/0/0, dsn=4.3.0, status=deferred (unknown mail transport error) >>205 だんだん状況説明が雑になってきましたね。よくありませんよ。 > Replace vmail above with your virtual mail user account. > 一応そのようにはしているのですが、 > nobody:nobodyとroot:rootを試したのですが、 virtual mail user account は nobobyですか?違うでしょ。rootですか?違うでしょ。 201のログでは relay=virtual だったものが、 203のログでは relay=none になってますね。 変えたのは postrix/master.cf の user=xxxxxx だけですか? 「nobody:nobodyにしろという記事」はフィルター系の処理を通す場合の話ではありませんか? root は postfixが許可しないはずです。 virtual mail user account はメールボックスに書き込めるユーザーがのはずです。 それはpostfixやdovecotをインストールするときに、あなたが決めたか パッケージのデフォルト設定のままになっているかでしょう。 >> 206 すいません。とりあえずやってみましたみたいな感じになってしまって… virtual mail user accountはvmail:mailです。 dovecot側でもそのように設定してあります。 またホスト&ユーザーのディレクトリ、そしてユーザーの中のディレクトの所有者も全てvmail:mailになっています。 そして先ほどpostfix側のdefault_privsをvmailに変更したのですが、やはりエラーが2つ出てしまいます。 fatal: pipe_command: execvp /usr/lib/dovecot/dovecot-lda: Permission denied 0CA0C840CCA: to=<to@domain>, relay=dovecot, delay=0.11, delays=0.1/0/0/0, dsn=4.3.0, status=deferred (temporary failure. Command output: pipe: fatal: pipe_command: execvp /usr/lib/dovecot/dovecot-lda: Permission denied ) ここまで来るともはやdovecotの話ではないようなので該当スレで質問してみます。 ありがとうございました。 virtual domain設定で使っていますが、ローカル配送分のメールを同じ Dovecot使ってpop3で読みたいのですが、どうすればいいのでしょう? conf.d/10-mail.confの中の記述で mail_location = maildir:~/Maildir mail_location = maildir:/home/vmail/%d/%n この二つをローカル配送分とVirtual配送分と切り替えて使えればいいと思う のですが、どうすればいいのかで詰まっています。 ちなみに環境は postfix+dovecot2+mysql+postfixadminで 今までpostfix+dovecot2で local_transport = local で使っていたのを mysqlでvirtual環境を追加するために virtual_transport = virtual を 加えた状況です。 今までのメール環境を変えずにvirtualユーザーからpop3を使いたいわけです。 ローカル系の認証はpamあるいはpasswordfileで行います。virtual系は mysqlでpostfixadminを使って管理します。 read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる