Postfix(8)
Postfixスレッド その7です。 ●リンク 本家 http://www.postfix.org/ Postfix のぺーじ (ドキュメントの日本語訳、MLなど) http://www.kobitosan.net/postfix/ 過去スレ、関連スレなどは>>2-4 あたり ほしゅほしゅ Postfix 2.6 とか来てたからぶっ込んでみた。 日記終わり。 >>198 今でもだめかぁ 残念。 >>201 ありがとう。 そっちで聞いてくる。 改行 LF が CR LF に勝手に変換されるのってどうやったら止められるの? 正確にはメール本文での CR LF が CR CR LF になっちゃうのを止めたいんだけど。。。 色々調べてるんだけど見つからない・・・・orz [CR LF]、[\r\n]、[0x0d 0x0a]とか表記の違いも探し辛いし。。。疲れた。。。 出て行くときの話ですか?入ってきたときの話ですか? >204 出て行く時(送信時)です。 cronの実行結果のメールが無駄に改行されてるのでバイナリエディタで 見たら CR CR LF に書き換えられてました。一応、 echo -e "CR+LF:\r\nLF:\n"|mail -s"CRLF test" root でも同じ様に化けてます。 >203の書き込み後にさらに調べた結果、 sendmail はヘッダーの一行目(うろ覚えです)が CRLF だったら、LF を CRLF に 書き換える(LFだったら何もしない)みたいな記事と、postfixのchanglog >19981007 >Compatibility: if the first input line ends in CRLF, the >sendmail posting agent will treat all CRLF as LF. Otherwise, >CRLF is left alone. This is a compromise between sendmail >compatibility (all lines end in CRLF) and binary transparency >(some, but not all, lines contain CRLF). など関係してそうな話は見つかったんですが、やっぱり具体的な 解決策は見つからず。。。orz 一旦全ての改行をLFだけにしてから送るのではだめ? cronで実行するコマンドの標準出力をtr -d '\r'に通すとかで。 postmapでdb更新したら、postfix reloadしたほうがいいのだろうか? mainやmaster更新時は必要だと思いますが・・。 >>208 ttp://www.postfix-jp.info/trans-2.3/jhtml/DATABASE_README.html#safe_db ありがとうございました。 気にすることに越したことはないですね。 >>206 諦めて \r\n を \n に書き換えようと思います。。。 qmailだと問題なかったのでちょっと残念orz qmailの腐った改行の扱いに特化したコードがどっかに挟まってないか? >>209 引用している部分はreloadとは関係ないんだが… 質問です。 25番ポートと587番ポートでログを分けるということはできるのでしょうか? master.cfで、ログの場所等を決めるような事ができるのでしょうか? >>214 せっかくだから、どうやって解決したか詳しく >>214 本格的な炒飯を作るには鍋はよく加熱しておく。 まず、第一に鍋を加熱しておくことで火力の不足を補いましょう。 下ろしたての鍋は空焚きしてから油を回す油回しを忘れないようにしましょう。 テフロン加工のフライパンは、加熱しすぎると良くないのでほどほどにしましょう。 postfixのバージョンが上がったとき(2.5→2.6等の場合) 何も考えずにアップグレードのコマンドを打ちますか? 下位互換性があるとは思いますが、なかなか勇気が出ません。 マイナーバージョンアップだけは積極的に行う自分に、嫁さんも呆れています。 上げる必要がなければマイナーでいいじゃん。 メジャー上げなら新機能や変更点とconfをよく読む。 あとは、最悪、戻せるようにバックアップ。 ま、何も考えずはないわ。 >>219 ありがとうございました。 ドキュメントを読んで変更点をチェックするようにします。 maximal_queue_lifetime デフォルトの5dにしてんだけど active queueに古いメールが溜まってます。 何が考えられる? 5日経ってエラーを返そうと試みるもそれが出来なくて5日間がんばっている、のかもしれない。 その古いメールを何とかしようという試みはログに出てる? postfix単体では、文中URLのspamはブロックできない? reject_rbl_client は、IPアドレスのみ有効? spamasassinやf-secure等を使わないとSURBLの排除はできないのでしょうか? 零細メールサーバであろうとも運用するならちゃんと勉強してこい >>226 一応勉強してきたんですが、それでも気になるので、 皆さんの教えを乞いにここへ来たのですが・・・。 >>227 お前さん、用語だけ理解して どういう仕組みで動作しているか理解できていないだろう。 ググれば判るから、もっと勉強しておいで。 2.6になって仕様が変わっていたのかorz 今まで気づかなかった。 always_add_missing_headers設定して解決 グーグル先生でもダメだったので、諸先輩方に質問です。 qmail+postfix+vpopmailの環境で自サーバ内のバーチャルドメインにperlからsendmail(qmail)メールが届きません。 maillogを見たら qmail: ... starting delivery 4: msg 16908638 to local example.com-acount@example.com となっていました。 acount@example.comに送りたいのにexample.com-acount@example.comなので届かないんでしょうけれど・・・ qmailの可能性でも調べましたが、postfixの設定というのが2件引っかかっただけで解決には至らず。 すみません、途中送信してしまいました。 ------------------------------------------------------------------------ グーグル先生でもダメだったので、諸先輩方に質問です。 qmail+postfix+vpopmailの環境で自サーバ内のバーチャルドメインにperlからsendmail(qmail)メールが届きません。 maillogを見たら qmail: ... starting delivery 4: msg 16908638 to local example.com-acount@example.com となっていました。 acount@example.comに送りたいのにexample.com-acount@example.comなので届かないんでしょうけれど・・・ qmailの可能性でも調べましたが、postfixの設定というのが2件引っかかっただけで解決には至らず。 どなたか解決の方法をご存知の方がいたらご教授願えればと思います。 qmail+postfixって何したいんだ?エスパー希望?? >>233 すみません、色々自分がおかしいみたいです。 maillogにqmailって書いてあるのにpostfix調べてました。 qmailで調べ直してきます・・・ どなたかヒントでも良いので教えてください。 特定IPからのアクセスのみsmtpd_client_connection_count_limitを大きくする方法 をご存じ無いでしょうか? たとえば、デフォルトはsmtpd_client_connection_count_limit = 10 192.168.0.1からは、smtpd_client_connection_count_limit = 50 という感じの事がしたいです。 よろしくお願いします。 別ポートでもう一つsmtpdを立ち上げておいて、 ipfw,iptables等で特定のIPアドレスから来たsmtpセッションを 別ポートのsmtpdに振り分ける >>236 レスありがとう。 其の手があった。目から鱗です。 sendmail なら素でできるので乗り換えるとか:-) 大量送信してくるアホを蹴る手段のひとつとして ratecontrol を使う sendmail と、 リソースが枯渇しないようにするための緊急回避として anvil を使う postsifx とで 実装ポリシーがまったく違うので、今後も postfix でできるようにはならないだろうなー。 DDoS的に多種多様なIPからのmail bombだったりするとどちらもダメだったりするけどねい。 3週間に一度ぐらいのペースでそういう攻撃されるので、うざいうざい… >>240 ここ1週間毎日攻撃されております。 iptables にルールを追加するんですが、モグラ叩きみたいな 感じで切りがないです。 なんか、良い方法ないですかね? >>241 金で解決するかポリシーで解決するか。 傾向を調べて日本国外からの爆撃がほとんどだったら >>236 でまとめて制限するとかすればいいんじゃね iptablesならconnlimit使えば委員ジャマイカ FreeBSDをつかっているのですが Postfix 2.4を2.6の最新版にアップグレードして postgreyも最新のものにしようと思っているのですが # portupgrade -o mail/postfix -f mail/postfix24 # portupgrade -R mail/postgrey で大丈夫なんでしょうか? 設定ファイルの書き方に変更があるならバックアップをとろうと思うんですが postfix upgrade-configuration postfix set-permissions でいいんじゃね あのメール送受信が出来ないってのは CentOS の ML から移動してきたやつだねw 何で分かりもしないのにメールサーバ立てたがるのかねえ・・・ どうせ大した人数もいないんだからGmailでもなんでもSaaSつかえばよかろうに なんかあメールサーバーってかっこいいじゃないですかあ ウェブサーバーとかはイントラネットで立てて実験してってできるじゃないですかあ でもメールサーバーってほんとに送受信できるかどうかって他所のサーバーと やってみるまでわかんないじゃないですかあ そこがこうヒリヒリする感じ?ああ本物のサーバーだなって思えるじゃないですかあ やっぱりただのサーバーとメールサーバーとは隔絶した存在なんですよ ギンヌンガガップがあるんですよ ローカルからの接続SMTP許可しています。 直接SMTPたたかれるとユーザ名等がログに残らないのですが、 ユーザ名を特定する方法はないでしょうか? すいません、追加質問おながいします。 SMTPポートへの接続はローカルからでも拒否して、 postfix.sendmail ttp://www.postfix-jp.info/trans-2.2/jhtml/mailq.1.html への接続はローカルから許可する、なんてことは可能でしょうか? 理想は 251のようにローカルホスからの接続の場合、ユーザ名をログすることなんですが、 なんか厳しい気がするので。 >>252 「SMTPポートへの接続」と「postfix.sendmailへの接続」っつーのはどう違うんだ? それぞれ違うTCPポートで起動させてんのか? まあ、プロトコルやMTAについてよく判ってないようなので、君には無理。 > 「SMTPポートへの接続」と「postfix.sendmailへの接続」っつーのはどう違うんだ? postfix.sendmailが最終的にSMTP接続を行うと考えれば結局は同じになるかと思います。 なんで252の件もやはり難しそうですよね。 ローカルであろうがなかろうが、SMTP認証をつけてしまおうかとも 考えましたが、そうなるとpostfix.sendmail使用の際も認証が必要、となり、 実質的にpostfix.sendmailを改造しないと対応できない気がします。 postfix.sendmailは使用ユーザをログするようになってるようなので 使用は問題ないのですが、 直にSMTP接続されると使用者の特定方法がなくて困っています。 ローカルからは接続許可しているケースが一般的だと思います。 この場合、極端な事例だと、自社に大量スパマーがいたら 送信行動の特定ができなくなってしまうわけですが、 このあたり他の方はどのような対応なさってるんでしょうか? ローカルポートへの接続状況を監視するようなプログラムってないでしょうか? > ローカルポートへの接続状況を監視するようなプログラムってないでしょうか? netstat をもう少しログや接続ユーザ等詳細に残せるような感じなものが あればとりあえずの目的は達成できそうなのですが。 lsofか、OSに依存するけどsockstatでも使うとか。 postfixがidentサポートしてればいいんだろうけど、サポートしてなさげだし。 ローカルからの SMTP 接続に auth を強要すればいいだけじゃん。 smtpポートに接続されること自体が嫌なのかと思って>>256 書いたけど、 良く読んだらspammer防ぎたいってだけだからauth強要でいいのか。 最新バージョンに対応した「Postfix辞典」出ないかなぁ。 RBLを使って拒否とかをするのではなく、引っかかったメールはヘッダに フィールドを追加する等加工をして通すなんて処理は出来るのでしょうか? なるべくサーバでは捨てないでクライアントで捨てる方向にしたいのですが・・・。 >>261 spamassassinってベジアンフィルタだけだと思ってスルーしてたけど RBLとかにも対応してるのね。ベジアンフィルタOFFで使えるなら これが良さそう。ちょっと試してみます。ありがとー postfixからspamassassinに食わせようとすると直では使えないのね procmailかamavisd-newあたりをかまさないと駄目なんだと思うけど ベジアンフィルター使わないならちょっと大げさな気がしてきた もうちょっとシンプルな方法無いのかな・・・ >>263 もうちょっと調べろよ… つ spamass-milter >>260 http://www.postfix-jp.info/trans-2.1/jhtml/access.5.html PREPEND headername: headervalue メッセージの前に指定されたメッセージヘッダを付加します。このアク シ ョンが複数回使われると、最初に付加されたヘッダは2番目などのヘ ッダの前に現れます。 注意: このアクションは複数行のメッセージヘッダをサポートしていま せん。 この機能は Postfix 2.1 以降で使えます。 postfix2.3.3+postfixadminを使用しています。 メールの転送について聞きたいのですが、 Aから、Bに届いたメールをCに転送すると、Cには差出人が Aであると表示されます。これをBと表示するにはどんな設定が必要でしょうか。 Bのアドレスがpostfixで提供しているアドレスです。 そんな質問するやつが MTA(postfix)運用してるんじゃねーよ… orz いやほんとに >>265 PostfixのRBLの機能使って、PREPENDでヘッダにメッセージ付加は出来ないんじゃない? やっぱSAとか使わん限りむりじゃないかなあ。 ここ参考にmain.cfに「expand_owner_alias = yes/owner_request_special = yes」を追加 MySQLのaliasテーブルにowner-***を追加してみたけど、ダメだった。 http://mtlab.ecn.fpu.ac.jp/WSM_2005/051007121618.html Try & Errorでやるようなスキルじゃpostfix扱うべきじゃないんですかねorz >269 悪いことはいわん 明らかに envelope と header の区別もついていなさそうだし forward が何をさすのかも分かっていないようなので 氏ねとか逝ってしまえとまでは言わないが 基本をきちんと勉強してからにしてくれ 設定とかじゃなくて「メールとは何か」ってことを、ね そして上記のキーワードの意味が分かってからにしなさい PHPから送信するときenvelope -fを指定するとheaderのFromが埋まるため 勘違いしてました。全然分かってなかったですね。ちょっと勉強しなおしてきます(汗; どなたか教えてください。log に「postfix/smtpd[5089]: too many errors after」 が出力される時の条件って、smtpd_hard_error_limit に依存するのですか? 出力条件が良く判らないので、ご存じの方お教えください。 その前にsmtpdがpid 5089で起動される必要がある、それなりのレアケースだな smtpd_hard_error_limit smtpd_soft_error_limit スパムを送信しようとする接続がやたら多くてsmtpdの起動数がすぐに限界(100)に 達しちゃうんです。limitを多くしても根本的な解決にならないような気がして、この 不要なsmtpdをすぐに停止するようなオプションってあるのでしょうか。 一定時間待っててもなんもデータが送られてこない接続。ですかね? あーでも拒否っても無視してデータ送ってくる類もいますか。 >>277 > 一定時間待っててもなんもデータが送られてこない接続。ですかね? どの段階でかよくわからんが smtp_なんちゃら_timeout でいいんじゃね。 >>279 どもです。タイムアウトの設定があったのですね。 とりあえずこんな感じで短めにしてみたところ前より処理が早くなりました。 もうちょい様子を見てまたご報告します。 anvil_rate_time_unit = 5 default_process_limit = 500 smtp_connect_timeout = 10s smtp_helo_timeout = 60s smtp_mail_timeout = 60s smtp_rcpt_timeout = 60s smtp_data_init_timeout = 45s smtp_data_xfer_timeout = 60s smtp_data_done_timeout = 60s smtp_quit_timeout = 60s smtp_mx_session_limit = 0 >>280 ぜんぜん関係ないパラメータいじってんのに効果あるわけねーよ。 ちっとは自分でマニュアル調べろ。 あぁごめんなさい。 anvil_rate_time_unit ですよね?マニュアル読みました・・・orz >>275 プロセス使い切ってしまう問題は、postfix の設定変更だけじゃ無理だよ。 OS書いてないから、具体的な事は言わないけど・・・ >>283 そうなんですか。とりあえずタイムアウトの設定いじったらずいぶんマシに なりましたが、結局量が増えたら同じですかね。 CentOSなんですが何かいい方法ありますでしょうか。 別のOSの場合でもいいのですが。 >>280 あーこの設定は極めてまずいところが有るな smtp_mx_session_limit=0(無制限)ですかね? 他のサイトを参考にしたんですが、やはり明示的に上限を決めておいた方がいいのでしょうか。 そりゃそうでしょ 無制限に接続を受け付けてメモリ不足スワップ発生 スラッシング発生になったほうがよっぽど処理速度が落ちる よっぽどでかいサイトでもない限り10や20も受け付けときゃ十分だ SMTPには再送の機構が最初からあるんだから プロセス使い切るというと、SPAM対策でtarpittingなんてしていると、あっという間に プロセス使い切っちゃうねい。まあ、ttp://k2net.hakuba.jp/targrey/ のパッチ 当てればいいんだけど、最近のSPAMってtarpittingしていてもいなくても、 あまり差が出てこないような気もするし、もうtarpittingはやめちゃっていいのかも。 >>289 tarpitしてもプロセス数の増加はせいぜい3倍くらいだったよ。 もちろんパッチ当てたほうがいいと思うけどね。 あとtarpit掛ける時間が現状にマッチしてるかも大事。 大手botnetが時々待ち時間変更してくるからそれが抜けない時間を設定。 今なら90秒くらいか。 素直に台数増やせば? んな大量のリクエストてアドレス数も多いと思うけど 担当がこんなのだと、そうでも無いんかな ばかにされてしまった postfixを5年ほど10台くらいで運用してるけど、spam受信が100埋まる事無いです tarpitは90秒ですよねぇ よっぽどあれなサービスか?とか勘ぐってるんだけど もしくはその接続はspamじゃないとか >>293 いや、最近Brute force attackみたいに1秒間に1000セッションとか張ってくる いやーんな感じのがはやっているの。 以前だったら、全然問題無かったけど最近他のスレでも話題になったよ。 んな接続に耐えられるサービスって少ない様な・・ メールを送るのでは無くて、純粋に攻撃なのでわww 受け取る必要無いだろうから、ファイアーウォールで弾くのがはやそう 知りもしないのに291みたいなこと言うから馬鹿扱いされるっていうのが まだ理解できていないのか、こいつ。 >>295 >いや、最近Brute force attackみたいに1秒間に1000セッションとか張ってくる >いやーんな感じのがはやっているの。 IP晒してくれ read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる