qmailいろいろ(8)
■ このスレッドは過去ログ倉庫に格納されています
qmailの設定、インストール、関連ソフトウェアなど、
いろいろ情報交換しましょう!
前スレ qmailいろいろ(7)
http://pc8.2ch.net/test/read.cgi/unix/1114157851/
関連スレ、関連サイトは >>2-10 あたり。 >>558
一つ分かったことがある。
Threshold_Count_SmtpCommand はデフォルトの 2 だと駄目っぽい。
説明では、「HELO -> QUIT のようなSMTPコマンドの発行をしてくるホストに有効」
って書いてあるけど、HELO はカウントに入っていないようだ。
だから
1. RCPT TO → Temporary local problem. Please try later.
2. QUIT
という、まともな流れでも greylist 入りしない。 >>560
そうそう1.2.4だと
時間がなくてソース見てないのだが
仕事の傍らmaillogを tail -f で流してるとhelohostcheckしてないようだ。
そもそもglaylistのタイムスタンプが更新されないのでなんにも書き込みしてないと思われ。
結局1.2.2に戻した。 RedHatEnterpriseLinux4でqmail-vacationを使おうと思っています。
しかし、うまく動きません。メールは受信者に届くのですが、バケーション
メールが発信されないのです。ログを見てもバケーションメールが
発信されたログが残っていないのです。気になる点は、ローカルタイムに
する修正パッチをあてていない点と、データベースファイルが、Makefileを
みると、.vacation.dir,.vacation.pagもしくは.vacation.dbになるようなことが
書いてあるのに、ユーザのホームディレクトリには、.vacationという拡張子の
ないファイルができていることです。どなたかご教授お願いします。 562です。 インターネットで調べたところ、qmail-vacationが機能
するのは、外部から来たメールだけで、同じドメインから来たインター
ナルなメールには、バケーションメッセージを返さないという質問を
見つけたのですが、これは仕様なのでしょうか? >>565
それよりも、なによりも、なんでいまさらqmail使おうとするんだ?
時代遅れにもほどがあるぞ 徒労を未然に防ぎましょう。
* qmail は時代遅れのもので、メンテナンスされていないサーバです。その POP3
の部分は、Dovecot に引き継ぐことができます。Qmail は1990年代半ば、その
速度と安全性を誇って始められましたが、多くの修正されていないバグがあり、
その中には修正されていないセキュリティバグもあり、セキュリティの保障 (
500 USドル) も否定されました。本当に使い続けるのであれば、いくつかの
qmail のセキュリティの問題の解決の説明が含まれている Dave Sill の Life
with qmail (http://www.lifewithqmail.org/) を読みましょう。
>>568
いま、qmail+vpopmailで運用してるから
パッチの手間考えるとこれからという初心者には勧められんだろw
postfixに乗り換えようといろいろチャレンジ中
ravencoreってのがvpopmailに近いかなぁ、とか思ってる 「いろいろ」チャレンジしないと駄目な程度なら、qmail で一生
過ごしたほうが良いだろ。 virtualdomainはいいんだけど拡張アドレスがpostfixの移行に躊躇する要因だなぁ >>573
ヲレも…
なんでユーザ管理と同一インターフェースでML管理できる
MTA & MLエンジンが他には存在してくれないんだ ezmlmの件俺も胴衣。さらに、いくつもある鯖がさらに増殖していくのを面倒みるとき、
postfix に移行するのが単純に、めんどくさい。いろんなパッチ当て済みの
my source tar.gz が自己遺産的に出来てるから、それを突っ込んでおしまい。
ただし、完全自己責になってるところがやばいといえばやばい。俺が事故死したら、
あと引き継ぐやつは苦労するだろう。だが、んなこと知るか。 どーしても ezmlm が必要なら 127.0.0.1:10025 あたりで qmail を動かしておいて、
postfix の transport_maps で ML アドレスだけそっちに回せばよし。
もうパッチあてる作業が疲れたお…
configureとかで指定したいお…
パッチあててくれるスクリプトを作ろうと思いつつ、
それほどインストールする機会もないので、
ついついいつまでも手作業になってしまう…。 携帯に転送するときに、添付ファイルをはずしてくれる.qmailに書くスクリプトを探しています。
どなたか教えていただけないでしょうか。 25番ポートを無効にして
外部との通信用のメールゲートウェイからのリレーを10025番ポートで受付たいんだけど
これってできますか?
ちなみに補足すると外部との通信用のメールゲートウェイはpostfixで、
しかもこのpostfixとqmailを物理的に同じホストで運用しようと思うのだが
この構成って現実的だと思います? >>582
できる。現実的かどうかは流量とマシンパワーによるのでわからん。 すいません。質問です。
当方、複数のドメインで1台のメールサーバを運用していますが、
受信ドメインごとに接続もとドメインを制限したいと思っています。
例)
受信ドメイン:接続元の制限
a.com:制限なし
b.com:b.co.jp, bb.co.jpからのみOK
c.com:*.c.co.jp からのみOK(*はワイルドカード)
virtual domainを使えばできるかと思ったんですが、接続元の取得がよくわからない
tcpserverを使えば接続元はわかるが、受信先がわからないみたいな感じです。
双方をあわせるような工夫が必要と思いますが、設定でできるのかラッパープログラムを
作成する必要があるのか判断がつきません。識者の方教えてください。 >>585
envelopeから踏み込んだフィルタを書けば出来るだろ。
これって大して面白い仕事じゃないから、似たようなことを頼まれて
適当に打っちゃってある・・・。 tcpserverなんてSMTPプロトコルにも
関係しないようなところで、出来る話じゃあるまいが。 2、3ドメインなら、ドメインごとにバーチャルホストを立てて、
各ホストのtcpserverで受ければできそうな気もする・・・
IPが潤沢にあったりMXを自由に設定してよければの話だし、
それ以前にシステムとしての拡張性は皆無なわけだがww >>585
RCPT TO:<foo@b.com>
RCPT TO:<bar@c.com>
という場合、接続が許可されるのはどこ? あれ、送信者メールアドレスの話だったのか?
接続っていうから接続元 IP アドレスを逆引きしてうんぬんかと思った。 >>590
「送信者」ってのが、どっちのことを指しているのか微妙だけど
>>589 の RCPT TO は、>>585 で言うところの「受信ドメイン」を
特定するために必要な情報でしょ。
接続元 IP アドレスを逆引きして云々は、「接続元の制限」に
当たる部分のことでしょ。 どうも。
接続もとドメインは、送信者アドレス(mail from:)ではなく、接続もとの
サーバのドメインという意味です。(mail from:は詐称可能なので)
なのでこの部分ではTCP/IPのレイヤーになると思います。
が、受信ドメインとなるとまたレイヤーが違う(アプリケーション層)ので
めんどうなのかなと感じています。
>588
antibadmailもアプリケーション層の話なのでちょっと違いますね。 >>592
> antibadmailもアプリケーション層の話なのでちょっと違いますね。
つか、「受信ドメイン」の縛りをしたい以上は、アプリケーション層じゃないと
実現出来ないって自分でも分かってるんでしょうに。
で、なぜ「アプリケーション層の話だから違う」となるのかな? >>593
すんません。TCP/IPのレイヤーもアプリケーション層も両方扱えないと無理
という意味でした。もちろん、アプリケーション層の情報は必要になります。
tcpserverで$TCPREMOTEHOST(リモートホストのDNS検索値)がとれるようなので
tcprulesでqmailの環境変数に渡すことができれば、どちらも扱えそうな気がしてきた。 たびたびすいません。(::)
やっぱり無理くさい。tcpserverはqmail-smtpdを起動しているが、
その後のプロセスに対して環境変数の渡し方がわからん。
qmail-queue -> qmail-send -> qmai-..
ふう。
procmailとかだったらできるかな・・>< 無理。
qmail-send は qmail-smtpd 以前から起動してるものだし、
いろんなところから来たメールをひとつの qmail-send で処理するわけなので、
キューごとに異なる環境変数なんて渡せるはずがない。
qmail-queue までは環境変数が渡ってるはずだけどね。
>>596
>>589 のパターンは別として、可能だと思うけど? 結末を報告すると、IPの制限はあきらめました。
envelope-fromを参照することで制限をつけることとしました。
envelope-fromは偽装可能なのでちょっぴり心許ないぞ まあ、逆引きできないからな。
whoisまで挽いて検索しろなんて、自動化不可能だ。
MUAでやってくれ。 >>599
tcpserver で逆引きさせれば良い話じゃ?
そこで逆引きできない MX はホワイトリストに IP アドレスを指定すれば良いだけ。
まぁ、本人が諦めたって言うから、スルーしてたけど >>597 で言ったように、
出来ると思うよ? qmailでずっと運用しているのですが、この間SMTPの反応が20分程度反応がない状態に
陥ってしまい、実際にmaillogをみると確かに20分間のログが全くありませんでした。
ログがなかった前後を見てもキューが溜まっていたり、数が極端に増えたわけでもないようです。
これってどんなことが考えられそうでしょうか?
また、この原因を特定するための手段としてどんなことが考えられるでしょうか?
攻撃を仕掛けられて通信不能状態になっていたとか、
他のログも確認してみたら >>602
トラフィックやCPU、メモリ等が若干増えているのは確認できたが、
いつもの忙しい時間帯のリソース使用状況に比べると低いんですよねぇ。
障害発生直前でも何かしら右肩上がりに兆候が見えるログがあると究明しようがあるんですが、
それもなく、不能になった時間帯のログもない(T_T)
http://ya.maya.st/mail/lwq.html#log-block
qmail側になにか問題があったからログがなかった、ではなく、
ログ取り側に問題があったからqmail本体も引きずられた、という可能性もあり。 俺も前に似たようなことあった。
なんか突然smtpdのレスポンスが120秒とかになった。
LoadAvgも普通だし、特に変なとこなかったのになぁ。
一応svc -du smtpd したけど変わらなかったし。
でもなんか4時間くらい放っておいたら、1秒以下に戻ってた。
ログはどうだったか忘れた。
vipwでuid いじられてて、その際は吐けなくなってた機械なんてのはありそうだがね。
>607
MTA移行できない言い訳に使える場合がある程度。
とっとと投げ捨てた方がいいとは思うが。 バーチャルドメインで、受信はPOP3だけで充分、
/etc/passwdを使用したくないのでvpopmailを使いたいって場合、
qmailがベストかなーと思いますが、違うかな >>609
なんか、いままで一度もMTAの管理をしたことなさそうなヤシだなぁ。
このご時世でSPAM対策についてまったく触れていないなんて。 >>612
それだけじゃ足りずに、qmail-scannerでspamassassin使うようにして、
スコアが高いものはユーザのスプールには入らないようにした。
でも、受け取ってしまっている時点でアレなんだよねぇ。
postfixではメモリリークに悩ましいけどclamav-milterで要求が完全に
満たせるのに。にしても、clamdで160MB、clamav-milterで200MBって
なんじゃこりゃ。
あと、存在しないユーザ宛のメールも受け取ってしまってから
あとでエラーメールを返すのが基本なのもアレだし。これについては
qmail-sppと自作フィルタでどうにかしたけど…
qmailは自分で何とかしなければいけないところが多すぎて泣けてくる。 とうとうpostfixに乗り換えた。
ごめんよ、qmail いまからqmailやるんだったら、ここのパッケージでいいんじゃね?
http://www.qmailtoaster.com/ パッチを当てて延命しても、それはもうDJBが「安全」と謳ったqmailとは別の物。
鯖更新などの継続案件ならともかく、新規で導入する価値は無いとおも。 正規表現badmailfrom とか、なんだらかんだら色々
パッチあてた myqmail + qmailscan + SA パッケージが
出来てあるからそれをそのまんま使う。>>617 >>613
> postfixではメモリリークに悩ましいけどclamav-milterで要求が完全に
もしメモリリークが本当なら、そんなの論外で使えないじゃん。 メモリー漏れって本当にpostfixなの?
フィルターじゃ? >>622
だから、clamav-milterの話だろ。 >>621
なんで>>620が噛付かれないといけないんだ?
>>613は使ってからモノを言ってるんだろ。
もし仮にそれが誤りでも>>620は何も悪くないだろ。 メモリリークと聞いただけで「論外で使えない」とか知ったかぶったバカは放置しとけ プログラマ視点で言わせてもらうが、メモリリークしてるなら確かに論外。
短時間でプロセスが終了して、OS が勝手に面倒見てくれるから
free なんぞしなくて大丈夫なんて奴がたまにいるが、論外だ。 clamav-milterに限らず、clamdもずっと立ち上げておくとだんだん太っていく罠 w3m+BoehmGCのようにGCが仕事しないケースもあるがな シンプルな構成が気にいってるんだけどね
基本的に問題になるのってSMTPの部分だし
代替ソリューション使い続けるのは
有りだと思うんだけどどうかね? postfixに移行したいけど拡張アドレス使いまくってるから移行できない;; そうだな、Postfixは拡張アドレス使えないしな qmailはtcpserver経由で起動したqmailのqmail-commandに、接続元SMTPのIPを渡したいのですが可能でしょうか。
qmailで受け取ったメールをプログラムで処理する際、接続元SMTPのIPを取得したいという事です。
以下の環境変数には、接続元SMTPのIPはありませんでした。
http://man.qmail.jp/jman8/qmail-command.html
qmail-localからcommandに渡される環境変数
tcpserver自体は接続元SMTPのIPを取得し、$TCPREMOTEIP という環境変数を設定するようです。
TCP environment variables
http://cr.yp.to/ucspi-tcp/environment.html
$TCPREMOTEIP
が、qmail から起動されたプログラムでは取得する方法が無いようなのです。
プログラムがメールを受け取る際は「sh -c command 」という形式で実行されると上記マニュアルにありますが、「sh -c command `set`」としてみた結果、この sh 自体も環境変数としては接続元SMTPのIPを認識していないようです。
参考
http://program.station.ez-net.jp/special/network/mail/qmail.program.asp
http://ya.maya.st/mail/lwq.html#environment-variables >>639
環境変数では無理だと思う。
qmail-smtpd -> qmail-queue の時点で外部との接点はなくなるし。
qmail-command 側でヘッダをパースして、どうにかするしかないんじゃない? >>640
パースすれば可能とは思いましたが・・・。
>>641
知らなかったっす。日本語文書少ないですね。
軽く見てみましたが、いまいちどのようにすればいいか分かりませんでした。
環境変数をセットしてあげる機能を追加すれば、qmail-command 側で参照可能になるという理解でいいんでしょうか。
もしくは、「sh -c command 」される時に、「sh」の実行空間でその環境変数が取れる・・・感じでしょうか。 >>642
qmail-sppはqmailにプラグイン機能を付加するもので、qmail-sppから
呼び出されるプラグインがSMTPHELOHOST等の環境変数を見られるように
なっている。
とりあえず、このスレの>>18-69あたりを見れば大体わかるんじゃない? 素の qmail では qmail-queue がキューに放りこんだ後、
qmail-send がそれを拾うという仕組みなので、
環境変数の受け渡しはここで必ず途切れる。
qmail-spp がどういう仕組みかは知らんが、qmail-local まで情報を伝えようとするなら
キュー自体に環境変数を保存するような仕組みに改造されてないかぎり無理だと思う。
>>643
直近の Recieved: でもOKではあります。
Recieved: がどのようなルールで追加されるのかがよく分かっていなくて、確実なパースが出来るかが心配だったもので。
でも直近の Recieved: は自分のqmail が付けたものだから、何番目に出現するかやフォーマットは、基本的には必ず同じになると考えて良いですよね。
であれば、Recieved: から取るのでも良いかもしれません。
>>644
なんとなく分かりました。
いろいろ便利そうなので、この件に関わらず、使ってみたいと思います。
>>645
なるほど。
ということは、メール受信時にqmail-sppで、カスタムメールヘッダーとして接続元IPを追加できれば・・・、でしょうか。 spamとかvirus判定して黒ならブラックリスト→tcpserverのcdbに投入
ってところかしら。。。 >>647
ケータイサイトを作っているのですが、接続元SMTPを3キャリア公開のIPに限定します。
qmailのアクセス制御であればtcpserverが本筋ではあると思うのですが、作業担当や
管理対象(設定ファイルやプログラム、データベースなど)の一極化などの問題から、
接続元IPをプログラムでハンドリングしたいという要件です。 >>649
qmail-smtpd の前段でラッパースクリプトを実行させれば良いじゃないか。 その通りだな。
なにもメールを受け入れてから細工なんてしなくても、HELOなりEHLOの段階で
リジェクトしちゃえばいい。 >>650
>>651
なるほど。イメージがわきました。
tcpserver から別のプログラムを起動してチェックし、
リジェクトするか qmail-smtpd をexecするか、という理解で合ってますでしょうか。
リジェクトするにはラッパースクリプトがどうしたらいいかが
わかるようなドキュメントって、マニュアルなどにありますか?
qmail-smtpd.c なりを読む必要がありますか?
ttp://man.qmail.jp/jman8/qmail-smtpd.html >>652
基本的にspam対策と一緒だからs25rtarpitgreylistのスクリプトでも眺めれば
どうすればいいかわかるでしょ。 ヲレだったらqmail-sppのplugin書いちゃうけど。 qmail-sppを導入済みならそうするだろうな。
今回のは直接スクリプトをかますだけで十分だと思うけど、後々の
改造やら昨日追加の可能性があるならqmail-sppのプラグインに
しておいた方がメンテが楽かもね。 qmail初心者なので教えください
pop befor smtpの導入でrelay-ctrl-2.5を入れてみたのですが(3.1.1入れろと今は言わないで)
pop3で読みにいっても、cdbファイルが更新されてないんですが・・・
/var/spool/relay-ctrl内にはIPの空ファイルができているんですが・・・
tcproulesのパスも合ってるのですが・・
crontabに設定したrelay-ctrl-ageが更新されるとcdbファイルも更新されるんですが・・・
ちゃんと中にそのipが切れるまで入ってます・・
普通は読みにいったら、即cdbファイルにそのユーザーのipがrelay-ctrl-allowで反映されるんですか?
>qmail初心者なので教えください
初心者だと教えないといけないのか? >>657
そこではコンサル雇えと言うのがqmailユーザの作法です。 失礼しました
qmail初心者なのに教えてください >>656
qmail-popup なりをどうやって起動しているか、それを書かないと。 ■ このスレッドは過去ログ倉庫に格納されています